Skip to contentSkip to conversation

PROBLEM: EDID regression results in color banding on Lenovo G50 series laptops [fix proposition]

PATCH New Tomasz Papież 3 participants 4 messages May 8, 2017 – May 15, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Since the introduction of kernel 4.8 I've been experiencing color banding on my Lenovo G50-80 notebook. I also had reports of the same symptoms on the G50-70 model.

I figured out that the problem had been introduced by commit 210a021dab639694600450c14b877bf3e3240adc

The G50-80's LCD panel supports 6bpc, but is now set to 8bpc, and the system probably falls back to 6bpc
without any dithering, which result in heavily banded gradients.

I fixed it for myself by adding an EDID quirk for that particular LCD panel (see the attached patch). It's unknown to me, however, if there are any other panels affected by the issue, so maybe a more general solution might be desirable.

drivers/gpu/drm/drm_edid.c +3 -0
index fad3d44e4642..ee3124bcae87 100644
@@ -147,6 +147,9 @@ static const struct edid_quirk {
 	/* Medion MD 30217 PG */
 	{ "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 },
 
+	/* Fix for Lenovo G50 */
+	{ "SDC", 18514, EDID_QUIRK_FORCE_6BPC },
+
 	/* Panel in Samsung NP700G7A-S01PL notebook reports 6bpc */
 	{ "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC },
 

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#1 lore raw
Quoted 6 lines · Tomasz Papież

Since the introduction of kernel 4.8 I've been experiencing color banding on my Lenovo G50-80 notebook. I also had reports of the same symptoms on the G50-70 model.

I figured out that the problem had been introduced by commit 210a021dab639694600450c14b877bf3e3240adc

commit 210a021dab639694600450c14b877bf3e3240adc

Author: Mario Kleiner <[email protected]>
Date:   Wed Jul 6 12:05:48 2016 +0200

drm/edid: Set 8 bpc color depth for displays with "DFP 1.x compliant TMDS".

Cc Mario.
Quoted 27 lines

The G50-80's LCD panel supports 6bpc, but is now set to 8bpc, and the system probably falls back to 6bpc
without any dithering, which result in heavily banded gradients.

I fixed it for myself by adding an EDID quirk for that particular LCD panel (see the attached patch). It's unknown to me, however, if there are any other panels affected by the issue, so maybe a more general solution might be desirable.

drivers/gpu/drm/drm_edid.c +3 -0
index fad3d44e4642..ee3124bcae87 100644
@@ -147,6 +147,9 @@ static const struct edid_quirk {
 	/* Medion MD 30217 PG */
 	{ "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 },
 
+	/* Fix for Lenovo G50 */
+	{ "SDC", 18514, EDID_QUIRK_FORCE_6BPC },
+
 	/* Panel in Samsung NP700G7A-S01PL notebook reports 6bpc */
 	{ "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC },
 

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Reviewed-by
#2 lore raw
Quoted 34 lines · Jani Nikula
Quoted 6 lines · Tomasz Papież

Since the introduction of kernel 4.8 I've been experiencing color banding on my Lenovo G50-80 notebook. I also had reports of the same symptoms on the G50-70 model.

I figured out that the problem had been introduced by commit 210a021dab639694600450c14b877bf3e3240adc

commit 210a021dab639694600450c14b877bf3e3240adc

Author: Mario Kleiner <[email protected]>
Date:   Wed Jul 6 12:05:48 2016 +0200

drm/edid: Set 8 bpc color depth for displays with "DFP 1.x compliant TMDS".

Cc Mario.
Quoted 17 lines

The G50-80's LCD panel supports 6bpc, but is now set to 8bpc, and the system probably falls back to 6bpc
without any dithering, which result in heavily banded gradients.

I fixed it for myself by adding an EDID quirk for that particular LCD panel (see the attached patch). It's unknown to me, however, if there are any other panels affected by the issue, so maybe a more general solution might be desirable.

drivers/gpu/drm/drm_edid.c +0 -0
index fad3d44e4642..ee3124bcae87 100644
@@ -147,6 +147,9 @@ static const struct edid_quirk {
 	/* Medion MD 30217 PG */
 	{ "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 },
 
Quoted 5 lines

drivers/gpu/drm/drm_edid.c static const struct edid_quirk { · line 154

Quoted 5 lines
drivers/gpu/drm/drm_edid.c +3 -0
+	/* Fix for Lenovo G50 */
+	{ "SDC", 18514, EDID_QUIRK_FORCE_6BPC },
+
 	/* Panel in Samsung NP700G7A-S01PL notebook reports 6bpc */
 	{ "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC },

This patch is

once it has a proper sign-off and commit message.

Given that the current code handles panels with non-faulty EDID properly, minus such quirks, i think it would make sense to add connector properties to intel-kms, so users can en/disable dithering or select dither depth manually via xrandr if the panel reports bogus stuff via EDID. nouveau and radeon/amdgpu do this, NVidia blob does it, also on Windows.

thanks,
-mario

Quoted 6 lines
Quoted 5 lines

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#3 lore raw

PATCH 1/1 EDID quirk for Lenovo G50-80 (force 6bpc)

drivers/gpu/drm/drm_edid.c +3 -0
index 2e55599816aa..42b619690428 100644
@@ -152,6 +152,9 @@ static const struct edid_quirk {
 	/* Medion MD 30217 PG */
 	{ "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 },
 
+	/* Panel in Lenovo G50-80 */
+	{ "SDC", 18514, EDID_QUIRK_FORCE_6BPC },
+
 	/* Panel in Samsung NP700G7A-S01PL notebook reports 6bpc */
 	{ "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC },
 
Signature · 6 lines
2.13.0

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel