diff options
-rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 577239a24fd5..977f5c20ef1b 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
@@ -534,6 +534,20 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc, | |||
534 | pll->algo = PLL_ALGO_LEGACY; | 534 | pll->algo = PLL_ALGO_LEGACY; |
535 | pll->flags |= RADEON_PLL_PREFER_CLOSEST_LOWER; | 535 | pll->flags |= RADEON_PLL_PREFER_CLOSEST_LOWER; |
536 | } | 536 | } |
537 | /* There is some evidence (often anecdotal) that RV515 LVDS | ||
538 | * (on some boards at least) prefers the legacy algo. I'm not | ||
539 | * sure whether this should handled generically or on a | ||
540 | * case-by-case quirk basis. Both algos should work fine in the | ||
541 | * majority of cases. | ||
542 | */ | ||
543 | if ((radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) && | ||
544 | (rdev->family == CHIP_RV515)) { | ||
545 | /* allow the user to overrride just in case */ | ||
546 | if (radeon_new_pll == 1) | ||
547 | pll->algo = PLL_ALGO_NEW; | ||
548 | else | ||
549 | pll->algo = PLL_ALGO_LEGACY; | ||
550 | } | ||
537 | } else { | 551 | } else { |
538 | if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) | 552 | if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) |
539 | pll->flags |= RADEON_PLL_NO_ODD_POST_DIV; | 553 | pll->flags |= RADEON_PLL_NO_ODD_POST_DIV; |