On Tue, 17 Nov 2015, Daniel Vetter <daniel@xxxxxxxx> wrote: > 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. Picked up in topic/drm-fixes. BR, Jani. > -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 >> -- Jani Nikula, Intel Open Source Technology Center -- 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