The patch from this thread https://bugzilla.kernel.org/show_bug.cgi?id=30832 seems to fix it. I have tested with mainline 2.6.38 smf 2.6.37.4
Some boards seem to prefer the legacy pll algo for tv-out.
Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=30832
Signed-off-by: Alex Deucher <email address hidden>
--- drivers/gpu/drm/radeon/atombios_crtc.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index c74f646..80e26c0 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c @@ -957,7 +957,11 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode /* adjust pixel clock as needed */ adjusted_clock = atombios_adjust_pll(crtc, mode, pll, ss_enabled, &ss);
- if (ASIC_IS_AVIVO(rdev)) + if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) + /* TV seems to prefer the legacy algo on some boards */ + radeon_compute_pll_legacy(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, + &ref_div, &post_div); + else if (ASIC_IS_AVIVO(rdev)) radeon_compute_pll_avivo(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, &ref_div, &post_div); else
The patch from this thread https:/ /bugzilla. kernel. org/show_ bug.cgi? id=30832 seems to fix it. I have tested with mainline 2.6.38 smf 2.6.37.4
Some boards seem to prefer the legacy pll algo for tv-out.
Fixes: /bugzilla. kernel. org/show_ bug.cgi? id=30832
https:/
Signed-off-by: Alex Deucher <email address hidden>
--- gpu/drm/ radeon/ atombios_ crtc.c | 6 +++++-
drivers/
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/ gpu/drm/ radeon/ atombios_ crtc.c b/drivers/ gpu/drm/ radeon/ atombios_ crtc.c gpu/drm/ radeon/ atombios_ crtc.c gpu/drm/ radeon/ atombios_ crtc.c crtc_set_ pll(struct drm_crtc *crtc, struct drm_display_mode adjust_ pll(crtc, mode, pll, ss_enabled, &ss);
index c74f646..80e26c0 100644
--- a/drivers/
+++ b/drivers/
@@ -957,7 +957,11 @@ static void atombios_
/* adjust pixel clock as needed */
adjusted_clock = atombios_
- if (ASIC_IS_ AVIVO(rdev) ) encoder- >active_ device & (ATOM_DEVICE_ TV_SUPPORT) ) compute_ pll_legacy( pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, AVIVO(rdev) ) compute_ pll_avivo( pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div,
+ if (radeon_
+ /* TV seems to prefer the legacy algo on some boards */
+ radeon_
+ &ref_div, &post_div);
+ else if (ASIC_IS_
radeon_
&ref_div, &post_div);
else