Bug 22229

Summary: Incorrect PLL values selected for RS690
Product: xorg Reporter: Tom Hirst <tom>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: marko.macek
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
RS690 PLL generation
none
Xorg Log with 1920x1200 DELL screen - pre patch
none
Xorg Log with 1920x1200 DELL screen - patch applied
none
Xorg Log with 1080p screen - fract fb div enabled
none
Xorg Log with 1080p screen - patch applied none

Description Tom Hirst 2009-06-11 02:47:47 UTC
I have had some problems with flickering using this chip and high resolution displays over DVI/HDMI. The problem seems dependent on the model of screen, some seem more sensitive to variations in pixel clock than others. I have managed to resolve the issue by making 2 changes to radeon_crtc.c, one to enable the use of the fractional fb divider and secondly by changing the selection criteria for PLL values to choose the closest frequency that is less than the target frequency, rather than just the closest. I have added these changes unconditionally to the driver (it's basically a quick hack to make it work and certainly could be much tidier), but can post a patch if required.

I don't have access to any other radeon cards so I can't say if this problem or the solution affects them - I suspect from the looking at the commit logs that the fractional fb div doesn't work on some cards, but it seems to be required for the RS690. 

Any advice on how/where to properly incorporate these changes into the driver would be appreciated.
Comment 1 Alex Deucher 2009-06-11 07:35:24 UTC
Please attach the patch and your xorg log.
Comment 2 Tom Hirst 2009-06-11 07:46:45 UTC
Created attachment 26677 [details] [review]
RS690 PLL generation
Comment 3 Tom Hirst 2009-06-11 08:13:58 UTC
Created attachment 26685 [details] [review]
Xorg Log with 1920x1200 DELL screen - pre patch
Comment 4 Tom Hirst 2009-06-11 08:14:25 UTC
Created attachment 26686 [details] [review]
Xorg Log with 1920x1200 DELL screen - patch applied
Comment 5 Tom Hirst 2009-06-11 08:32:52 UTC
Created attachment 26687 [details]
Xorg Log with 1080p screen - fract fb div enabled

This log is with on a 1080p screen with the factional fb div enabled, but without the second change, and produces a flicker or sometimes just random pixel corruption (similar to the snow effect pictured in bug #21553), hence the need for selecting the closest PLL value below the desired frequency.
Comment 6 Tom Hirst 2009-06-11 08:33:39 UTC
Created attachment 26688 [details]
Xorg Log with 1080p screen - patch applied
Comment 7 Alex Deucher 2009-06-11 09:39:23 UTC
Thanks Tom,  I've gone ahead and incorporated the patch.  It seems to work fine on all the hardware I have access to.
Comment 8 Alex Deucher 2009-06-11 09:49:32 UTC
*** Bug 15175 has been marked as a duplicate of this bug. ***
Comment 9 Tom Hirst 2009-06-12 02:15:26 UTC
Alex - I'm sure you are aware of this, but this fix is also relevant for the radeon KMS code in Fedora 11 and submitted for 2.6.31, would be good to see it applied there too if possible.
Comment 10 Alex Deucher 2009-06-12 08:05:12 UTC
(In reply to comment #9)
> Alex - I'm sure you are aware of this, but this fix is also relevant for the
> radeon KMS code in Fedora 11 and submitted for 2.6.31, would be good to see it
> applied there too if possible.
> 

Yes, I plan to queue it up along with any other ddx fixes that have accumulated since the my last push form the ddx to kms.
Comment 11 Ian Pilcher 2009-06-24 03:50:59 UTC
FYI, this patch seems to fix the occasional "flicker" that I was seeing on my
X1650 with 2 DVI-attached LCDS (1680x1050 & 1280x1024).  Nice work!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.