From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com ([134.134.136.20]:21485 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751966AbbKQOYF convert rfc822-to-8bit (ORCPT ); Tue, 17 Nov 2015 09:24:05 -0500 From: Jani Nikula To: Daniel Vetter , ville.syrjala@linux.intel.com Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH 1/4] drm: Fix primary plane size for stereo doubled modes for legacy setcrtc In-Reply-To: <20151117105404.GV16848@phenom.ffwll.local> References: <1447686157-29607-1-git-send-email-ville.syrjala@linux.intel.com> <20151117105404.GV16848@phenom.ffwll.local> Date: Tue, 17 Nov 2015 16:26:05 +0200 Message-ID: <87io50em82.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: stable-owner@vger.kernel.org List-ID: On Tue, 17 Nov 2015, Daniel Vetter wrote: > On Mon, Nov 16, 2015 at 05:02:34PM +0200, ville.syrjala@linux.intel.com wrote: >> From: Ville Syrjälä >> >> 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 >> Cc: stable@vger.kernel.org >> Fixes: 042652ed9599 ("drm/atomic-helper: implementatations for legacy interfaces") >> Signed-off-by: Ville Syrjälä > > Testcase: igt/kms_3d > Reviewed-by: Daniel Vetter > > 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