diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_device.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_device.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 0afb13bd8dca..49f7cb7e226b 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
| @@ -720,7 +720,7 @@ int radeon_device_init(struct radeon_device *rdev, | |||
| 720 | /* mutex initialization are all done here so we | 720 | /* mutex initialization are all done here so we |
| 721 | * can recall function without having locking issues */ | 721 | * can recall function without having locking issues */ |
| 722 | radeon_mutex_init(&rdev->cs_mutex); | 722 | radeon_mutex_init(&rdev->cs_mutex); |
| 723 | mutex_init(&rdev->ib_pool.mutex); | 723 | radeon_mutex_init(&rdev->ib_pool.mutex); |
| 724 | for (i = 0; i < RADEON_NUM_RINGS; ++i) | 724 | for (i = 0; i < RADEON_NUM_RINGS; ++i) |
| 725 | mutex_init(&rdev->ring[i].mutex); | 725 | mutex_init(&rdev->ring[i].mutex); |
| 726 | mutex_init(&rdev->dc_hw_i2c_mutex); | 726 | mutex_init(&rdev->dc_hw_i2c_mutex); |
| @@ -883,6 +883,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state) | |||
| 883 | if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) | 883 | if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) |
| 884 | return 0; | 884 | return 0; |
| 885 | 885 | ||
| 886 | drm_kms_helper_poll_disable(dev); | ||
| 887 | |||
| 886 | /* turn off display hw */ | 888 | /* turn off display hw */ |
| 887 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 889 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
| 888 | drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); | 890 | drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); |
| @@ -959,9 +961,11 @@ int radeon_resume_kms(struct drm_device *dev) | |||
| 959 | radeon_fbdev_set_suspend(rdev, 0); | 961 | radeon_fbdev_set_suspend(rdev, 0); |
| 960 | console_unlock(); | 962 | console_unlock(); |
| 961 | 963 | ||
| 962 | /* init dig PHYs */ | 964 | /* init dig PHYs, disp eng pll */ |
| 963 | if (rdev->is_atom_bios) | 965 | if (rdev->is_atom_bios) { |
| 964 | radeon_atom_encoder_init(rdev); | 966 | radeon_atom_encoder_init(rdev); |
| 967 | radeon_atom_dcpll_init(rdev); | ||
| 968 | } | ||
| 965 | /* reset hpd state */ | 969 | /* reset hpd state */ |
| 966 | radeon_hpd_init(rdev); | 970 | radeon_hpd_init(rdev); |
| 967 | /* blat the mode back in */ | 971 | /* blat the mode back in */ |
| @@ -970,6 +974,8 @@ int radeon_resume_kms(struct drm_device *dev) | |||
| 970 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 974 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
| 971 | drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); | 975 | drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); |
| 972 | } | 976 | } |
| 977 | |||
| 978 | drm_kms_helper_poll_enable(dev); | ||
| 973 | return 0; | 979 | return 0; |
| 974 | } | 980 | } |
| 975 | 981 | ||
