drm/amdgpu: stop loading firmware with pm.mutex locked
authorChristian König <christian.koenig@amd.com>
Thu, 28 May 2015 20:02:26 +0000 (22:02 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2015 01:03:58 +0000 (21:03 -0400)
Loading firmware is a rather complicated process, in the end we add a
dependency between the pm mutex and the mm semaphore which results in
a harmless but annoying error message.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
drivers/gpu/drm/amd/amdgpu/ci_dpm.c

index 03809f1bcfd524f84bf5c97bb5ac98f76af54a23..b1a4fbc22e69d7cde4c3d6a1f9ada06a7a8a6975 100644 (file)
@@ -5839,10 +5839,6 @@ static int ci_dpm_init(struct amdgpu_device *adev)
        int ret;
        u32 mask;
 
-       ret = ci_dpm_init_microcode(adev);
-       if (ret)
-               return ret;
-
        pi = kzalloc(sizeof(struct ci_power_info), GFP_KERNEL);
        if (pi == NULL)
                return -ENOMEM;
@@ -6224,6 +6220,10 @@ static int ci_dpm_sw_init(void *handle)
        if (amdgpu_dpm == 0)
                return 0;
 
+       ret = ci_dpm_init_microcode(adev);
+       if (ret)
+               return ret;
+
        INIT_WORK(&adev->pm.dpm.thermal.work, amdgpu_dpm_thermal_work_handler);
        mutex_lock(&adev->pm.mutex);
        ret = ci_dpm_init(adev);