Skip to content

Commit

Permalink
drm/radeon: don't disable plls that are in use by other crtcs
Browse files Browse the repository at this point in the history
Some plls are shared for DP.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
  • Loading branch information
Alex Deucher committed Aug 29, 2012
1 parent 523885d commit 4e58591
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions drivers/gpu/drm/radeon/atombios_crtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1682,9 +1682,22 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
struct drm_device *dev = crtc->dev;
struct radeon_device *rdev = dev->dev_private;
struct radeon_atom_ss ss;
int i;

atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);

for (i = 0; i < rdev->num_crtc; i++) {
if (rdev->mode_info.crtcs[i] &&
rdev->mode_info.crtcs[i]->enabled &&
i != radeon_crtc->crtc_id &&
radeon_crtc->pll_id == rdev->mode_info.crtcs[i]->pll_id) {
/* one other crtc is using this pll don't turn
* off the pll
*/
goto done;
}
}

switch (radeon_crtc->pll_id) {
case ATOM_PPLL1:
case ATOM_PPLL2:
Expand All @@ -1701,6 +1714,7 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
default:
break;
}
done:
radeon_crtc->pll_id = -1;
}

Expand Down

0 comments on commit 4e58591

Please sign in to comment.