drm/radeon/dpm: fix display_gap programming on rv7xx
Check the driver state rather than the register as the crtc registers may not be enabled yet. Should fix: https://bugzilla.kernel.org/show_bug.cgi?id=60510 https://bugs.freedesktop.org/show_bug.cgi?id=66651 Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
9b5de59629
commit
222dc9a072
|
@ -1341,10 +1341,10 @@ static void rv770_program_display_gap(struct radeon_device *rdev)
|
||||||
u32 tmp = RREG32(CG_DISPLAY_GAP_CNTL);
|
u32 tmp = RREG32(CG_DISPLAY_GAP_CNTL);
|
||||||
|
|
||||||
tmp &= ~(DISP1_GAP_MCHG_MASK | DISP2_GAP_MCHG_MASK);
|
tmp &= ~(DISP1_GAP_MCHG_MASK | DISP2_GAP_MCHG_MASK);
|
||||||
if (RREG32(AVIVO_D1CRTC_CONTROL) & AVIVO_CRTC_EN) {
|
if (rdev->pm.dpm.new_active_crtcs & 1) {
|
||||||
tmp |= DISP1_GAP_MCHG(R600_PM_DISPLAY_GAP_VBLANK);
|
tmp |= DISP1_GAP_MCHG(R600_PM_DISPLAY_GAP_VBLANK);
|
||||||
tmp |= DISP2_GAP_MCHG(R600_PM_DISPLAY_GAP_IGNORE);
|
tmp |= DISP2_GAP_MCHG(R600_PM_DISPLAY_GAP_IGNORE);
|
||||||
} else if (RREG32(AVIVO_D2CRTC_CONTROL) & AVIVO_CRTC_EN) {
|
} else if (rdev->pm.dpm.new_active_crtcs & 2) {
|
||||||
tmp |= DISP1_GAP_MCHG(R600_PM_DISPLAY_GAP_IGNORE);
|
tmp |= DISP1_GAP_MCHG(R600_PM_DISPLAY_GAP_IGNORE);
|
||||||
tmp |= DISP2_GAP_MCHG(R600_PM_DISPLAY_GAP_VBLANK);
|
tmp |= DISP2_GAP_MCHG(R600_PM_DISPLAY_GAP_VBLANK);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue