<html><body>
<p>The AMD Radeon R7 M270 card's OpenGL functionality completely broke down in Linux kernel v4.10. Before v4.10, the card was incorrectly identified as a Radeon R7 M265 but worked perfectly (possibly due to the similarities between the two). It should also be noted that this issue is also present in Windows but is fixed by a vendor-specific driver by AMD which hasn't made its way to Linux yet.</p>
<p>After bisecting between the v4.9 and v4.10 tags, I discovered that the commit 3a69adfe5617 ("drm/radeon: drop oland quirks") was the culprit. Due to what I assume as lack of firmware support for the chip, the quirks which were addressed in the firmware never made it to the card resulting in this.</p>
<p>Specifically, when an OpenGL app was run with DRI_PRIME=1, the GPU would stall and the kernel logs would fill up with messages like the following:</p>
<p>“GPU lockup (current fence id 0x0000000010e5 last fence id 0x10ed on ring 0)” “ring 3 stalled for more than 40952msec”</p>
<p>This issue would crop up everytime DRI_PRIME=1 was used and is present across various applications – everything from natively supported games to glxgears. When the aforementioned stall would happen, the screen would freeze and the only solution would be to restart the X server altogether.</p>
<p>The attached commit reverts this change only for the M270 (the values for identifying it were obtained experimentally and checked across different PCs). It fixes the issue completely but I strongly believe that a firmware patch would be a <strong>much</strong> better solution.</p>
<p>Should the need arise, I am willing to provide any additional information that would help fix this issue.</p>
<p>Umang Raghuvanshi (1):</p>
<pre>drm/radeon: Fix GPU lockups for the R7 M270</pre>
<pre>drivers/gpu/drm/radeon/si_dpm.c | 5 +++++
1 file changed, 5 insertions(+)</pre>
<p>— 2.12.0</p>
<p>— Cheers, Umang Raghuvanshi.</p>
<img src="https://u4914032.ct.sendgrid.net/wf/open?upn=1a0lYcMslTFWRcWxgaM8pPVwfK5u7RfHgZ8Wg3TVP1cWLImKv6rqGMQmxNo2BmDHfXcu18VxkBRwk6r-2FuCJq5JoeT0vcixSBEjQQmyr9BEEz27tx4wv3fnhZAKe2AZFre1yaiE1xDUrHLbeAwWdF2Zui4xEaiZKDnbNZm1R2JCRHFwbnxdSqkW6byOiuHa1-2BNZL80B0cjg-2FG0t2FEnpRnD-2FyaNng2V-2FZM45Wk2wsMls-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;"/>
</body></html>