]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: Fix pci state save during mode-1 reset
authorLijo Lazar <lijo.lazar@amd.com>
Tue, 18 Jun 2024 08:34:38 +0000 (14:04 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 5 Jul 2024 07:38:02 +0000 (09:38 +0200)
[ Upstream commit 74fa02c4a5ea1ade5156a6ce494d3ea83881c2d8 ]

Cache the PCI state before bus master is disabled. The saved state is
later used for other cases like restoring config space after mode-2
reset.

Fixes: 5c03e5843e6b ("drm/amdgpu:add smu mode1/2 support for aldebaran")
Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 941d6e379b8a6ee2013a1ef968ef7ea16df2a3ae..eb8af023326ab3389d747a86136494a9120d296a 100644 (file)
@@ -5121,11 +5121,14 @@ int amdgpu_device_mode1_reset(struct amdgpu_device *adev)
 
        dev_info(adev->dev, "GPU mode1 reset\n");
 
+       /* Cache the state before bus master disable. The saved config space
+        * values are used in other cases like restore after mode-2 reset.
+        */
+       amdgpu_device_cache_pci_state(adev->pdev);
+
        /* disable BM */
        pci_clear_master(adev->pdev);
 
-       amdgpu_device_cache_pci_state(adev->pdev);
-
        if (amdgpu_dpm_is_mode1_reset_supported(adev)) {
                dev_info(adev->dev, "GPU smu mode1 reset\n");
                ret = amdgpu_dpm_mode1_reset(adev);