#
63373186 |
|
11-Jan-2024 |
GuoHua Chen <chenguohua_716@163.com> |
drm/radeon/ci_dpm: Clean up errors in ci_dpm.c Fix the following errors reported by checkpatch: ERROR: that open brace { should be on the previous line ERROR: need consistent spacing around '-' (ctx:WxV) ERROR: space required before the open parenthesis '(' ERROR: "foo* bar" should be "foo *bar" Signed-off-by: GuoHua Chen <chenguohua_716@163.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
20c3dffd |
|
13-Apr-2023 |
Nikita Zhandarovich <n.zhandarovich@fintech.ru> |
radeon: avoid double free in ci_dpm_init() Several calls to ci_dpm_fini() will attempt to free resources that either have been freed before or haven't been allocated yet. This may lead to undefined or dangerous behaviour. For instance, if r600_parse_extended_power_table() fails, it might call r600_free_extended_power_table() as will ci_dpm_fini() later during error handling. Fix this by only freeing pointers to objects previously allocated. Found by Linux Verification Center (linuxtesting.org) with static analysis tool SVACE. Fixes: cc8dbbb4f62a ("drm/radeon: add dpm support for CI dGPUs (v2)") Co-developed-by: Natalia Petrova <n.petrova@fintech.ru> Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
8a948b1b |
|
02-Sep-2022 |
ye xingchen <ye.xingchen@zte.com.cn> |
drm/radeon/ci_dpm: Remove the unneeded result variable Return the value ci_load_smc_ucode() directly instead of storing it in another redundant variable. Reported-by: Zeal Robot <zealci@zte.com.cn> Signed-off-by: ye xingchen <ye.xingchen@zte.com.cn> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
f7ea304f |
|
06-Sep-2021 |
Colin Ian King <colin.king@canonical.com> |
drm/radeon/ci_dpm: Remove redundant initialization of variables hi_sidd, lo_sidd The variables hi_sidd and lo_sidd are being initialized with a values that are never read, they are being updated later on. The assignments are redundant and can be removed. Addresses-Coverity: ("Unused value") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
d6e1d905 |
|
19-Nov-2020 |
Gustavo A. R. Silva <gustavoars@kernel.org> |
drm/radeon: Fix fall-through warnings for Clang In preparation to enable -Wimplicit-fallthrough for Clang, fix multiple warnings by explicitly adding multiple fallthrough pseudo-keyword macros, as replacement for /* fall through */ comments. Notice that Clang doesn't recognize /* fall through */ comments as implicit fall-through markings. Link: https://github.com/KSPP/linux/issues/115 Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
5e7c91d2 |
|
16-Nov-2020 |
Lee Jones <lee.jones@linaro.org> |
drm/radeon/ci_dpm: Move 'si_*()'s prototypes to shared header Fixes the following W=1 kernel build warning(s): drivers/gpu/drm/radeon/si_dpm.c:3802:4: warning: no previous prototype for ‘si_get_ddr3_mclk_frequency_ratio’ [-Wmissing-prototypes] 3802 | u8 si_get_ddr3_mclk_frequency_ratio(u32 memory_clock) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/si_dpm.c:3815:4: warning: no previous prototype for ‘si_get_mclk_frequency_ratio’ [-Wmissing-prototypes] 3815 | u8 si_get_mclk_frequency_ratio(u32 memory_clock, bool strobe_mode) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/si_dpm.c:3897:6: warning: no previous prototype for ‘si_trim_voltage_table_to_fit_state_table’ [-Wmissing-prototypes] 3897 | void si_trim_voltage_table_to_fit_state_table(struct radeon_device *rdev, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: amd-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
e6a29196 |
|
16-Nov-2020 |
Lee Jones <lee.jones@linaro.org> |
drm/radeon/ci_dpm: Move 'ci_*()'s prototypes to shared header Fixes the following W=1 kernel build warning(s): drivers/gpu/drm/radeon/cik.c:1868:5: warning: no previous prototype for ‘ci_mc_load_microcode’ [-Wmissing-prototypes] 1868 | int ci_mc_load_microcode(struct radeon_device *rdev) | ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/cik.c:5847:6: warning: no previous prototype for ‘cik_enter_rlc_safe_mode’ [-Wmissing-prototypes] 5847 | void cik_enter_rlc_safe_mode(struct radeon_device *rdev) | ^~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/cik.c:5868:6: warning: no previous prototype for ‘cik_exit_rlc_safe_mode’ [-Wmissing-prototypes] 5868 | void cik_exit_rlc_safe_mode(struct radeon_device *rdev) | ^~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/cik.c:6286:6: warning: no previous prototype for ‘cik_update_cg’ [-Wmissing-prototypes] 6286 | void cik_update_cg(struct radeon_device *rdev, | ^~~~~~~~~~~~~ Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: amd-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
bf81a581 |
|
10-Nov-2020 |
Lee Jones <lee.jones@linaro.org> |
drm/radeon/ci_dpm: Remove set but unused variable 'dpm_event_src' And the piece of code that has never been executed. Fixes the following W=1 kernel build warning(s): drivers/gpu/drm/radeon/ci_dpm.c: In function ‘ci_set_dpm_event_sources’: drivers/gpu/drm/radeon/ci_dpm.c:1369:28: warning: variable ‘dpm_event_src’ set but not used [-Wunused-but-set-variable] Cc: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: amd-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
df561f66 |
|
23-Aug-2020 |
Gustavo A. R. Silva <gustavoars@kernel.org> |
treewide: Use fallthrough pseudo-keyword Replace the existing /* fall through */ comments and its variants with the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary fall-through markings when it is the case. [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
|
#
41855a89 |
|
06-Jul-2020 |
Tom Rix <trix@redhat.com> |
drm/radeon: fix double free clang static analysis flags this error drivers/gpu/drm/radeon/ci_dpm.c:5652:9: warning: Use of memory after it is freed [unix.Malloc] kfree(rdev->pm.dpm.ps[i].ps_priv); ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/ci_dpm.c:5654:2: warning: Attempt to free released memory [unix.Malloc] kfree(rdev->pm.dpm.ps); ^~~~~~~~~~~~~~~~~~~~~~ problem is reported in ci_dpm_fini, with these code blocks. for (i = 0; i < rdev->pm.dpm.num_ps; i++) { kfree(rdev->pm.dpm.ps[i].ps_priv); } kfree(rdev->pm.dpm.ps); The first free happens in ci_parse_power_table where it cleans up locally on a failure. ci_dpm_fini also does a cleanup. ret = ci_parse_power_table(rdev); if (ret) { ci_dpm_fini(rdev); return ret; } So remove the cleanup in ci_parse_power_table and move the num_ps calculation to inside the loop so ci_dpm_fini will know how many array elements to free. Fixes: cc8dbbb4f62a ("drm/radeon: add dpm support for CI dGPUs (v2)") Signed-off-by: Tom Rix <trix@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
99010fac |
|
06-Jul-2020 |
Tom Rix <trix@redhat.com> |
drm/radeon: fix double free clang static analysis flags this error drivers/gpu/drm/radeon/ci_dpm.c:5652:9: warning: Use of memory after it is freed [unix.Malloc] kfree(rdev->pm.dpm.ps[i].ps_priv); ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/ci_dpm.c:5654:2: warning: Attempt to free released memory [unix.Malloc] kfree(rdev->pm.dpm.ps); ^~~~~~~~~~~~~~~~~~~~~~ problem is reported in ci_dpm_fini, with these code blocks. for (i = 0; i < rdev->pm.dpm.num_ps; i++) { kfree(rdev->pm.dpm.ps[i].ps_priv); } kfree(rdev->pm.dpm.ps); The first free happens in ci_parse_power_table where it cleans up locally on a failure. ci_dpm_fini also does a cleanup. ret = ci_parse_power_table(rdev); if (ret) { ci_dpm_fini(rdev); return ret; } So remove the cleanup in ci_parse_power_table and move the num_ps calculation to inside the loop so ci_dpm_fini will know how many array elements to free. Fixes: cc8dbbb4f62a ("drm/radeon: add dpm support for CI dGPUs (v2)") Signed-off-by: Tom Rix <trix@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
7ee78aff |
|
24-Jun-2020 |
Colin Ian King <colin.king@canonical.com> |
drm/radeon: fix array out-of-bounds read and write issues There is an off-by-one bounds check on the index into arrays table->mc_reg_address and table->mc_reg_table_entry[k].mc_data[j] that can lead to reads and writes outside of arrays. Fix the bound checking off-by-one error. Addresses-Coverity: ("Out-of-bounds read/write") Fixes: cc8dbbb4f62a ("drm/radeon: add dpm support for CI dGPUs (v2)") Signed-off-by: Colin Ian King <colin.king@canonical.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
43ad9b39 |
|
13-Apr-2020 |
Jason Yan <yanaijie@huawei.com> |
drm/radeon: remove defined but not used variables in ci_dpm.c Fix the following gcc warning: drivers/gpu/drm/radeon/ci_dpm.c:82:36: warning: ‘defaults_saturn_pro’ defined but not used [-Wunused-const-variable=] static const struct ci_pt_defaults defaults_saturn_pro = ^~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/radeon/ci_dpm.c:68:36: warning: ‘defaults_bonaire_pro’ defined but not used [-Wunused-const-variable=] static const struct ci_pt_defaults defaults_bonaire_pro = ^~~~~~~~~~~~~~~~~~~~ Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Jason Yan <yanaijie@huawei.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
2ef79416 |
|
03-Dec-2019 |
Thomas Zimmermann <tzimmermann@suse.de> |
drm/radeon: Don't include <drm/drm_pci.h> Including <drm/drm_pci.h> is unnecessary in most cases. Replace these instances. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191203100406.9674-9-tzimmermann@suse.de
|
#
c182615f |
|
08-Jun-2019 |
Sam Ravnborg <sam@ravnborg.org> |
drm/radeon: drop use of drmP.h (2/2) Drop use of drmP.h in remaining .c files. To ease review a little the drmP.h removal was divided in two commits. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190608080241.4958-8-sam@ravnborg.org
|
#
ecdadace |
|
15-Feb-2019 |
Gustavo A. R. Silva <gustavo@embeddedor.com> |
drm/radeon/ci_dpm: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
afeff4c1 |
|
14-Jan-2019 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: check if device is root before getting pci speed caps Check if the device is root rather before attempting to see what speeds the pcie port supports. Fixes a crash with pci passthrough in a VM. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109366 Reviewed-by: Evan Quan <evan.quan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
089888c4 |
|
14-Jan-2019 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: check if device is root before getting pci speed caps Check if the device is root rather before attempting to see what speeds the pcie port supports. Fixes a crash with pci passthrough in a VM. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109366 Reviewed-by: Evan Quan <evan.quan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
5f152a57 |
|
25-Jun-2018 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: use pcie functions for link width This is the last user of drm_pcie_get_speed_cap_mask. Use the pci version so we can drop drm_pcie_get_speed_cap_mask. Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
6396bb22 |
|
12-Jun-2018 |
Kees Cook <keescook@chromium.org> |
treewide: kzalloc() -> kcalloc() The kzalloc() function has a 2-factor argument form, kcalloc(). This patch replaces cases of: kzalloc(a * b, gfp) with: kcalloc(a * b, gfp) as well as handling cases of: kzalloc(a * b * c, gfp) with: kzalloc(array3_size(a, b, c), gfp) as it's slightly less ugly than: kzalloc_array(array_size(a, b), c, gfp) This does, however, attempt to ignore constant size factors like: kzalloc(4 * 1024, gfp) though any constants defined via macros get caught up in the conversion. Any factors with a sizeof() of "unsigned char", "char", and "u8" were dropped, since they're redundant. The Coccinelle script used for this was: // Fix redundant parens around sizeof(). @@ type TYPE; expression THING, E; @@ ( kzalloc( - (sizeof(TYPE)) * E + sizeof(TYPE) * E , ...) | kzalloc( - (sizeof(THING)) * E + sizeof(THING) * E , ...) ) // Drop single-byte sizes and redundant parens. @@ expression COUNT; typedef u8; typedef __u8; @@ ( kzalloc( - sizeof(u8) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(__u8) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(char) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(unsigned char) * (COUNT) + COUNT , ...) | kzalloc( - sizeof(u8) * COUNT + COUNT , ...) | kzalloc( - sizeof(__u8) * COUNT + COUNT , ...) | kzalloc( - sizeof(char) * COUNT + COUNT , ...) | kzalloc( - sizeof(unsigned char) * COUNT + COUNT , ...) ) // 2-factor product with sizeof(type/expression) and identifier or constant. @@ type TYPE; expression THING; identifier COUNT_ID; constant COUNT_CONST; @@ ( - kzalloc + kcalloc ( - sizeof(TYPE) * (COUNT_ID) + COUNT_ID, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * COUNT_ID + COUNT_ID, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * (COUNT_CONST) + COUNT_CONST, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * COUNT_CONST + COUNT_CONST, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (COUNT_ID) + COUNT_ID, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * COUNT_ID + COUNT_ID, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (COUNT_CONST) + COUNT_CONST, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * COUNT_CONST + COUNT_CONST, sizeof(THING) , ...) ) // 2-factor product, only identifiers. @@ identifier SIZE, COUNT; @@ - kzalloc + kcalloc ( - SIZE * COUNT + COUNT, SIZE , ...) // 3-factor product with 1 sizeof(type) or sizeof(expression), with // redundant parens removed. @@ expression THING; identifier STRIDE, COUNT; type TYPE; @@ ( kzalloc( - sizeof(TYPE) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(TYPE) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(TYPE)) , ...) | kzalloc( - sizeof(THING) * (COUNT) * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * (COUNT) * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * COUNT * (STRIDE) + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) | kzalloc( - sizeof(THING) * COUNT * STRIDE + array3_size(COUNT, STRIDE, sizeof(THING)) , ...) ) // 3-factor product with 2 sizeof(variable), with redundant parens removed. @@ expression THING1, THING2; identifier COUNT; type TYPE1, TYPE2; @@ ( kzalloc( - sizeof(TYPE1) * sizeof(TYPE2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2)) , ...) | kzalloc( - sizeof(THING1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | kzalloc( - sizeof(THING1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(THING1), sizeof(THING2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * COUNT + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) | kzalloc( - sizeof(TYPE1) * sizeof(THING2) * (COUNT) + array3_size(COUNT, sizeof(TYPE1), sizeof(THING2)) , ...) ) // 3-factor product, only identifiers, with redundant parens removed. @@ identifier STRIDE, SIZE, COUNT; @@ ( kzalloc( - (COUNT) * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * (STRIDE) * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * STRIDE * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - (COUNT) * (STRIDE) * (SIZE) + array3_size(COUNT, STRIDE, SIZE) , ...) | kzalloc( - COUNT * STRIDE * SIZE + array3_size(COUNT, STRIDE, SIZE) , ...) ) // Any remaining multi-factor products, first at least 3-factor products, // when they're not all constants... @@ expression E1, E2, E3; constant C1, C2, C3; @@ ( kzalloc(C1 * C2 * C3, ...) | kzalloc( - (E1) * E2 * E3 + array3_size(E1, E2, E3) , ...) | kzalloc( - (E1) * (E2) * E3 + array3_size(E1, E2, E3) , ...) | kzalloc( - (E1) * (E2) * (E3) + array3_size(E1, E2, E3) , ...) | kzalloc( - E1 * E2 * E3 + array3_size(E1, E2, E3) , ...) ) // And then all remaining 2 factors products when they're not all constants, // keeping sizeof() as the second factor argument. @@ expression THING, E1, E2; type TYPE; constant C1, C2, C3; @@ ( kzalloc(sizeof(THING) * C2, ...) | kzalloc(sizeof(TYPE) * C2, ...) | kzalloc(C1 * C2 * C3, ...) | kzalloc(C1 * C2, ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * (E2) + E2, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(TYPE) * E2 + E2, sizeof(TYPE) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * (E2) + E2, sizeof(THING) , ...) | - kzalloc + kcalloc ( - sizeof(THING) * E2 + E2, sizeof(THING) , ...) | - kzalloc + kcalloc ( - (E1) * E2 + E1, E2 , ...) | - kzalloc + kcalloc ( - (E1) * (E2) + E1, E2 , ...) | - kzalloc + kcalloc ( - E1 * E2 + E1, E2 , ...) ) Signed-off-by: Kees Cook <keescook@chromium.org>
|
#
c3b16f16 |
|
29-Sep-2017 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: move ci_send_msg_to_smc to where it's used It's used in ci_dpm.c so move it there and make it static. Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
ab03d9fe |
|
11-May-2017 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: disable mclk switching for high refresh rates (v2) Even if the vblank period would allow it, it still seems to be problematic on some cards. v2: fix logic inversion (Nils) bug: https://bugs.freedesktop.org/show_bug.cgi?id=96868 Cc: stable@vger.kernel.org Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
58d7e3e4 |
|
11-May-2017 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: disable mclk switching for high refresh rates (v2) Even if the vblank period would allow it, it still seems to be problematic on some cards. v2: fix logic inversion (Nils) bug: https://bugs.freedesktop.org/show_bug.cgi?id=96868 Cc: stable@vger.kernel.org Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
64a9dfc4 |
|
23-Apr-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
drm/radeon: fix include notation and remove -Iinclude/drm flag Include <drm/*.h> instead of relative path from include/drm, then remove the -Iinclude/drm compiler flag. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1493009447-31524-14-git-send-email-yamada.masahiro@socionext.com
|
#
ecb2caae |
|
19-Jul-2016 |
Nicholas Mc Guire <hofrat@osadl.org> |
drm/radeon/ci add comment to document intentionally unreachable code commit d967be9b80a5 ("drm/radeon/ci: disable needless sclk changes") introduces an unreachable if(C != C) conditional code section flagged by coccinelle script bad_conditional.cocci: Add a comment to make it clear that this is intentional. Fixes: d967be9b80a5 ("drm/radeon/ci: disable needless sclk changes") Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
3cf8bb1a |
|
15-Mar-2016 |
Jérome Glisse <jglisse@redhat.com> |
drm/radeon: fix indentation. I hate doing this but it hurts my eyes to go over code that does not comply with indentation rules. Only thing that is not only space change is in atom.c all other files are space indentation issues. Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Jérôme Glisse <jglisse@redhat.com> Cc: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
bda5e3e9 |
|
16-Jul-2015 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: silence a harmless PCC warning This has been a source of confusion. Make it debug only. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
dbbd3c81 |
|
30-Sep-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: implement get_current_sclk/mclk Will be used for exposing current clocks via INFO ioctl. Tested-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
64e58044 |
|
14-Jan-2015 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: comment out some currently unused ci dpm code Keep it around for reference. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
36689e57 |
|
07-Dec-2014 |
Oleg Chernovskiy <algonkvel@gmail.com> |
drm/radeon: bind fan control on CI cards to hwmon interface (v2) This adds a possibility to control fan on CI parts via exported hwmon variables. Note that automatic ucode fan management pauses if you choose to enable manual fan control. Use with caution! v2: agd5f: fix formatting, squash in: minor fix for pwm1_enable exposed value Track smc control in addition to fan mode This fixes pwm1_enable being constantly set to 1 because of enabled smc control also handle the case where smc fan control is disabled. Signed-off-by: Oleg Chernovskiy <algonkvel@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
eb8d4d0d |
|
03-Dec-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: enable smc fan control on CI This seems to work well on CI boards after fixing the last few bugs noticed by Chernovsky Oleg. On boards with a high default fan speed this should reduce fan noise. Manual fan control is not enabled yet. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
6554d9a0 |
|
01-Dec-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix copy paste typos in fan control for si/ci Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
d967be9b |
|
18-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: disable needless sclk changes The current code always reprogrammed the sclk levels, but we don't currently handle disp sclk requirements so just skip it. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
7f6233ca |
|
18-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: force pcie level before sclk and mclk Preferred ordering. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
e745c3c9 |
|
18-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: use different smc command for pcie dpm Use unforce levels rather than enable mask instruction. This is the preferred method. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
f281d0a3 |
|
18-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: apply disp voltage changes before clk changes Apply voltage changes for displays before changing clocks. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
66648b81 |
|
17-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix PCC debugging message for CI DPM Add missing newline and print the bad gpio shift. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
0e4ed1c1 |
|
15-Sep-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: add thermal dpm support for CI Not currently used. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
e03cea36 |
|
14-Sep-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: add smc fan control for CI (v2) Enable smc fan control for CI boards. Should reduce the fan noise on systems with a higher default fan profile. v2: disable by default, add additional fan setup, rpm control bug: https://bugs.freedesktop.org/show_bug.cgi?id=73338 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
b94b95e7 |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: set power control in ci dpm enable Necessary for poper operation. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
542b379b |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: powertune fixes for hawaii - bapm is not available on hawaii - update pt defaults Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
90b2fee3 |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix dpm mc init for certain hawaii boards Needs special overrides for certain vram configurations. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
4e21518c |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: set bootup pcie level to max for ci dpm Avoids problems when re-loading the driver. Does not affect power saving when dpm is enabled. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
b6b41cf3 |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix default dpm state setup Only enable the first levels for mclk and sclk. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
36654dd4 |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: workaround a hw bug in bonaire pcie dpm Some boards get stuck in pcie x1 otherwise. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
127e056e |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix mclk vddc configuration for cards for hawaii Need to use vddc0 for vdcc1 for certain hawaii configurations. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
489ba72c |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix sclk DS enablement Only enable it for levels 0 and 1. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
d3052b8c |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix activity settings for sclk and mclk for CI Only need to be enabled on the first level. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
c0392f8f |
|
06-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: improve mclk param calcuations for ci dpm Properly take into account the post divider. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
21b8a369 |
|
06-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix dram timing for certain hawaii boards Certain memory configurations need a fix. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
1c52279f |
|
06-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: switch force state commands for CI Use the preferred SMC commands for forcing state on CI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
34fc0b58 |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: handle gpio controlled dpm features properly Certain feature enablement depends on entries in the atom gpio pin table. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
129acb7c |
|
07-Nov-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix typo in CI dpm disable Need to disable DS, not enable it when disabling dpm. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
1955f107 |
|
14-Sep-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: rework CI dpm thermal setup In preparation for fan control. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
01467a9b |
|
14-Oct-2014 |
Michele Curti <michele.curti@gmail.com> |
drm/radeon: reduce sparse false positive warnings include radeon_asic.h header file in the various xxx_dpm.c files to reduce sparse false positive warnings. Not so great patch in itself, but reducing warning count from 391 to 258 may help to see real problems.. Signed-off-by: Michele Curti <michele.curti@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
3e15c353 |
|
02-Oct-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/ci: add uvd/vce info to dpm debugfs output Track whether UVD or VCE are enabled in debugfs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
6aff1e28 |
|
23-Sep-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: drop clk/voltage dependency filters for CI Not sure this was ever necessary for CI, was just done to be on the safe side. bug: https://bugs.freedesktop.org/show_bug.cgi?id=69721 Reviewed-by: Alexandre Demers <alexandre.f.demers@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
6bce8d97 |
|
11-Aug-2014 |
Oleg Chernovskiy <algonkvel@gmail.com> |
drm/radeon: Add missing lines to ci_set_thermal_temperature_range Properly set the thermal min and max temp on CI. Otherwise, we end up setting the thermal ranges to 0 on resume and end up in the lowest power state. Signed-off-by: Oleg Chernovskiy <algonkvel@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
6b57f20c |
|
31-Jul-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: handle voltage info fetching on hawaii Some hawaii cards use a different method to fetch the voltage info from the vbios. bug: https://bugs.freedesktop.org/show_bug.cgi?id=74250 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
ed963771 |
|
08-Jul-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: fix typo in ci_stop_dpm() Need to use the RREG32_SMC() accessor since the register is an smc indirect index. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
7e1858f9 |
|
11-Apr-2014 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon: re-enable mclk dpm on R7 260X asics If the new mc ucode is available. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
6abc6d5c |
|
10-Apr-2014 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon: update CI DPM powertune settings As per internal recommendations. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
57700ad1 |
|
10-Apr-2014 |
Alex Deucher <alexdeucher@gmail.com> |
drm/radeon: disable mclk dpm on R7 260X Setting higher mclks seems to cause stability issues on some R7 260X boards. Disable it for now for stability until we find a proper fix. bug: https://bugs.freedesktop.org/show_bug.cgi?id=75992 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
|
#
a1d6f97c |
|
05-Sep-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/cik: enable/disable vce cg when encoding v2 Some of the vce clocks are automatic, others need to be manually enabled. For ease, just disable cg when vce is active. v2: rebased Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
ee35b002 |
|
23-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: enable vce dpm on CI VCE dpm dynamically adjusts the uvd clocks on demand. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
8cd36682 |
|
23-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: add vce dpm support for CI Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
82f79cc5 |
|
21-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: move platform caps fetching to a separate function It's needed by by both the asic specific functions and the extended table parser. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
9a04dad3 |
|
06-Jan-2014 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: make some functions static for CI Noticed by Rashika Kheria and cherry-picked from her larger patch set. Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: Rashika Kheria <rashika.kheria@gmail.com>
|
#
6c7bccea |
|
18-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/pm: move pm handling into the asic specific code We need more control over the ordering of dpm init with respect to the rest of the asic. Specifically, the SMC has to be initialized before the rlc and cg/pg. The pm code currently initializes late in the driver, but we need it to happen much earlier so move pm handling into the asic specific callbacks. This makes dpm more reliable and makes clockgating work properly on CIK parts and should help on SI parts as well. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
e14cd2bb |
|
19-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: switch on new late_enable callback Right now it's called right after enable, but after reworking the dpm init order, it will get called later to accomodate loading the smc early, but enabling thermal interrupts and block powergating later after the ring tests are complete. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
90208427 |
|
19-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: add late_enable for CI Make sure interrupts are enabled before we enable thermal interrupts. Also, don't powergate uvd until after the ring tests. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
f2185ece |
|
18-Dec-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/cik: drop cg_update from dpm code I'm not entirely sure this is required and it won't work with the dpm restructing anyway. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
2d40038d |
|
09-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: add hawaii dpm support This updates the CI dpm (dynamic power management) support for hawaii. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
a52b5eb6 |
|
21-Sep-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables Filter out mclk and sclk levels higher than listed in the clk voltage dependency tables. Supporting these clocks will require additional driver tweaking that isn't supported yet. See bug: https://bugs.freedesktop.org/show_bug.cgi?id=68235 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
1cd8b21a |
|
13-Sep-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: rework auto performance level enable Calling force_performance_level() from set_power_state() doesn't work on some asics because the current power state pointer has not been properly updated at that point. Move the calls to force_performance_level() out of the asic specific set_power_state() functions and into the main power state sequence. Fixes dpm resume on SI. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
ab62e768 |
|
02-Sep-2013 |
Stephen Rothwell <sfr@canb.auug.org.au> |
drm/radeon: protect ACPI calls with CONFIG_ACPI Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Alex Deucher <Alexander.Deucher@amd.com> Signed-off-by: Dave Airlie <airlied@gmail.com>
|
#
679fe80f |
|
30-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: make sure dc performance level limits are valid (CI) Check to make sure the dc limits are valid before using them. Some systems may not have a dc limits table. In that case just use the ac limits. This fixes hangs on systems when the power state is changed when on battery (dc) due to invalid performance state parameters. Should fix: https://bugs.freedesktop.org/show_bug.cgi?id=68708 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
b309ed98 |
|
20-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: gcc fixes for ci dpm Newer versions of gcc seem to wander off into the weeds when dealing with variable sizes arrays in structs. Rather than indexing the arrays, use pointer arithmetic. See bugs: https://bugs.freedesktop.org/show_bug.cgi?id=66932 https://bugs.freedesktop.org/show_bug.cgi?id=66972 https://bugs.freedesktop.org/show_bug.cgi?id=66945 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
47acb1ff |
|
26-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: track uvd gated state for ci Track the current uvd gated state on CI to avoid unnecessary state changes when uvd is active. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
9597fe1e |
|
23-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: enable uvd dpm on CI UVD dpm dynamically adjusts the uvd clocks on demand. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
cf0ab2cd |
|
14-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: handle cg in CI dpm code Clockgating needs to be disabled around certain parts of dpm setup otherwise the smc gets into a bad state and dpm doesn't work properly. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
942bdf7f |
|
09-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: implement UVD powergating for CI Disable the UVD block when not in use to save power. The block is not actually powergated on CI, but we switch between UVD DPM (where the uvd clocks are adjusted on demand) and clocks off. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
5496131e |
|
15-Jul-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: implement vblank_too_short callback for CI Check if we can switch the mclk during the vblank time otherwise we may get artifacts on the screen when the mclk changes. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
89536fd6 |
|
15-Jul-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: implement force performance level for CI Allows you to force the selected performance level via sysfs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
94b4adc5 |
|
15-Jul-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon/dpm: add debugfs support for CI This allows you to look at the current DPM state via debugfs. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
#
cc8dbbb4 |
|
13-Aug-2013 |
Alex Deucher <alexander.deucher@amd.com> |
drm/radeon: add dpm support for CI dGPUs (v2) This adds dpm support for btc asics. This includes: - dynamic engine clock scaling - dynamic memory clock scaling - dynamic voltage scaling - dynamic pcie gen switching Set radeon.dpm=1 to enable. v2: remove unused radeon_atombios.c changes, make missing smc ucode non-fatal Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|