diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2015-10-15 16:53:27 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-10-19 12:12:56 -0400 |
commit | f9fff064bb83c55b3fc6291e3b59e3bc78fedddf (patch) | |
tree | 8d9ff53a4defa4d5bf4e7476896ff7c98730ffef | |
parent | a3d5aaa836ed993747af7b53cfca1b3cd3c9fc46 (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.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 17 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 15 |
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 | ||
3094 | static int dce_v10_0_resume(void *handle) | 3092 | static 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 | ||
3119 | static bool dce_v10_0_is_idle(void *handle) | 3112 | static 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 | ||
3069 | static int dce_v11_0_resume(void *handle) | 3068 | static 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 | ||
3095 | static bool dce_v11_0_is_idle(void *handle) | 3088 | static 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 | ||
3002 | static int dce_v8_0_resume(void *handle) | 3000 | static 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 | ||
3025 | static bool dce_v8_0_is_idle(void *handle) | 3020 | static bool dce_v8_0_is_idle(void *handle) |