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 /drivers | |
| 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>
Diffstat (limited to 'drivers')
| -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) |
