Skip to content

Commit aeddda0

Browse files
vsyrjaladanvet
authored andcommitted
drm/i915: Ignore panel type from OpRegion on SKL
Dell XPS 13 9350 apparently doesn't like it when we use the panel type from OpRegion. The OpRegion panel type (0) tells us to use use low vswing for eDP, whereas the VBT panel type (2) tells us to use normal vswing. The problem is that low vswing results in some display flickers. Since no one seems to know how this stuff is supposed to be handled, let's just ignore the OpRegion panel type on SKL for now. v2: Print the panel type correctly in the debug output Reported-by: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: drm-intel-fixes@lists.freedesktop.org References: https://lists.freedesktop.org/archives/intel-gfx/2016-June/098826.html Fixes: a056281 ("drm/i915: Get panel_type from OpRegion panel details") Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1468324837-29237-1-git-send-email-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Tested-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (cherry picked from commit bb10d4e) [danvet: Fix up cherry-pick conflict with an s/dev_priv/dev/.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent b192400 commit aeddda0

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

drivers/gpu/drm/i915/intel_opregion.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,5 +1038,16 @@ intel_opregion_get_panel_type(struct drm_device *dev)
10381038
return -ENODEV;
10391039
}
10401040

1041+
/*
1042+
* FIXME On Dell XPS 13 9350 the OpRegion panel type (0) gives us
1043+
* low vswing for eDP, whereas the VBT panel type (2) gives us normal
1044+
* vswing instead. Low vswing results in some display flickers, so
1045+
* let's simply ignore the OpRegion panel type on SKL for now.
1046+
*/
1047+
if (IS_SKYLAKE(dev)) {
1048+
DRM_DEBUG_KMS("Ignoring OpRegion panel type (%d)\n", ret - 1);
1049+
return -ENODEV;
1050+
}
1051+
10411052
return ret - 1;
10421053
}

0 commit comments

Comments
 (0)