On Mon, Nov 16, 2015 at 05:02:34PM +0200, ville.syrjala@xxxxxxxxxxxxxxx wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Properly double the hdisplay/vdisplay timings that we use as the primary > plane size with stereo doubled modes. Otherwise the modeset gets > rejected on machines where the primary plane must be fullscreen, and on > the rest only the first eye would get a visible plane. > > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 042652ed9599 ("drm/atomic-helper: implementatations for legacy interfaces") > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Testcase: igt/kms_3d Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> To avoid conflicts with patches 2-4 I applied all of them to drm-misc, but we need to cherry-pick this one to drm-fixes too. -Daniel > --- > drivers/gpu/drm/drm_atomic_helper.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index 9870c70..7857163 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -1741,6 +1741,7 @@ int __drm_atomic_helper_set_config(struct drm_mode_set *set, > struct drm_crtc_state *crtc_state; > struct drm_plane_state *primary_state; > struct drm_crtc *crtc = set->crtc; > + int hdisplay, vdisplay; > int ret; > > crtc_state = drm_atomic_get_crtc_state(state, crtc); > @@ -1783,19 +1784,21 @@ int __drm_atomic_helper_set_config(struct drm_mode_set *set, > if (ret != 0) > return ret; > > + drm_crtc_get_hv_timing(set->mode, &hdisplay, &vdisplay); > + > drm_atomic_set_fb_for_plane(primary_state, set->fb); > primary_state->crtc_x = 0; > primary_state->crtc_y = 0; > - primary_state->crtc_h = set->mode->vdisplay; > - primary_state->crtc_w = set->mode->hdisplay; > + primary_state->crtc_h = vdisplay; > + primary_state->crtc_w = hdisplay; > primary_state->src_x = set->x << 16; > primary_state->src_y = set->y << 16; > if (primary_state->rotation & (BIT(DRM_ROTATE_90) | BIT(DRM_ROTATE_270))) { > - primary_state->src_h = set->mode->hdisplay << 16; > - primary_state->src_w = set->mode->vdisplay << 16; > + primary_state->src_h = hdisplay << 16; > + primary_state->src_w = vdisplay << 16; > } else { > - primary_state->src_h = set->mode->vdisplay << 16; > - primary_state->src_w = set->mode->hdisplay << 16; > + primary_state->src_h = vdisplay << 16; > + primary_state->src_w = hdisplay << 16; > } > > commit: > -- > 2.4.10 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html