[PATCH 1/1] drm: i915: don't use OpRegion for XPS 13 IvyBridge
Ville Syrjälä
ville.syrjala at linux.intel.com
Tue Sep 6 18:40:48 UTC 2016
On Tue, Sep 06, 2016 at 01:56:20PM +0300, Ville Syrjälä wrote:
> On Tue, Sep 06, 2016 at 12:20:51PM +0300, Ville Syrjälä wrote:
> > On Sun, Aug 28, 2016 at 05:28:46PM +0200, Andrea Arcangeli wrote:
> > > Skylake was already singled out, but it doesn't cover the XPS 13 L332X
> > > model which is based on IvyBridge.
> > >
> > > The commit that introduced the regression is
> > > 1d6da87a3241deb13d073c4125d19ed0e5a0c62c
> > >
> > > The Skylake workaround for the regression was introduced in commit
> > > aeddda06c1a704bb97c8a7bfe7a472120193bd56
> > >
> > > Signed-off-by: Andrea Arcangeli <aarcange at redhat.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_opregion.c | 12 +++++++-----
> > > 1 file changed, 7 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_opregion.c b/drivers/gpu/drm/i915/intel_opregion.c
> > > index adca262..ca17ab6 100644
> > > --- a/drivers/gpu/drm/i915/intel_opregion.c
> > > +++ b/drivers/gpu/drm/i915/intel_opregion.c
> > > @@ -1073,12 +1073,14 @@ intel_opregion_get_panel_type(struct drm_i915_private *dev_priv)
> > > }
> > >
> > > /*
> > > - * 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
> > > - * let's simply ignore the OpRegion panel type on SKL for now.
> > > + * FIXME On Dell XPS 13 9350 and Dell XPS 13 L322X 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
> > > + * let's simply ignore the OpRegion panel type on SKL and
> > > + * IVYBRIDGE for now.
> > > */
> > > - if (IS_SKYLAKE(dev_priv)) {
> > > + if (IS_SKYLAKE(dev_priv) || IS_IVYBRIDGE(dev_priv)) {
> > > DRM_DEBUG_KMS("Ignoring OpRegion panel type (%d)\n", ret - 1);
> > > return -ENODEV;
> > > }
> >
> > Argh. I guess we'll just have to revert the whole opregion panel type thing
> > and ty to figure out some way to do this only for the system(s) that need it.
> >
> > Hmm. Can someone test the top commit from [1] on top of the broken kernel?
> > If we can get an EDID somehow for the panel then the panel type shouldn't
> > matter that much any more.
> >
> > [1] git://github.com/vsyrjala/linux.git acpi_edid
>
> Actually I just cooked up another branch [2]. It just throws in some
> memory barriers to the opregion code, and adds a a new debug print so
> to show the response from the BIOS. I'm not too optimistic that the
> memory barriers would fix it, but at least we'd get to see the full
> response from the BIOS. Can you give this a try?
>
> [2] git://github.com/vsyrjala/linux.git opregion_panel_type_stuff
And I've gone an pushed a potential fix to the same branch. So pleas try
it and let me know how it goes. And I still would like to see the dmesg
with drm.debug=0xe from that attempt.
--
Ville Syrjälä
Intel OTC
More information about the dri-devel
mailing list