|
@@ -1851,10 +1851,9 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
|
|
return pll;
|
|
return pll;
|
|
}
|
|
}
|
|
/* otherwise, pick one of the plls */
|
|
/* otherwise, pick one of the plls */
|
|
- if ((rdev->family == CHIP_KAVERI) ||
|
|
|
|
- (rdev->family == CHIP_KABINI) ||
|
|
|
|
|
|
+ if ((rdev->family == CHIP_KABINI) ||
|
|
(rdev->family == CHIP_MULLINS)) {
|
|
(rdev->family == CHIP_MULLINS)) {
|
|
- /* KB/KV/ML has PPLL1 and PPLL2 */
|
|
|
|
|
|
+ /* KB/ML has PPLL1 and PPLL2 */
|
|
pll_in_use = radeon_get_pll_use_mask(crtc);
|
|
pll_in_use = radeon_get_pll_use_mask(crtc);
|
|
if (!(pll_in_use & (1 << ATOM_PPLL2)))
|
|
if (!(pll_in_use & (1 << ATOM_PPLL2)))
|
|
return ATOM_PPLL2;
|
|
return ATOM_PPLL2;
|
|
@@ -1863,7 +1862,7 @@ static int radeon_atom_pick_pll(struct drm_crtc *crtc)
|
|
DRM_ERROR("unable to allocate a PPLL\n");
|
|
DRM_ERROR("unable to allocate a PPLL\n");
|
|
return ATOM_PPLL_INVALID;
|
|
return ATOM_PPLL_INVALID;
|
|
} else {
|
|
} else {
|
|
- /* CI has PPLL0, PPLL1, and PPLL2 */
|
|
|
|
|
|
+ /* CI/KV has PPLL0, PPLL1, and PPLL2 */
|
|
pll_in_use = radeon_get_pll_use_mask(crtc);
|
|
pll_in_use = radeon_get_pll_use_mask(crtc);
|
|
if (!(pll_in_use & (1 << ATOM_PPLL2)))
|
|
if (!(pll_in_use & (1 << ATOM_PPLL2)))
|
|
return ATOM_PPLL2;
|
|
return ATOM_PPLL2;
|
|
@@ -2155,6 +2154,7 @@ static void atombios_crtc_disable(struct drm_crtc *crtc)
|
|
case ATOM_PPLL0:
|
|
case ATOM_PPLL0:
|
|
/* disable the ppll */
|
|
/* disable the ppll */
|
|
if ((rdev->family == CHIP_ARUBA) ||
|
|
if ((rdev->family == CHIP_ARUBA) ||
|
|
|
|
+ (rdev->family == CHIP_KAVERI) ||
|
|
(rdev->family == CHIP_BONAIRE) ||
|
|
(rdev->family == CHIP_BONAIRE) ||
|
|
(rdev->family == CHIP_HAWAII))
|
|
(rdev->family == CHIP_HAWAII))
|
|
atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
|
|
atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id,
|