From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: "Andrea Arcangeli" <aarcange@redhat.com>,
"Rob Kramer" <rob@solution-space.com>,
"Alexey Shumitsky" <alexey.shumitsky@gmail.com>,
"Martin van Es" <martin@mrvanes.com>,
"Dave Airlie" <airlied@linux.ie>,
intel-gfx@lists.freedesktop.org,
"Trudy Tective" <bertslany@gmail.com>,
stable@vger.kernel.org, "Marco Krüger" <krgsch@gmail.com>,
"Sean Greenslade" <sean@seangreenslade.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>,
"James Hogan" <james@albanarts.com>
Subject: Re: [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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
WARNING: multiple messages have this Message-ID (diff)
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: 10+ 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 7:45 ` Ville Syrjälä
2016-09-13 10:49 ` ✗ Fi.CI.BAT: failure for " Patchwork
2016-09-13 11:05 ` Ville Syrjälä
2016-09-14 8:29 ` [PATCH] " James Hogan
2016-09-14 8:29 ` James Hogan
2016-09-15 12:10 ` Adrien Vergé
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.