drm: Check the fb size against the adjusted v/hdisplay for stereo modes
Some stereo modes, like frame packing, need a larger CRTC viewport than the "natural" underlying 2D mode and thus drm_crtc_check_viewport() needs to query the adjusted mode to use the correct h/vdisplay. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Dave Airlie <airlied@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
		
							parent
							
								
									c11e928360
								
							
						
					
					
						commit
						a0c1bbb0cc
					
				| @ -2078,6 +2078,14 @@ static int drm_crtc_check_viewport(const struct drm_crtc *crtc, | ||||
| 	hdisplay = mode->hdisplay; | ||||
| 	vdisplay = mode->vdisplay; | ||||
| 
 | ||||
| 	if (drm_mode_is_stereo(mode)) { | ||||
| 		struct drm_display_mode adjusted = *mode; | ||||
| 
 | ||||
| 		drm_mode_set_crtcinfo(&adjusted, CRTC_STEREO_DOUBLE); | ||||
| 		hdisplay = adjusted.crtc_hdisplay; | ||||
| 		vdisplay = adjusted.crtc_vdisplay; | ||||
| 	} | ||||
| 
 | ||||
| 	if (crtc->invert_dimensions) | ||||
| 		swap(hdisplay, vdisplay); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user