Re: [PATCH] drm/i915/tv: clear adjusted_mode.flags

From: Daniel Vetter
Date: Tue Sep 24 2013 - 04:01:01 EST


On Tue, Sep 24, 2013 at 07:52:06AM +0200, Knut Petersen wrote:
> Hi Daniel!
>
> This patch is definitely needed for 3.12, but it is still missing in 3.12-rc2 ...

Oops, that one fell through the cracks. Applied to -fixes, thanks for
poking.
-Daniel

>
> 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@xxxxxxxxx>
> >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@xxxxxxxxxxx>
> >Cc: Knut Petersen <Knut_Petersen@xxxxxxxxxxx>
> >Cc: Imre Deak <imre.deak@xxxxxxxxx>
> >Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> >Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
> >---
> > 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;
> > }
>

--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/