[Intel-gfx] [PATCH 1/3] drm/i915: fix up the IBX transcoder B check
Daniel Vetter
daniel at ffwll.ch
Wed Sep 12 17:53:24 CEST 2012
On Wed, Sep 12, 2012 at 08:20:12AM -0700, Jesse Barnes wrote:
> On Mon, 10 Sep 2012 21:58:29 +0200
> Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
>
> > This has been added in
> >
> > commit de9a35abb3b343a25065449234e47a76c4f3454a
> > Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> > Date: Tue Jun 5 11:03:40 2012 +0200
> >
> > drm/i915: assert that the IBX port transcoder select w/a is implemented
> >
> > Unfortunately I've failed to notice that these checks are not just
> > called for the port that is about to be disabled, but for all (which
> > makes sense for an assert ...), and the WARN missfired when disabling
> > another pipe than the one with the dp port.
> >
> > Hence also check whether the port is actually disabled.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54688
> > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > ---
> > drivers/gpu/drm/i915/intel_display.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index f26fb3f..b8e5a51 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -1376,7 +1376,8 @@ static void assert_pch_dp_disabled(struct drm_i915_private *dev_priv,
> > "PCH DP (0x%08x) enabled on transcoder %c, should be disabled\n",
> > reg, pipe_name(pipe));
> >
> > - WARN(HAS_PCH_IBX(dev_priv->dev) && (val & SDVO_PIPE_B_SELECT),
> > + WARN(HAS_PCH_IBX(dev_priv->dev) && (val & DP_PORT_EN) == 0
> > + && (val & DP_PIPEB_SELECT),
> > "IBX PCH dp port still using transcoder B\n");
> > }
> >
> > @@ -1388,7 +1389,8 @@ static void assert_pch_hdmi_disabled(struct drm_i915_private *dev_priv,
> > "PCH HDMI (0x%08x) enabled on transcoder %c, should be disabled\n",
> > reg, pipe_name(pipe));
> >
> > - WARN(HAS_PCH_IBX(dev_priv->dev) && (val & SDVO_PIPE_B_SELECT),
> > + WARN(HAS_PCH_IBX(dev_priv->dev) && (val & PORT_ENABLE) == 0
> > + && (val & SDVO_PIPE_B_SELECT),
> > "IBX PCH hdmi port still using transcoder B\n");
> > }
> >
>
> Won't these warn if the port is disabled rather than enabled?
> Shouldn't we be checking for (val & PORT_ENABLE) != 0 *and* pipe B is
> selected?
Recap from our irc discussion: This is for an ibx workaround, where we
can't let a disabled port stay on transcoder B (for it prevents the other
encoder on the same port from reliably getting enabled). The "is this port
properly disabled" check is above the diff context.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the Intel-gfx
mailing list