diff mbox

drm/edid: Add 10 bpc quirk for LGD 764 panel in HP zBook 17 G2

Message ID 1492787108-23959-1-git-send-email-mario.kleiner.de@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mario Kleiner April 21, 2017, 3:05 p.m. UTC
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>
---
 drivers/gpu/drm/drm_edid.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Harry Wentland April 21, 2017, 3:38 p.m. UTC | #1
On 2017-04-21 11:05 AM, Mario Kleiner wrote:
> 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>

Harry

> ---
>  drivers/gpu/drm/drm_edid.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index fad3d44..2e55599 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -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;
>
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index fad3d44..2e55599 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -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;