drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2
authorMario Kleiner <mario.kleiner.de@gmail.com>
Fri, 21 Apr 2017 15:05:08 +0000 (17:05 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 2 May 2017 08:37:45 +0000 (10:37 +0200)
The builtin eDP panel in the HP zBook 17 G2 supports 10 bpc,
as advertised by the Laptops product specs and verified via
injecting a fixed edid + photometer measurements, but edid
reports unknown depth, so drivers fall back to 6 bpc.

Add a quirk to get the full 10 bpc.

Cc: stable@vger.kernel.org
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1492787108-23959-1-git-send-email-mario.kleiner.de@gmail.com
drivers/gpu/drm/drm_edid.c

index fad3d44e4642733c00dc024734cfe2340715142b..2e55599816aa5dfda1252a4affd0cee81d2c2ef2 100644 (file)
@@ -80,6 +80,8 @@
 #define EDID_QUIRK_FORCE_12BPC                 (1 << 9)
 /* Force 6bpc */
 #define EDID_QUIRK_FORCE_6BPC                  (1 << 10)
+/* Force 10bpc */
+#define EDID_QUIRK_FORCE_10BPC                 (1 << 11)
 
 struct detailed_mode_closure {
        struct drm_connector *connector;
@@ -122,6 +124,9 @@ static const struct edid_quirk {
        { "FCM", 13600, EDID_QUIRK_PREFER_LARGE_75 |
          EDID_QUIRK_DETAILED_IN_CM },
 
+       /* LGD panel of HP zBook 17 G2, eDP 10 bpc, but reports unknown bpc */
+       { "LGD", 764, EDID_QUIRK_FORCE_10BPC },
+
        /* LG Philips LCD LP154W01-A5 */
        { "LPL", 0, EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE },
        { "LPL", 0x2a00, EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE },
@@ -4244,6 +4249,9 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
        if (quirks & EDID_QUIRK_FORCE_8BPC)
                connector->display_info.bpc = 8;
 
+       if (quirks & EDID_QUIRK_FORCE_10BPC)
+               connector->display_info.bpc = 10;
+
        if (quirks & EDID_QUIRK_FORCE_12BPC)
                connector->display_info.bpc = 12;