On Terra Mobile Ultrabook 1450 II (Core i5-3337U, i915 devid = 0x166),
the screen is tiled in many 480×320 screens (like a mosaic) since v4.7.
This laptop is simply unusable.

I have bisected the cause to commit a05628195a0d ("drm/i915: Get
panel_type from OpRegion panel details").

Like for Skylake, it seems that using the OpRegion panel type (here, 0)
causes the problem, whereas the VBT panel type (here, 7) gives a normal
display. See commit aeddda06c1a7 ("drm/i915: Ignore panel type from
OpRegion on SKL") for background on this Skylake fix.

This patch ignores OpRegion panel type for Ivy Bridge + Mobile chips.

Tested-by: Adrien Vergé <adrienverge at gmail.com>
Signed-off-by: Adrien Vergé <adrienverge at gmail.com>
---
 drivers/gpu/drm/i915/intel_opregion.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_opregion.c 
b/drivers/gpu/drm/i915/intel_opregion.c
index adca262..94e2db7 100644
--- a/drivers/gpu/drm/i915/intel_opregion.c
+++ b/drivers/gpu/drm/i915/intel_opregion.c
@@ -1083,5 +1083,16 @@ intel_opregion_get_panel_type(struct drm_i915_private 
*dev_priv)
                return -ENODEV;
        }

+       /*
+        * FIXME On Terra Mobile Ultrabook 1450 II (Intel Core i5-3337U) the
+        * OpRegion panel type (0) results in tiled ("mosaic") display bug,
+        * whereas the VBT panel type (7) gives a normal display.
+        * Let's ignore the OpRegion panel type for this chip.
+        */
+       if (IS_IVYBRIDGE(dev_priv) && IS_MOBILE(dev_priv)) {
+               DRM_DEBUG_KMS("Ignoring OpRegion panel type (%d)\n", ret - 1);
+               return -ENODEV;
+       }
+
        return ret - 1;
 }
-- 
2.7.4

Reply via email to