From: Christian König Date: Thu, 28 May 2015 20:02:26 +0000 (+0200) Subject: drm/amdgpu: stop loading firmware with pm.mutex locked X-Git-Tag: v4.2-rc1~13^2~25^2~9 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=faad24cf2372794759b40085aeb3a2504f3fa0c2;p=cascardo%2Flinux.git drm/amdgpu: stop loading firmware with pm.mutex locked 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 Reviewed-by: Alex Deucher Reviewed-by: Jammy Zhou --- diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c index 03809f1bcfd5..b1a4fbc22e69 100644 --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c @@ -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);