Hi Maciej, I tested this patch on a MacBookPro14,3 with the Radeon Pro 560 (1002:67ef, subsystem 106b:0179, rev c0), which is not in vi_reset_quirks[]. The kernel is 7.2.5 with commits a5be7ad8f5f0 and a22e5e4f2ebb backported, plus distribution patches; amdgpu was built from that tree with this patch on top.
Without the patch this board boots with VRAM at 0 every time (MC_VM_FB_LOCATION 0x00ff0000), and a re-post moves it to 0xf4fff400 under the driver. With it, after both a warm reboot and a cold boot (powered off for three minutes), amdgpu logs "PCI CONFIG reset" and "GPU posting now..." on load, VRAM is at 0x000000F400000000, MC_VM_FB_LOCATION reads 0xf4fff400 through debugfs, and there are no amdgpu errors. I then ran five S3 cycles with rtcwake. After each resume MC_VM_FB_LOCATION was still 0xf4fff400, the GART table was at 0x000000F401B00000, the internal panel came back, and the kernel log showed no amdgpu errors, ring timeouts or IOMMU faults. The 560 is not in vi_reset_quirks[], so v3 3/3 behaves the same way on this machine. This also covers the one-line quirk entry I sent for this GPU [1], so that one can be dropped. Tested-by: Sergey Armodin <[email protected]> # MacBookPro14,3, Radeon Pro 560 [1] https://lore.kernel.org/amd-gfx/[email protected]/
