https://bugs.freedesktop.org/show_bug.cgi?id=98897
--- Comment #18 from berg <berglh at gmail.com> --- (In reply to Cédric Le Goater from comment #17) > so this is a CHIP_VERDE revision 0x83 (In reply to Cédric Le Goater from comment #14) > (In reply to Michel Dänzer from comment #10) > > If you can't or don't want to bisect, there are only 4 radeon driver commits > > between 4.8.6 and 4.8.7, so it shouldn't take long to try manually reverting > > each of those. > > https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/ > > ?h=linux-4.8.y&id=e136de5d733161fdfd203f23b448434170d189ea seems like a good > > candidate, since it's clock related and explicitly references your GPU in > > the code. > > Hi, > > I have reverted this commit on a 4.8.14 and the flickering stopped. > > C. Having a looking at the diff; the new diff actually configures } else if (rdev->family == CHIP_VERDE) { + if ((rdev->pdev->revision == 0x81) || + (rdev->pdev->revision == 0x83) || ... + (rdev->pdev->device == 0x6821) || ... + (rdev->pdev->device == 0x682B)) { + max_sclk = 75000; + max_mclk = 80000; + } So on my MacBook Pro 11,5 - the device ID and revision are: 01:00.0 0300: 1002:6821 (rev 83) 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Venus XT [Radeon HD 8870M / R9 M270X/M370X] (rev 83) So; since this commit, the max_sclk and max_mclk has been set for this GPU to 75000 and 80000. In previous version of this driver module, this specific GPU was being skipped. I think these values have been incorrectly set for this CPU. According to these specifications for the M370X Mac chip, http://gpuboss.com/graphics-card/Radeon-R9-M370X-Mac, the two values max_sclk and max_mclk are probably: Clock speed 775 MHz Turbo clock speed 800 MHz So we are setting this stuff to run possibly 25 MHz out of sync with the actual GPU clock. I'm guessing this would be subtle enough to cause the flickering we're seeing, perhaps it should be something like this: } else if (rdev->family == CHIP_VERDE) { if (rdev->pdev->device == 0x6821 && rdev->pdev->revision == 0x83) { max_sclk = 77500; max_mclk = 80000; } else if other conditions In general though, the new block of device and revisions are VERY loose and not very well thought out. The OR conditionals are too far reaching. This GPU is matched in two different sections and even the device ID or the revision alone is enough to modify the aforementioned values. I might make compile 4.9.0 tonight to try this theory out and set max_sclk to 77500. Perhaps the best actual solution is to not even include this device and revision in the dpm quirks; as it was previously omitted and was never an actual problem. I haven't figured out how to determine the actual GPU frequency right now, but if we can confirm it's running at a stock speed of 775 MHz, that would give me greater confidence in testing this idea out. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20161215/86bd62fc/attachment-0001.html>