stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org,
	"Andrea Arcangeli" <aarcange@redhat.com>,
	"Sean Greenslade" <sean@seangreenslade.com>,
	"Alexey Shumitsky" <alexey.shumitsky@gmail.com>,
	"Martin van Es" <martin@mrvanes.com>,
	"Dave Airlie" <airlied@linux.ie>,
	"James Hogan" <james@albanarts.com>,
	stable@vger.kernel.org, "Marco Krüger" <krgsch@gmail.com>,
	"Rob Kramer" <rob@solution-space.com>,
	"Emil Andersen Lauridsen" <mine809@gmail.com>,
	"Alexander Kobel" <a-kobel@a-kobel.de>,
	oceans112@gmail.com,
	"James Bottomley" <James.Bottomley@HansenPartnership.com>,
	"Robin Müller" <rm1990@gmx.de>,
	"Trudy Tective" <bertslany@gmail.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915: Ignore OpRegion panel type except on     select machines
Date: Wed, 14 Sep 2016 10:45:15 +0300	[thread overview]
Message-ID: <20160914074515.GL4329@intel.com> (raw)
In-Reply-To: <87k2egta2b.fsf@intel.com>

On Tue, Sep 13, 2016 at 12:37:16PM +0300, Jani Nikula wrote:
> On Tue, 13 Sep 2016, ville.syrjala@linux.intel.com wrote:
> > From: Ville Syrj�l� <ville.syrjala@linux.intel.com>
> >
> > Turns out
> > commit a05628195a0d ("drm/i915: Get panel_type from OpRegion panel
> > details") has regressed quite a few machines. So it looks like we
> > can't use the panel type from OpRegion on all systems, and yet we
> > absolutely must use it on some specific systems.
> >
> > Despite trying, I was unable to find any automagic way to determine
> > if the OpRegion panel type is respectable or not. The only glimmer
> > of hope I had was bit 8 in the SCIC response, but that turned out to
> > not work either (it was always 0 on both types of systems).
> >
> > So, to fix the regressions without breaking the machine we know to need
> > the OpRegion panel type, let's just add a quirk for this. Only specific
> > machines known to require the OpRegion panel type will therefore use
> > it. Everyone else will fall bck to the VBT panel type.
> >
> > The only known machine so far is a "Conrac GmbH IX45GM2". The PCI
> > subsystem ID on this machine is just a generic 8086:2a42, so of no use.
> > Instead we'll go with a DMI match.
> >
> > I suspect we can now also revert
> > commit aeddda06c1a7 ("drm/i915: Ignore panel type from OpRegion on SKL")
> > but let's leave that to a separate patch.
> >
> > v2: Do the DMI match in the opregion code directly, as dev_priv->quirks
> >     gets populated too late
> >
> > Cc: Rob Kramer <rob@solution-space.com>
> > Cc: Martin van Es <martin@mrvanes.com>
> > Cc: Andrea Arcangeli <aarcange@redhat.com>
> > Cc: Dave Airlie <airlied@linux.ie>
> > Cc: Marco Kr�ger <krgsch@gmail.com>
> > Cc: Sean Greenslade <sean@seangreenslade.com>
> > Cc: Trudy Tective <bertslany@gmail.com>
> > Cc: Robin M�ller <rm1990@gmx.de>
> > Cc: Alexander Kobel <a-kobel@a-kobel.de>
> > Cc: Alexey Shumitsky <alexey.shumitsky@gmail.com>
> > Cc: Emil Andersen Lauridsen <mine809@gmail.com>
> > Cc: oceans112@gmail.com
> > Cc: James Hogan <james@albanarts.com>
> > Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
> > Cc: stable@vger.kernel.org
> > References: https://lists.freedesktop.org/archives/intel-gfx/2016-August/105545.html
> > References: https://lists.freedesktop.org/archives/dri-devel/2016-August/116888.html
> > References: https://lists.freedesktop.org/archives/intel-gfx/2016-June/098826.html
> 
> References: http://patchwork.freedesktop.org/patch/msgid/1473602239-15855-1-git-send-email-adrienverge@gmail.com
> 
> Acked-by: Jani Nikula <jani.nikula@intel.com>
> 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94825
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97060
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97443
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97363
> > Fixes: a05628195a0d ("drm/i915: Get panel_type from OpRegion panel details")
> > Tested-by: Marco Kr�ger <krgsch@gmail.com>
> > Tested-by: Alexey Shumitsky <alexey.shumitsky@gmail.com>
> > Tested-by: Sean Greenslade <sean@seangreenslade.com>
> > Tested-by: Emil Andersen Lauridsen <mine809@gmail.com>
> > Tested-by: Robin M�ller <rm1990@gmx.de>
> > Tested-by: oceans112@gmail.com
> > Signed-off-by: Ville Syrj�l� <ville.syrjala@linux.intel.com>

Slapped on another tested-by and pushed to dinq. Thanks for the broad
testing, everyone.

> > ---
> >  drivers/gpu/drm/i915/intel_opregion.c | 27 +++++++++++++++++++++++++++
> >  1 file changed, 27 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> > index adca262d591a..7acbbbf97833 100644
> > --- a/drivers/gpu/drm/i915/intel_opregion.c
> > +++ b/drivers/gpu/drm/i915/intel_opregion.c
> > @@ -1047,6 +1047,23 @@ err_out:
> >  	return err;
> >  }
> >  
> > +static int intel_use_opregion_panel_type_callback(const struct dmi_system_id *id)
> > +{
> > +	DRM_INFO("Using panel type from OpRegion on %s\n", id->ident);
> > +	return 1;
> > +}
> > +
> > +static const struct dmi_system_id intel_use_opregion_panel_type[] = {
> > +	{
> > +		.callback = intel_use_opregion_panel_type_callback,
> > +		.ident = "Conrac GmbH IX45GM2",
> > +		.matches = {DMI_MATCH(DMI_SYS_VENDOR, "Conrac GmbH"),
> > +			    DMI_MATCH(DMI_PRODUCT_NAME, "IX45GM2"),
> > +		},
> > +	},
> > +	{ }
> > +};
> > +
> >  int
> >  intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> >  {
> > @@ -1073,6 +1090,16 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> >  	}
> >  
> >  	/*
> > +	 * So far we know that some machined must use it, others must not use it.
> > +	 * There doesn't seem to be any way to determine which way to go, except
> > +	 * via a quirk list :(
> > +	 */
> > +	if (!dmi_check_system(intel_use_opregion_panel_type)) {
> > +		DRM_DEBUG_KMS("Ignoring OpRegion panel type (%d)\n", ret - 1);
> > +		return -ENODEV;
> > +	}
> > +
> > +	/*
> >  	 * FIXME On Dell XPS 13 9350 the OpRegion panel type (0) gives us
> >  	 * low vswing for eDP, whereas the VBT panel type (2) gives us normal
> >  	 * vswing instead. Low vswing results in some display flickers, so
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center

-- 
Ville Syrj�l�
Intel OTC

  reply	other threads:[~2016-09-14  7:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13  9:22 [PATCH] drm/i915: Ignore OpRegion panel type except on select machines ville.syrjala
2016-09-13  9:37 ` [Intel-gfx] " Jani Nikula
2016-09-14  7:45   ` Ville Syrjälä [this message]
2016-09-14  8:29 ` James Hogan
2016-09-15 12:10 ` Adrien Vergé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160914074515.GL4329@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=a-kobel@a-kobel.de \
    --cc=aarcange@redhat.com \
    --cc=airlied@linux.ie \
    --cc=alexey.shumitsky@gmail.com \
    --cc=bertslany@gmail.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=james@albanarts.com \
    --cc=jani.nikula@linux.intel.com \
    --cc=krgsch@gmail.com \
    --cc=martin@mrvanes.com \
    --cc=mine809@gmail.com \
    --cc=oceans112@gmail.com \
    --cc=rm1990@gmx.de \
    --cc=rob@solution-space.com \
    --cc=sean@seangreenslade.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).