Skip to contentSkip to conversation

Patch "drm/amdgpu: add pm sysfs files late" has been added to the 4.2-stable tree

PATCH [email protected] 1 participant 1 message Oct 23, 2015

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

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 fa022a9b65d2886486a022fd66b20c823cd76ad9 Mon 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 *handle
 	if (!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 *handle
 	struct 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