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
next prev parent 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).