drm/sti: use valid video mode
In atomic mode the crtc_xxx (eg crtc_hdisplay) members of the mode structure may be unset before calling atomic_check/commit for planes. Instead of, use xxx members which are actually set. Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> Acked-by: Vincent Abriou <vincent.abriou@st.com>
This commit is contained in:
		
							parent
							
								
									3bc6b01de3
								
							
						
					
					
						commit
						f766c6c810
					
				| @ -628,8 +628,8 @@ static int sti_gdp_atomic_check(struct drm_plane *drm_plane, | ||||
| 	mode = &crtc_state->mode; | ||||
| 	dst_x = state->crtc_x; | ||||
| 	dst_y = state->crtc_y; | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->crtc_hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->crtc_vdisplay - dst_y); | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->vdisplay - dst_y); | ||||
| 	/* src_x are in 16.16 format */ | ||||
| 	src_x = state->src_x >> 16; | ||||
| 	src_y = state->src_y >> 16; | ||||
| @ -727,8 +727,8 @@ static void sti_gdp_atomic_update(struct drm_plane *drm_plane, | ||||
| 	mode = &crtc->mode; | ||||
| 	dst_x = state->crtc_x; | ||||
| 	dst_y = state->crtc_y; | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->crtc_hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->crtc_vdisplay - dst_y); | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->vdisplay - dst_y); | ||||
| 	/* src_x are in 16.16 format */ | ||||
| 	src_x = state->src_x >> 16; | ||||
| 	src_y = state->src_y >> 16; | ||||
|  | ||||
| @ -1027,8 +1027,8 @@ static int sti_hqvdp_atomic_check(struct drm_plane *drm_plane, | ||||
| 	mode = &crtc_state->mode; | ||||
| 	dst_x = state->crtc_x; | ||||
| 	dst_y = state->crtc_y; | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->crtc_hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->crtc_vdisplay - dst_y); | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->vdisplay - dst_y); | ||||
| 	/* src_x are in 16.16 format */ | ||||
| 	src_x = state->src_x >> 16; | ||||
| 	src_y = state->src_y >> 16; | ||||
| @ -1116,8 +1116,8 @@ static void sti_hqvdp_atomic_update(struct drm_plane *drm_plane, | ||||
| 	mode = &crtc->mode; | ||||
| 	dst_x = state->crtc_x; | ||||
| 	dst_y = state->crtc_y; | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->crtc_hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->crtc_vdisplay - dst_y); | ||||
| 	dst_w = clamp_val(state->crtc_w, 0, mode->hdisplay - dst_x); | ||||
| 	dst_h = clamp_val(state->crtc_h, 0, mode->vdisplay - dst_y); | ||||
| 	/* src_x are in 16.16 format */ | ||||
| 	src_x = state->src_x >> 16; | ||||
| 	src_y = state->src_y >> 16; | ||||
|  | ||||
| @ -142,8 +142,8 @@ void sti_vid_commit(struct sti_vid *vid, | ||||
| 	struct drm_display_mode *mode = &crtc->mode; | ||||
| 	int dst_x = state->crtc_x; | ||||
| 	int dst_y = state->crtc_y; | ||||
| 	int dst_w = clamp_val(state->crtc_w, 0, mode->crtc_hdisplay - dst_x); | ||||
| 	int dst_h = clamp_val(state->crtc_h, 0, mode->crtc_vdisplay - dst_y); | ||||
| 	int dst_w = clamp_val(state->crtc_w, 0, mode->hdisplay - dst_x); | ||||
| 	int dst_h = clamp_val(state->crtc_h, 0, mode->vdisplay - dst_y); | ||||
| 	int src_h = state->src_h >> 16; | ||||
| 	u32 val, ydo, xdo, yds, xds; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user