Comment 14 for bug 1902795

Revision history for this message
Thomas Debesse (illwieckz) wrote : Re: PCI graphics broken on AMD K8/K10 platform (while it works on Intel) verified from Linux 4.4 to 5.10-rc1

I noticed a similar bug was reported on 3.2 kernel in year 2012:
https://bugzilla.redhat.com/show_bug.cgi?id=785375

At the time the bug was fixed by switching the PCI DMA bit mask from 40-bits to 32-bits:
https://bugzilla.redhat.com/attachment.cgi?id=603278

The initial patch was testing against the GPU chip family, but that seems wrong because now we see the same GPUs working with 40-bits mask on some Intel platforms and not on some AMD platforms.

This patch makes all PCI GPU use 32-bit masks. This is expected to be non-optimal platforms supporting 40-bits DMA masks, but is safest. An alternative would be to test against the platforms.

This patch is not enough to fix PCI GPUs working on K8 and K10 platforms, also, this patch only concern Radeon hardware, while Nvidia hardware are both affected on those platforms (both running nouveau or nvidia).

This patch makes enough to workaround this error on ATI PCI devices on K10:

```
[drm:r600_ring_test [radeon]] *ERROR* radeon: ring 0 test failed (scratch(0x8504)=0xCAFEDEAD)
radeon 0000:03:00.0: disabling GPU acceleration
```

And this one on both ATI PCI devices on K10 and ATI AGP devices on Linux 5.9 (AGP disabled?):

```
trying to bind memory to uninitialized GART !
```

This is not enough to fix PCI GPUs on K8 (K8T800) and K10 (nForce3), also, non-ATI Nvidia PCI GPUs are affected by at least one other bug that may be in common.

This is not a call to disable AGP, and other bug(s) left such AGP hardware unusable once AGP is disabled.

This patch has been written against Linux 5.8 vanilla but applies correctly on on 5.9 and 5.10-rc2.