Merge branch 'drm-next-4.12' of git://people.freedesktop.org/~agd5f/linux into drm...
[sfrench/cifs-2.6.git] / 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;