aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-10-23 10:38:52 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-10-23 10:38:52 -0400
commit49abb26651167c892393cd9f2ad23df429645ed9 (patch)
tree8d91c023ee035368e036ae3662d382609dcdacf5
parent5c92d87d30b23844e6998d8318e4c19ee3a907ac (diff)
drm/radeon: don't try to recreate sysfs entries on resume
Fixes a harmless error message caused by: 51a4726b04e880fdd9b4e0e58b13f70b0a68a7f5 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
-rw-r--r--drivers/gpu/drm/radeon/radeon.h1
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c35
2 files changed, 22 insertions, 14 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index f03b7eb15233..b6cbd816537e 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -1658,6 +1658,7 @@ struct radeon_pm {
1658 u8 fan_max_rpm; 1658 u8 fan_max_rpm;
1659 /* dpm */ 1659 /* dpm */
1660 bool dpm_enabled; 1660 bool dpm_enabled;
1661 bool sysfs_initialized;
1661 struct radeon_dpm dpm; 1662 struct radeon_dpm dpm;
1662}; 1663};
1663 1664
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 6a0a176e26ec..5feee3b4c557 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -1528,19 +1528,23 @@ int radeon_pm_late_init(struct radeon_device *rdev)
1528 1528
1529 if (rdev->pm.pm_method == PM_METHOD_DPM) { 1529 if (rdev->pm.pm_method == PM_METHOD_DPM) {
1530 if (rdev->pm.dpm_enabled) { 1530 if (rdev->pm.dpm_enabled) {
1531 ret = device_create_file(rdev->dev, &dev_attr_power_dpm_state); 1531 if (!rdev->pm.sysfs_initialized) {
1532 if (ret) 1532 ret = device_create_file(rdev->dev, &dev_attr_power_dpm_state);
1533 DRM_ERROR("failed to create device file for dpm state\n"); 1533 if (ret)
1534 ret = device_create_file(rdev->dev, &dev_attr_power_dpm_force_performance_level); 1534 DRM_ERROR("failed to create device file for dpm state\n");
1535 if (ret) 1535 ret = device_create_file(rdev->dev, &dev_attr_power_dpm_force_performance_level);
1536 DRM_ERROR("failed to create device file for dpm state\n"); 1536 if (ret)
1537 /* XXX: these are noops for dpm but are here for backwards compat */ 1537 DRM_ERROR("failed to create device file for dpm state\n");
1538 ret = device_create_file(rdev->dev, &dev_attr_power_profile); 1538 /* XXX: these are noops for dpm but are here for backwards compat */
1539 if (ret) 1539 ret = device_create_file(rdev->dev, &dev_attr_power_profile);
1540 DRM_ERROR("failed to create device file for power profile\n"); 1540 if (ret)
1541 ret = device_create_file(rdev->dev, &dev_attr_power_method); 1541 DRM_ERROR("failed to create device file for power profile\n");
1542 if (ret) 1542 ret = device_create_file(rdev->dev, &dev_attr_power_method);
1543 DRM_ERROR("failed to create device file for power method\n"); 1543 if (ret)
1544 DRM_ERROR("failed to create device file for power method\n");
1545 if (!ret)
1546 rdev->pm.sysfs_initialized = true;
1547 }
1544 1548
1545 mutex_lock(&rdev->pm.mutex); 1549 mutex_lock(&rdev->pm.mutex);
1546 ret = radeon_dpm_late_enable(rdev); 1550 ret = radeon_dpm_late_enable(rdev);
@@ -1556,7 +1560,8 @@ int radeon_pm_late_init(struct radeon_device *rdev)
1556 } 1560 }
1557 } 1561 }
1558 } else { 1562 } else {
1559 if (rdev->pm.num_power_states > 1) { 1563 if ((rdev->pm.num_power_states > 1) &&
1564 (!rdev->pm.sysfs_initialized)) {
1560 /* where's the best place to put these? */ 1565 /* where's the best place to put these? */
1561 ret = device_create_file(rdev->dev, &dev_attr_power_profile); 1566 ret = device_create_file(rdev->dev, &dev_attr_power_profile);
1562 if (ret) 1567 if (ret)
@@ -1564,6 +1569,8 @@ int radeon_pm_late_init(struct radeon_device *rdev)
1564 ret = device_create_file(rdev->dev, &dev_attr_power_method); 1569 ret = device_create_file(rdev->dev, &dev_attr_power_method);
1565 if (ret) 1570 if (ret)
1566 DRM_ERROR("failed to create device file for power method\n"); 1571 DRM_ERROR("failed to create device file for power method\n");
1572 if (!ret)
1573 rdev->pm.sysfs_initialized = true;
1567 } 1574 }
1568 } 1575 }
1569 return ret; 1576 return ret;