drm/amdgpu: don't enable/disable display twice on suspend/resume
We were doing it in the common code and in the IP specific code. Remove the IP specific code. The common code handles the ordering properly. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4802ce1177
commit
633ed3df9a
|
@ -3017,16 +3017,8 @@ static int dce_v10_0_hw_fini(void *handle)
|
||||||
|
|
||||||
static int dce_v10_0_suspend(void *handle)
|
static int dce_v10_0_suspend(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
drm_kms_helper_poll_disable(adev->ddev);
|
|
||||||
|
|
||||||
/* turn off display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
amdgpu_atombios_scratch_regs_save(adev);
|
amdgpu_atombios_scratch_regs_save(adev);
|
||||||
|
|
||||||
dce_v10_0_hpd_fini(adev);
|
dce_v10_0_hpd_fini(adev);
|
||||||
|
@ -3036,7 +3028,6 @@ static int dce_v10_0_suspend(void *handle)
|
||||||
|
|
||||||
static int dce_v10_0_resume(void *handle)
|
static int dce_v10_0_resume(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
dce_v10_0_init_golden_registers(adev);
|
dce_v10_0_init_golden_registers(adev);
|
||||||
|
@ -3057,15 +3048,6 @@ static int dce_v10_0_resume(void *handle)
|
||||||
/* initialize hpd */
|
/* initialize hpd */
|
||||||
dce_v10_0_hpd_init(adev);
|
dce_v10_0_hpd_init(adev);
|
||||||
|
|
||||||
/* blat the mode back in */
|
|
||||||
drm_helper_resume_force_mode(adev->ddev);
|
|
||||||
/* turn on display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
|
|
||||||
}
|
|
||||||
|
|
||||||
drm_kms_helper_poll_enable(adev->ddev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3015,16 +3015,8 @@ static int dce_v11_0_hw_fini(void *handle)
|
||||||
|
|
||||||
static int dce_v11_0_suspend(void *handle)
|
static int dce_v11_0_suspend(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
drm_kms_helper_poll_disable(adev->ddev);
|
|
||||||
|
|
||||||
/* turn off display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
amdgpu_atombios_scratch_regs_save(adev);
|
amdgpu_atombios_scratch_regs_save(adev);
|
||||||
|
|
||||||
dce_v11_0_hpd_fini(adev);
|
dce_v11_0_hpd_fini(adev);
|
||||||
|
@ -3034,7 +3026,6 @@ static int dce_v11_0_suspend(void *handle)
|
||||||
|
|
||||||
static int dce_v11_0_resume(void *handle)
|
static int dce_v11_0_resume(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
dce_v11_0_init_golden_registers(adev);
|
dce_v11_0_init_golden_registers(adev);
|
||||||
|
@ -3056,15 +3047,6 @@ static int dce_v11_0_resume(void *handle)
|
||||||
/* initialize hpd */
|
/* initialize hpd */
|
||||||
dce_v11_0_hpd_init(adev);
|
dce_v11_0_hpd_init(adev);
|
||||||
|
|
||||||
/* blat the mode back in */
|
|
||||||
drm_helper_resume_force_mode(adev->ddev);
|
|
||||||
/* turn on display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
|
|
||||||
}
|
|
||||||
|
|
||||||
drm_kms_helper_poll_enable(adev->ddev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2948,16 +2948,8 @@ static int dce_v8_0_hw_fini(void *handle)
|
||||||
|
|
||||||
static int dce_v8_0_suspend(void *handle)
|
static int dce_v8_0_suspend(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
drm_kms_helper_poll_disable(adev->ddev);
|
|
||||||
|
|
||||||
/* turn off display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
|
|
||||||
}
|
|
||||||
|
|
||||||
amdgpu_atombios_scratch_regs_save(adev);
|
amdgpu_atombios_scratch_regs_save(adev);
|
||||||
|
|
||||||
dce_v8_0_hpd_fini(adev);
|
dce_v8_0_hpd_fini(adev);
|
||||||
|
@ -2967,7 +2959,6 @@ static int dce_v8_0_suspend(void *handle)
|
||||||
|
|
||||||
static int dce_v8_0_resume(void *handle)
|
static int dce_v8_0_resume(void *handle)
|
||||||
{
|
{
|
||||||
struct drm_connector *connector;
|
|
||||||
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
struct amdgpu_device *adev = (struct amdgpu_device *)handle;
|
||||||
|
|
||||||
amdgpu_atombios_scratch_regs_restore(adev);
|
amdgpu_atombios_scratch_regs_restore(adev);
|
||||||
|
@ -2986,15 +2977,6 @@ static int dce_v8_0_resume(void *handle)
|
||||||
/* initialize hpd */
|
/* initialize hpd */
|
||||||
dce_v8_0_hpd_init(adev);
|
dce_v8_0_hpd_init(adev);
|
||||||
|
|
||||||
/* blat the mode back in */
|
|
||||||
drm_helper_resume_force_mode(adev->ddev);
|
|
||||||
/* turn on display hw */
|
|
||||||
list_for_each_entry(connector, &adev->ddev->mode_config.connector_list, head) {
|
|
||||||
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
|
|
||||||
}
|
|
||||||
|
|
||||||
drm_kms_helper_poll_enable(adev->ddev);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue