diff options
-rw-r--r-- | drivers/gpu/drm/sti/sti_drm_crtc.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/sti/sti_mixer.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/sti/sti_mixer.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/sti/sti_drm_crtc.c b/drivers/gpu/drm/sti/sti_drm_crtc.c index 36a1ad3c4823..d42c63f756ef 100644 --- a/drivers/gpu/drm/sti/sti_drm_crtc.c +++ b/drivers/gpu/drm/sti/sti_drm_crtc.c | |||
@@ -38,6 +38,8 @@ static void sti_drm_crtc_prepare(struct drm_crtc *crtc) | |||
38 | if (clk_prepare_enable(compo->clk_compo_aux)) | 38 | if (clk_prepare_enable(compo->clk_compo_aux)) |
39 | DRM_INFO("Failed to prepare/enable compo_aux clk\n"); | 39 | DRM_INFO("Failed to prepare/enable compo_aux clk\n"); |
40 | } | 40 | } |
41 | |||
42 | sti_mixer_clear_all_layers(mixer); | ||
41 | } | 43 | } |
42 | 44 | ||
43 | static void sti_drm_crtc_commit(struct drm_crtc *crtc) | 45 | static void sti_drm_crtc_commit(struct drm_crtc *crtc) |
diff --git a/drivers/gpu/drm/sti/sti_mixer.c b/drivers/gpu/drm/sti/sti_mixer.c index 79f369db9fb6..6bcdf3f86d22 100644 --- a/drivers/gpu/drm/sti/sti_mixer.c +++ b/drivers/gpu/drm/sti/sti_mixer.c | |||
@@ -215,6 +215,15 @@ int sti_mixer_set_layer_status(struct sti_mixer *mixer, | |||
215 | return 0; | 215 | return 0; |
216 | } | 216 | } |
217 | 217 | ||
218 | void sti_mixer_clear_all_layers(struct sti_mixer *mixer) | ||
219 | { | ||
220 | u32 val; | ||
221 | |||
222 | DRM_DEBUG_DRIVER("%s clear all layer\n", sti_mixer_to_str(mixer)); | ||
223 | val = sti_mixer_reg_read(mixer, GAM_MIXER_CTL) & 0xFFFF0000; | ||
224 | sti_mixer_reg_write(mixer, GAM_MIXER_CTL, val); | ||
225 | } | ||
226 | |||
218 | void sti_mixer_set_matrix(struct sti_mixer *mixer) | 227 | void sti_mixer_set_matrix(struct sti_mixer *mixer) |
219 | { | 228 | { |
220 | unsigned int i; | 229 | unsigned int i; |
diff --git a/drivers/gpu/drm/sti/sti_mixer.h b/drivers/gpu/drm/sti/sti_mixer.h index 874372102e52..750e1fd5a8ce 100644 --- a/drivers/gpu/drm/sti/sti_mixer.h +++ b/drivers/gpu/drm/sti/sti_mixer.h | |||
@@ -39,6 +39,7 @@ struct sti_mixer *sti_mixer_create(struct device *dev, int id, | |||
39 | 39 | ||
40 | int sti_mixer_set_layer_status(struct sti_mixer *mixer, | 40 | int sti_mixer_set_layer_status(struct sti_mixer *mixer, |
41 | struct sti_layer *layer, bool status); | 41 | struct sti_layer *layer, bool status); |
42 | void sti_mixer_clear_all_layers(struct sti_mixer *mixer); | ||
42 | int sti_mixer_set_layer_depth(struct sti_mixer *mixer, struct sti_layer *layer); | 43 | int sti_mixer_set_layer_depth(struct sti_mixer *mixer, struct sti_layer *layer); |
43 | int sti_mixer_active_video_area(struct sti_mixer *mixer, | 44 | int sti_mixer_active_video_area(struct sti_mixer *mixer, |
44 | struct drm_display_mode *mode); | 45 | struct drm_display_mode *mode); |