https://bugzilla.kernel.org/show_bug.cgi?id=95911
--- Comment #23 from gitne@excite.co.jp --- (In reply to Alex Deucher from comment #20)
Does this help?
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 5751446..1b4ac44 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -435,14 +435,14 @@ static int radeon_pmops_freeze(struct device *dev) { struct pci_dev *pdev = to_pci_dev(dev); struct drm_device *drm_dev = pci_get_drvdata(pdev);
- return radeon_suspend_kms(drm_dev, false, true);
- return radeon_suspend_kms(drm_dev, true, true);
}
static int radeon_pmops_thaw(struct device *dev) { struct pci_dev *pdev = to_pci_dev(dev); struct drm_device *drm_dev = pci_get_drvdata(pdev);
- return radeon_resume_kms(drm_dev, false, true);
- return radeon_resume_kms(drm_dev, true, true);
}
static int radeon_pmops_runtime_suspend(struct device *dev)
Thank you for digging into this. Again, I do not have the capacity to build a Linux kernel. Could you do this for me? Then, I could also test it on my older machine, which could potentially greatly improve support for many other machines at the same time.
So far, radeon.msi=0 works for me as a workaround. I do not know how much of a performance penalty this incurs but things seem to work smoothly. To quantify any penalty, some exact measurements are required. However, since radeon.msi=1 does not work smoothly, it is going to be difficult to assess any quantifiable results (and be able to compare them to radeon.msi=0) in this case. Can you give me a hint as to what benchmarks I could/should run?