aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-10-15 16:53:27 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-10-19 12:12:56 -0400
commitf9fff064bb83c55b3fc6291e3b59e3bc78fedddf (patch)
tree8d9ff53a4defa4d5bf4e7476896ff7c98730ffef
parenta3d5aaa836ed993747af7b53cfca1b3cd3c9fc46 (diff)
drm/amdgpu/dce: simplify suspend/resume
We were basically opencoding the same thing in both hw_init and resume and hw_fini and suspend. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v10_0.c15
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v11_0.c17
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v8_0.c15
3 files changed, 14 insertions, 33 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
index 37073930e2c9..a6ea2d8e85df 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -3086,22 +3086,18 @@ static int dce_v10_0_suspend(void *handle)
3086 3086
3087 amdgpu_atombios_scratch_regs_save(adev); 3087 amdgpu_atombios_scratch_regs_save(adev);
3088 3088
3089 dce_v10_0_hpd_fini(adev); 3089 return dce_v10_0_hw_fini(handle);
3090
3091 return 0;
3092} 3090}
3093 3091
3094static int dce_v10_0_resume(void *handle) 3092static int dce_v10_0_resume(void *handle)
3095{ 3093{
3096 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 3094 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
3095 int ret;
3097 3096
3098 dce_v10_0_init_golden_registers(adev); 3097 ret = dce_v10_0_hw_init(handle);
3099 3098
3100 amdgpu_atombios_scratch_regs_restore(adev); 3099 amdgpu_atombios_scratch_regs_restore(adev);
3101 3100
3102 /* init dig PHYs, disp eng pll */
3103 amdgpu_atombios_encoder_init_dig(adev);
3104 amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
3105 /* turn on the BL */ 3101 /* turn on the BL */
3106 if (adev->mode_info.bl_encoder) { 3102 if (adev->mode_info.bl_encoder) {
3107 u8 bl_level = amdgpu_display_backlight_get_level(adev, 3103 u8 bl_level = amdgpu_display_backlight_get_level(adev,
@@ -3110,10 +3106,7 @@ static int dce_v10_0_resume(void *handle)
3110 bl_level); 3106 bl_level);
3111 } 3107 }
3112 3108
3113 /* initialize hpd */ 3109 return ret;
3114 dce_v10_0_hpd_init(adev);
3115
3116 return 0;
3117} 3110}
3118 3111
3119static bool dce_v10_0_is_idle(void *handle) 3112static bool dce_v10_0_is_idle(void *handle)
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
index c1147ecff1ee..bdafeb282a59 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
@@ -3028,6 +3028,7 @@ static int dce_v11_0_hw_init(void *handle)
3028 dce_v11_0_init_golden_registers(adev); 3028 dce_v11_0_init_golden_registers(adev);
3029 3029
3030 /* init dig PHYs, disp eng pll */ 3030 /* init dig PHYs, disp eng pll */
3031 amdgpu_atombios_crtc_powergate_init(adev);
3031 amdgpu_atombios_encoder_init_dig(adev); 3032 amdgpu_atombios_encoder_init_dig(adev);
3032 amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk); 3033 amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
3033 3034
@@ -3061,23 +3062,18 @@ static int dce_v11_0_suspend(void *handle)
3061 3062
3062 amdgpu_atombios_scratch_regs_save(adev); 3063 amdgpu_atombios_scratch_regs_save(adev);
3063 3064
3064 dce_v11_0_hpd_fini(adev); 3065 return dce_v11_0_hw_fini(handle);
3065
3066 return 0;
3067} 3066}
3068 3067
3069static int dce_v11_0_resume(void *handle) 3068static int dce_v11_0_resume(void *handle)
3070{ 3069{
3071 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 3070 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
3071 int ret;
3072 3072
3073 dce_v11_0_init_golden_registers(adev); 3073 ret = dce_v11_0_hw_init(handle);
3074 3074
3075 amdgpu_atombios_scratch_regs_restore(adev); 3075 amdgpu_atombios_scratch_regs_restore(adev);
3076 3076
3077 /* init dig PHYs, disp eng pll */
3078 amdgpu_atombios_crtc_powergate_init(adev);
3079 amdgpu_atombios_encoder_init_dig(adev);
3080 amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
3081 /* turn on the BL */ 3077 /* turn on the BL */
3082 if (adev->mode_info.bl_encoder) { 3078 if (adev->mode_info.bl_encoder) {
3083 u8 bl_level = amdgpu_display_backlight_get_level(adev, 3079 u8 bl_level = amdgpu_display_backlight_get_level(adev,
@@ -3086,10 +3082,7 @@ static int dce_v11_0_resume(void *handle)
3086 bl_level); 3082 bl_level);
3087 } 3083 }
3088 3084
3089 /* initialize hpd */ 3085 return ret;
3090 dce_v11_0_hpd_init(adev);
3091
3092 return 0;
3093} 3086}
3094 3087
3095static bool dce_v11_0_is_idle(void *handle) 3088static bool dce_v11_0_is_idle(void *handle)
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index d784fb43efc2..00c34f87ac20 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -2994,20 +2994,18 @@ static int dce_v8_0_suspend(void *handle)
2994 2994
2995 amdgpu_atombios_scratch_regs_save(adev); 2995 amdgpu_atombios_scratch_regs_save(adev);
2996 2996
2997 dce_v8_0_hpd_fini(adev); 2997 return dce_v8_0_hw_fini(handle);
2998
2999 return 0;
3000} 2998}
3001 2999
3002static int dce_v8_0_resume(void *handle) 3000static int dce_v8_0_resume(void *handle)
3003{ 3001{
3004 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 3002 struct amdgpu_device *adev = (struct amdgpu_device *)handle;
3003 int ret;
3004
3005 ret = dce_v8_0_hw_init(handle);
3005 3006
3006 amdgpu_atombios_scratch_regs_restore(adev); 3007 amdgpu_atombios_scratch_regs_restore(adev);
3007 3008
3008 /* init dig PHYs, disp eng pll */
3009 amdgpu_atombios_encoder_init_dig(adev);
3010 amdgpu_atombios_crtc_set_disp_eng_pll(adev, adev->clock.default_dispclk);
3011 /* turn on the BL */ 3009 /* turn on the BL */
3012 if (adev->mode_info.bl_encoder) { 3010 if (adev->mode_info.bl_encoder) {
3013 u8 bl_level = amdgpu_display_backlight_get_level(adev, 3011 u8 bl_level = amdgpu_display_backlight_get_level(adev,
@@ -3016,10 +3014,7 @@ static int dce_v8_0_resume(void *handle)
3016 bl_level); 3014 bl_level);
3017 } 3015 }
3018 3016
3019 /* initialize hpd */ 3017 return ret;
3020 dce_v8_0_hpd_init(adev);
3021
3022 return 0;
3023} 3018}
3024 3019
3025static bool dce_v8_0_is_idle(void *handle) 3020static bool dce_v8_0_is_idle(void *handle)