As far as the patches in other files are concerned, it should have been
as follows.

----------------------------------------------------------
--- /usr/local/src/5.14.0.git/focal/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c       
2021-11-29 22:43:48.637432730 +0000
+++ uvd_v6_0.c  2021-11-30 06:54:01.572401893 +0000
@@ -543,30 +543,8 @@
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;

-       /*
-        * Proper cleanups before halting the HW engine:
-        *   - cancel the delayed idle work
-        *   - enable powergating
-        *   - enable clockgating
-        *   - disable dpm
-        *
-        * TODO: to align with the VCN implementation, move the
-        * jobs for clockgating/powergating/dpm setting to
-        * ->set_powergating_state().
-        */
        cancel_delayed_work_sync(&adev->uvd.idle_work);

-       if (adev->pm.dpm_enabled) {
-               amdgpu_dpm_enable_uvd(adev, false);
-       } else {
-               amdgpu_asic_set_uvd_clocks(adev, 0, 0);
-               /* shutdown the UVD block */
-               amdgpu_device_ip_set_powergating_state(adev, 
AMD_IP_BLOCK_TYPE_UVD,
-                                                      AMD_PG_STATE_GATE);
-               amdgpu_device_ip_set_clockgating_state(adev, 
AMD_IP_BLOCK_TYPE_UVD,
-                                                      AMD_CG_STATE_GATE);
-       }
-
        if (RREG32(mmUVD_STATUS) != 0)
                uvd_v6_0_stop(adev);

@@ -578,6 +556,30 @@
        int r;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;

+       /*
+         * Proper cleanups before halting the HW engine:
+         *   - cancel the delayed idle work
+         *   - enable powergating
+         *   - enable clockgating
+         *   - disable dpm
+         *
+         * TODO: to align with the VCN implementation, move the
+         * jobs for clockgating/powergating/dpm setting to
+         * ->set_powergating_state().
+         */
+        cancel_delayed_work_sync(&adev->uvd.idle_work);
+
+        if (adev->pm.dpm_enabled) {
+                amdgpu_dpm_enable_uvd(adev, false);
+        } else {
+                amdgpu_asic_set_uvd_clocks(adev, 0, 0);
+                /* shutdown the UVD block */
+                amdgpu_device_ip_set_powergating_state(adev, 
AMD_IP_BLOCK_TYPE_UVD,
+                                                       AMD_PG_STATE_GATE);
+                amdgpu_device_ip_set_clockgating_state(adev, 
AMD_IP_BLOCK_TYPE_UVD,
+                                                       AMD_CG_STATE_GATE);
+        }
+
        r = uvd_v6_0_hw_fini(adev);
        if (r)
                return r;
----------------------------------------------------------

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1952568

Title:
  AMD GPU kernel driver unload error

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.14/+bug/1952568/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to