Patch "drm/amdgpu: add pm sysfs files late" has been added to the 4.2-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm/amdgpu: add pm sysfs files late
to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-amdgpu-add-pm-sysfs-files-late.patch
and it can be found in the queue-4.2 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
fa022a9b65d2886486a022fd66b20c823cd76ad9Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Wed, 30 Sep 2015 17:05:40 -0400
Subject: drm/amdgpu: add pm sysfs files late
From: Alex Deucher <[email protected]>
commit fa022a9b65d2886486a022fd66b20c823cd76ad9 upstream.
They were added relatively early in the driver init process which meant that in some cases the driver was not finished initializing before external tools tried to use them which could result in a crash depending on the timing.
--- drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 8 +++++--- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 10 ++++++---- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 9 ++++++--- 3 files changed, 17 insertions(+), 10 deletions(-)
drivers/gpu/drm/amd/amdgpu/ci_dpm.c +5 -3
@@ -6185,6 +6185,11 @@ static int ci_dpm_late_init(void *handleif (!amdgpu_dpm)return 0 ; +/* init the sysfs and debugfs files late */ + ret =amdgpu_pm_sysfs_init (adev); +if (ret) +return ret; + ret =ci_set_temperature_range (adev);if (ret)return ret;
@@ -6232,9 +6237,6 @@ static int ci_dpm_sw_init(void *handle) adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps;if (amdgpu_dpm ==1 )amdgpu_pm_print_power_states (adev); - ret =amdgpu_pm_sysfs_init (adev); -if (ret) - goto dpm_failed;mutex_unlock (&adev->pm.mutex);DRM_INFO ("amdgpu: dpm initialized\n" );
drivers/gpu/drm/amd/amdgpu/cz_dpm.c +6 -4
@@ -596,6 +596,12 @@ static int cz_dpm_late_init(void *handlestruct amdgpu_device *adev = (struct amdgpu_device *)handle;if (amdgpu_dpm) { +int ret; +/* init the sysfs and debugfs files late */ + ret =amdgpu_pm_sysfs_init (adev); +if (ret) +return ret; +/* powerdown unused blocks for now */ cz_dpm_powergate_uvd (adev, true);cz_dpm_powergate_vce (adev, true);
@@ -632,10 +638,6 @@ static int cz_dpm_sw_init(void *handle)if (amdgpu_dpm ==1 )amdgpu_pm_print_power_states (adev); - ret =amdgpu_pm_sysfs_init (adev); -if (ret) - goto dpm_init_failed; -mutex_unlock (&adev->pm.mutex);DRM_INFO ("amdgpu: dpm initialized\n" );
drivers/gpu/drm/amd/amdgpu/kv_dpm.c +6 -3
@@ -2995,6 +2995,12 @@ static int kv_dpm_late_init(void *handle {/* powerdown unused blocks for now */ struct amdgpu_device *adev = (struct amdgpu_device *)handle; +int ret; + +/* init the sysfs and debugfs files late */ + ret =amdgpu_pm_sysfs_init (adev); +if (ret) +return ret;kv_dpm_powergate_acp (adev, true);kv_dpm_powergate_samu (adev, true);
@@ -3038,9 +3044,6 @@ static int kv_dpm_sw_init(void *handle) adev->pm.dpm.current_ps = adev->pm.dpm.requested_ps = adev->pm.dpm.boot_ps;if (amdgpu_dpm ==1 )amdgpu_pm_print_power_states (adev); - ret =amdgpu_pm_sysfs_init (adev); -if (ret) - goto dpm_failed;mutex_unlock (&adev->pm.mutex);DRM_INFO ("amdgpu: dpm initialized\n" );
Patches currently in stable-queue which might be from [email protected] are
queue-4.2/drm-amdgpu-keep-the-pflip-interrupts-always-enabled-v7.patch queue-4.2/drm-amdgpu-fix-num_crtc-on-cz.patch queue-4.2/drm-amdgpu-check-before-checking-pci-bridge-registers.patch queue-4.2/drm-radeon-add-pm-sysfs-files-late.patch queue-4.2/drm-amdgpu-add-pm-sysfs-files-late.patch