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 at osadl.org>
---
        ./drivers/gpu/drm/radeon/ci_dpm.c:3847 bad/useless conditional
<snip>
3845     } else {
3846          /* XXX check display min clock requirements */
3847          if (CISLAND_MINIMUM_ENGINE_CLOCK !=
CISLAND_MINIMUM_ENGINE_CLOCK)
3848               pi->need_update_smu7_dpm_table |= DPMTABLE_UPDATE_SCLK;
3849     }
<snip>

 which is unreachable given the condition - as this seems to be an
 intentional disabling of that code section as stated in the commit
 message of d967be9b80a5 ("drm/radeon/ci: disable needless sclk changes")
 that introduced that change it should be at least commented

  in drivers/gpu/drm/amd/amdgpu/ci_dpm.c at line 3988
3986    } else {
3987        /* XXX check display min clock requirements */
3988        if (CISLAND_MINIMUM_ENGINE_CLOCK !=
CISLAND_MINIMUM_ENGINE_CLOCK)
3989             pi->need_update_smu7_dpm_table |= DPMTABLE_UPDATE_SCLK;
3990    }

 The below patch adds a possibly suitable comment (taken directly from
 commit d967be9b80a5 ("drm/radeon/ci: disable needless sclk changes")
 But I�m not sure if such constructs really should be in the upstream
 kernel at all....

Patch was compile tested with x86_64_defconfig + CONFIG_DRM_RADEON=m

Patch is against 4.7.0-rc7 (localversion-next is -next-20160719)

 drivers/gpu/drm/radeon/ci_dpm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index 35e0fc3..7ba4508 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -3843,7 +3843,10 @@ static void 
ci_find_dpm_states_clocks_in_dpm_table(struct radeon_device *rdev,
        if (i >= sclk_table->count) {
                pi->need_update_smu7_dpm_table |= DPMTABLE_OD_UPDATE_SCLK;
        } else {
-               /* XXX check display min clock requirements */
+               /* XXX The current code always reprogrammed the sclk levels,
+                * but we don't currently handle disp sclk requirements
+                * so just skip it.
+                */
                if (CISLAND_MINIMUM_ENGINE_CLOCK != 
CISLAND_MINIMUM_ENGINE_CLOCK)
                        pi->need_update_smu7_dpm_table |= DPMTABLE_UPDATE_SCLK;
        }
-- 
2.1.4

Reply via email to