Bug 76861
Summary: | radeon: flickering horizontal stripes/lines | ||
---|---|---|---|
Product: | Drivers | Reporter: | Sven Dziadek (sven.dziadek) |
Component: | Video(DRI - non Intel) | Assignee: | drivers_video-dri |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | deathsimple, sven.dziadek |
Priority: | P1 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 3.15-rc6 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
Video of my monitor
Possible fix dmesg output with patch applied patched with value 107 dmesg output for (still working) Kernel 3.15-rc1 |
Description
Sven Dziadek
2014-05-24 23:19:07 UTC
Created attachment 137371 [details]
Possible fix
Might be caused by the recent PLL changes. Does the attached patch helps?
Also please provide dmesg output generated with drm.debug=0xE on the kernel commandline.
Created attachment 137401 [details]
dmesg output with patch applied
The patch did not change anything for me. The flickering lines are still there.. Maybe the dmesg output will help? Thanks (In reply to Sven Dziadek from comment #3) > Maybe the dmesg output will help? The logs show that your system indeed seems to be affected by the patch. Can you try even lower values than 114 and see if it changes anything? Also please provide the dmesg output with rc1 where it still worked fine. Created attachment 137421 [details]
patched with value 107
Value 107 works for me. I am currently testing which is the highest value working for me. I think, this is what you need?
Created attachment 137431 [details]
dmesg output for (still working) Kernel 3.15-rc1
(In reply to Sven Dziadek from comment #5) > Created attachment 137421 [details] > patched with value 107 > > Value 107 works for me. I am currently testing which is the highest value > working for me. I think, this is what you need? The highest working value would be nice indeed, but the problem is that the numbers get reduced once more after applying the limit. For example with the value 105 the ratio of 11292/105 gets reduced to 3764/35 (both sides divided by 3) before it is send to the hardware. Take a look at the following lines in the log and try different values between 100 and 114: [drm:radeon_compute_pll_avivo] 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 A value below 100 is known to not work correctly for some users, values above 128 doesn't work for some other users. We essentially need to figure out the sweet spot in between. So, I tried different values. First, I was not paying enough attention. Because with value 112 and 113, there are very few lines appearing. Value 111 is the one where I did not see any lines until now. [drm:radeon_compute_pll_avivo] 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 Is the corresponding line in the dmesg. Is that all you need? And thanks for your work! (In reply to Sven Dziadek from comment #8) > Is that all you need? And thanks for your work! What happens when you use 108, 109 or 110? Ok, for value 111 and smaller, I don't see any lines or stripes. I have not tried all possible values, but I assume, this is not necessary. For the values I tried, I can give you the corresponding dmesg entries: dmesg.log_rc1: 154000 - 15752, pll dividers - fb: 154.0 ref: 2, post 7 dmesg.log_pll_105: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_107: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_108: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_109: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_110: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_111: 154000 - 154000, pll dividers - fb: 376.4 ref: 5, post 7 dmesg.log_pll_112: 154000 - 154000, pll dividers - fb: 1204.5 ref: 16, post 7 dmesg.log_pll_113: 154000 - 154000, pll dividers - fb: 1204.5 ref: 16, post 7 dmesg.log_pll_114: 154000 - 154000, pll dividers - fb: 1226.0 ref: 19, post 6 Tell me when you need more values or more parts of the dmesg logs. What happens if you comment out "avivo_reduce_ratio(&fb_div, &ref_div, fb_div_min, ref_div_min);" ? The problem is that values smaller than 112 doesn't give us a ref divider of 15 instead we get a divider of 5 because the feedback divider is dividable by 3 as well. Ok, new report ;-) With this line commented out, the lines reappear. I tried with these values: dmesg.log_pll_105: 154000 - 154000, pll dividers - fb: 1129.2 ref: 15, post 7 dmesg.log_pll_110: 154000 - 154000, pll dividers - fb: 1129.2 ref: 15, post 7 dmesg.log_pll_111: 154000 - 154000, pll dividers - fb: 1129.2 ref: 15, post 7 dmesg.log_pll_112: 154000 - 154000, pll dividers - fb: 1204.5 ref: 16, post 7 All of them contain stripes/ lines. Crap, I freared that this could happen. Please try values of 50,60,70,80,90 as well and see where the limit is that the lines disapear. I tried some more values. With the line commented out, the lines appear with value 80 and higher. They do not appear with value 70 and lower. I did not try 60 or any values between 70 and 80. Do you need it more detailed? dmesg.log_pll_50: 154000 - 153990, pll dividers - fb: 516.2 ref: 8, post 6 dmesg.log_pll_70: 154000 - 154000, pll dividers - fb: 752.8 ref: 10, post 7 dmesg.log_pll_80: 154000 - 153990, pll dividers - fb: 838.8 ref: 13, post 6 dmesg.log_pll_90: 154000 - 154000, pll dividers - fb: 967.9 ref: 15, post 6 The new 3.15-rc8 works fine for me. |