Messages in this thread | | | Date | Tue, 24 Sep 2013 07:52:06 +0200 | From | Knut Petersen <> | Subject | Re: [PATCH] drm/i915/tv: clear adjusted_mode.flags |
| |
Hi Daniel!
This patch is definitely needed for 3.12, but it is still missing in 3.12-rc2 ...
cu, Knut
On 10.09.2013 11:44, Daniel Vetter wrote: > The native TV encoder has it's own flags to adjust sync modes and > enabled interlaced modes which are totally irrelevant for the adjusted > mode. This worked out nicely since the input modes used by both the > load detect code and reported in the ->get_modes callbacks all have no > flags set, and we also don't fill out any of them in the ->get_config > callback. > > This changed with the additional sanitation done with > > commit 2960bc9cceecb5d556ce1c07656a6609e2f7e8b0 > Author: Imre Deak <imre.deak@intel.com> > Date: Tue Jul 30 13:36:32 2013 +0300 > > drm/i915: make user mode sync polarity setting explicit > > sinc now the "no flags at all" state wouldn't fit through core code > any more. So fix this up again by explicitly clearing the flags in the > ->compute_config callback. > > Aside: We have zero checking in place to make sure that the requested > mode is indeed the right input mode we want for the selected TV mode. > So we'll happily fall over if userspace tries to pull us. But that's > definitely work for a different patch series. So just add a FIXME > comment for now. > > Reported-by: Knut Petersen <Knut_Petersen@t-online.de> > Cc: Knut Petersen <Knut_Petersen@t-online.de> > Cc: Imre Deak <imre.deak@intel.com> > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/i915/intel_tv.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c > index f2c6d79..dd6f84b 100644 > --- a/drivers/gpu/drm/i915/intel_tv.c > +++ b/drivers/gpu/drm/i915/intel_tv.c > @@ -916,6 +916,14 @@ intel_tv_compute_config(struct intel_encoder *encoder, > DRM_DEBUG_KMS("forcing bpc to 8 for TV\n"); > pipe_config->pipe_bpp = 8*3; > > + /* TV has it's own notion of sync and other mode flags, so clear them. */ > + pipe_config->adjusted_mode.flags = 0; > + > + /* > + * FIXME: We don't check whether the input mode is actually what we want > + * or whether userspace is doing something stupid. > + */ > + > return true; > } >
| |