Created attachment 137301 [details] Video of my monitor Maybe duplicate of https://bugzilla.kernel.org/show_bug.cgi?id=75921 Recent DRI updates trigger a strange bug with my Radeon graphics card. Horizontal lines flicker. These stripes/ lines start from the right edge of the screen and have different lengths. All colors are visible. The amount of lines depends on the speed of diplay changes. In games/ console scrolling, there is a lot of them. If the pc is idle, I don't see any. Occurs also in tty1 on the text console. I appended a bad-quality video showing this issue. Sorry for the quality, but screencast programs don't record the problem, only the picture as it should be. With 3.15-rc1 it still works fine. In later Kernels, it is black without output. From somewhere between 3.15-rc3 and 3.15-rc4 (when the black-screen-issue is fixed), theses stripes are visible. They are still there in latest commit: 1ee1ceafb572f1a925809168267a7962a4289de8 Graphics card is onboard: 01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880 [Radeon HD 4200] (prog-if 00 [VGA controller]) Monitor is attached over DVI. I haven't found any errors in syslog. Tell me if you need some more info.
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.