On 2023-01-26 04:20, Christian König wrote:
Am 25.01.23 um 18:16 schrieb vitaly.pros...@amd.com:
From: Vitaly Prosyak <vitaly.pros...@amd.com>
Added condition for pci_dev_is_disconnected and keeps
drm_dev_is_unplugged to check whether we should unmap MMIO.
Suggested by Alex regarding pci_dev_is_disconnected.
Suggested by Christian keeping drm_dev_is_unplugged.
Signed-off-by: Vitaly Prosyak <vitaly.pros...@amd.com>
Reviewed-by Alex Deucher <alexander.deuc...@amd.com>
Reviewed-by Christian Koenig <christian.coe...@amd.com>
Did I gave my rb with this include path below???
Explicitly there was no RB, but there was a private thread which does
not include this include.
Change-Id: I618c471cd398437d4ed6dec6d22be78e12683ae6
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index a10b627c8357..d3568e1ded23 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -78,6 +78,8 @@
#include <drm/drm_drv.h>
+#include "../../../../pci/pci.h"
That include path looks more than suspicious.
If we want to use pci_dev_is_disconnected() outside of the pci
subsystem we should probably move it to include/linux/pci.h
Alright, I would drop this patch until the It would be a separate patch
to create a new:
include/linux/pci.h with the following content:
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_PCI)
bool pci_dev_is_disconnected(const struct pci_dev *dev)
{
return dev->error_state == pci_channel_io_perm_failure;
}
#else
bool pci_dev_is_disconnected(const struct pci_dev *dev)
{
return true;
}
#endif
I am not sure about enablement of amdgpu when PCI is off in the config,
but this is related to move pci_dev_is_disconnected into separate file
and receive review from PCI system/.
Regards,
Christian.
+
MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin");
MODULE_FIRMWARE("amdgpu/vega12_gpu_info.bin");
MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");
@@ -4031,7 +4033,8 @@ void amdgpu_device_fini_hw(struct amdgpu_device
*adev)
amdgpu_gart_dummy_page_fini(adev);
- if (drm_dev_is_unplugged(adev_to_drm(adev)))
+ if (pci_dev_is_disconnected(adev->pdev) &&
+ drm_dev_is_unplugged(adev_to_drm(adev)))
amdgpu_device_unmap_mmio(adev);
}