diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_pm.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 23314be49480..164898b0010c 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c | |||
| @@ -460,10 +460,6 @@ static ssize_t radeon_get_dpm_state(struct device *dev, | |||
| 460 | struct radeon_device *rdev = ddev->dev_private; | 460 | struct radeon_device *rdev = ddev->dev_private; |
| 461 | enum radeon_pm_state_type pm = rdev->pm.dpm.user_state; | 461 | enum radeon_pm_state_type pm = rdev->pm.dpm.user_state; |
| 462 | 462 | ||
| 463 | if ((rdev->flags & RADEON_IS_PX) && | ||
| 464 | (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) | ||
| 465 | return snprintf(buf, PAGE_SIZE, "off\n"); | ||
| 466 | |||
| 467 | return snprintf(buf, PAGE_SIZE, "%s\n", | 463 | return snprintf(buf, PAGE_SIZE, "%s\n", |
| 468 | (pm == POWER_STATE_TYPE_BATTERY) ? "battery" : | 464 | (pm == POWER_STATE_TYPE_BATTERY) ? "battery" : |
| 469 | (pm == POWER_STATE_TYPE_BALANCED) ? "balanced" : "performance"); | 465 | (pm == POWER_STATE_TYPE_BALANCED) ? "balanced" : "performance"); |
| @@ -477,11 +473,6 @@ static ssize_t radeon_set_dpm_state(struct device *dev, | |||
| 477 | struct drm_device *ddev = dev_get_drvdata(dev); | 473 | struct drm_device *ddev = dev_get_drvdata(dev); |
| 478 | struct radeon_device *rdev = ddev->dev_private; | 474 | struct radeon_device *rdev = ddev->dev_private; |
| 479 | 475 | ||
| 480 | /* Can't set dpm state when the card is off */ | ||
| 481 | if ((rdev->flags & RADEON_IS_PX) && | ||
| 482 | (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) | ||
| 483 | return -EINVAL; | ||
| 484 | |||
| 485 | mutex_lock(&rdev->pm.mutex); | 476 | mutex_lock(&rdev->pm.mutex); |
| 486 | if (strncmp("battery", buf, strlen("battery")) == 0) | 477 | if (strncmp("battery", buf, strlen("battery")) == 0) |
| 487 | rdev->pm.dpm.user_state = POWER_STATE_TYPE_BATTERY; | 478 | rdev->pm.dpm.user_state = POWER_STATE_TYPE_BATTERY; |
| @@ -495,7 +486,12 @@ static ssize_t radeon_set_dpm_state(struct device *dev, | |||
| 495 | goto fail; | 486 | goto fail; |
| 496 | } | 487 | } |
| 497 | mutex_unlock(&rdev->pm.mutex); | 488 | mutex_unlock(&rdev->pm.mutex); |
| 498 | radeon_pm_compute_clocks(rdev); | 489 | |
| 490 | /* Can't set dpm state when the card is off */ | ||
| 491 | if (!(rdev->flags & RADEON_IS_PX) || | ||
| 492 | (ddev->switch_power_state == DRM_SWITCH_POWER_ON)) | ||
| 493 | radeon_pm_compute_clocks(rdev); | ||
| 494 | |||
| 499 | fail: | 495 | fail: |
| 500 | return count; | 496 | return count; |
| 501 | } | 497 | } |
