diff options
author | Chengzhe Liu <ChengZhe.Liu@amd.com> | 2021-07-20 15:18:12 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2021-07-23 10:09:40 -0400 |
commit | 1bece222eabeb3d8b10c5f2dadb03b6fb780b050 (patch) | |
tree | 9504670a7f981c878e732e03ea2dc8fd1c2c6806 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
parent | 5810323ba692895b045e3f1b3e107605c3717dab (diff) | |
download | linux-1bece222eabeb3d8b10c5f2dadb03b6fb780b050.tar.bz2 |
drm/amdgpu: Clear doorbell interrupt status for Sienna Cichlid
On Sienna Cichlid, in pass-through mode, if we unload the driver in BACO
mode(RTPM), then the kernel would receive thousands of interrupts.
That's because there is doorbell monitor interrupt on BIF, so KVM keeps
injecting interrupts to the guest VM. So we should clear the doorbell
interrupt status after BACO exit.
v2: Modify coding style and commit message
Signed-off-by: Chengzhe Liu <ChengZhe.Liu@amd.com>
Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 909e52fb76cd..d3a4299b1f30 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -5329,6 +5329,10 @@ int amdgpu_device_baco_exit(struct drm_device *dev) adev->nbio.funcs->enable_doorbell_interrupt) adev->nbio.funcs->enable_doorbell_interrupt(adev, true); + if (amdgpu_passthrough(adev) && + adev->nbio.funcs->clear_doorbell_interrupt) + adev->nbio.funcs->clear_doorbell_interrupt(adev); + return 0; } |