All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/edid: Don't print an error if the checksum of a CEA block is wrong
@ 2016-12-08 13:11 ` Tomeu Vizoso
  0 siblings, 0 replies; 8+ messages in thread
From: Tomeu Vizoso @ 2016-12-08 13:11 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Chris Wilson, Tomi Sarvela, intel-gfx,
	Daniel Vetter, Jani Nikula, Sean Paul, David Airlie, dri-devel

It's common to share screens within CI labs, and it's also common for
KVM switches to alter the contents of the CEA block but leave the
checksum outdated.

So in this case, print a debug message instead of an error.

References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 6798c3ad9d53..db79bc949216 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
 
 	csum = drm_edid_block_checksum(raw_edid);
 	if (csum) {
-		if (print_bad_edid) {
-			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
-		}
-
 		if (edid_corrupt)
 			*edid_corrupt = true;
 
 		/* allow CEA to slide through, switches mangle this */
-		if (raw_edid[0] != 0x02)
+		if (raw_edid[0] == CEA_EXT) {
+			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
+			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
+		} else {
+			if (print_bad_edid)
+				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
+
 			goto bad;
+		}
 	}
 
 	/* per-block-type checks */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH] drm/edid: Don't print an error if the checksum of a CEA block is wrong
@ 2016-12-08 13:11 ` Tomeu Vizoso
  0 siblings, 0 replies; 8+ messages in thread
From: Tomeu Vizoso @ 2016-12-08 13:11 UTC (permalink / raw)
  To: linux-kernel
  Cc: Tomeu Vizoso, Tomi Sarvela, intel-gfx, David Airlie, dri-devel,
	Daniel Vetter

It's common to share screens within CI labs, and it's also common for
KVM switches to alter the contents of the CEA block but leave the
checksum outdated.

So in this case, print a debug message instead of an error.

References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 6798c3ad9d53..db79bc949216 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
 
 	csum = drm_edid_block_checksum(raw_edid);
 	if (csum) {
-		if (print_bad_edid) {
-			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
-		}
-
 		if (edid_corrupt)
 			*edid_corrupt = true;
 
 		/* allow CEA to slide through, switches mangle this */
-		if (raw_edid[0] != 0x02)
+		if (raw_edid[0] == CEA_EXT) {
+			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
+			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
+		} else {
+			if (print_bad_edid)
+				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
+
 			goto bad;
+		}
 	}
 
 	/* per-block-type checks */
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* ✗ Fi.CI.BAT: warning for drm/edid: Don't print an error if the checksum of a CEA block is wrong
  2016-12-08 13:11 ` Tomeu Vizoso
  (?)
@ 2016-12-08 14:52 ` Patchwork
  2016-12-08 15:46   ` Saarinen, Jani
  -1 siblings, 1 reply; 8+ messages in thread
From: Patchwork @ 2016-12-08 14:52 UTC (permalink / raw)
  To: Tomeu Vizoso; +Cc: intel-gfx

== Series Details ==

Series: drm/edid: Don't print an error if the checksum of a CEA block is wrong
URL   : https://patchwork.freedesktop.org/series/16556/
State : warning

== Summary ==

Series 16556v1 drm/edid: Don't print an error if the checksum of a CEA block is wrong
https://patchwork.freedesktop.org/api/1.0/series/16556/revisions/1/mbox/

Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-a:
                pass       -> DMESG-WARN (fi-skl-6770hq)

fi-bdw-5557u     total:247  pass:233  dwarn:0   dfail:0   fail:0   skip:14 
fi-bsw-n3050     total:247  pass:208  dwarn:0   dfail:0   fail:0   skip:39 
fi-bxt-t5700     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-j1900     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-hsw-4770      total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-hsw-4770r     total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19 
fi-ilk-650       total:247  pass:195  dwarn:0   dfail:0   fail:0   skip:52 
fi-ivb-3520m     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-ivb-3770      total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-kbl-7500u     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21 
fi-skl-6260u     total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13 
fi-skl-6700hq    total:247  pass:227  dwarn:0   dfail:0   fail:0   skip:20 
fi-skl-6700k     total:247  pass:224  dwarn:3   dfail:0   fail:0   skip:20 
fi-skl-6770hq    total:247  pass:233  dwarn:1   dfail:0   fail:0   skip:13 
fi-snb-2520m     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31 
fi-snb-2600      total:247  pass:215  dwarn:0   dfail:0   fail:0   skip:32 

24cc1f39920c0caf747c6bda267ca19b99f21786 drm-tip: 2016y-12m-08d-12h-31m-59s UTC integration manifest
471fc5b drm/edid: Don't print an error if the checksum of a CEA block is wrong

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3237/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ✗ Fi.CI.BAT: warning for drm/edid: Don't print an error if the checksum of a CEA block is wrong
  2016-12-08 14:52 ` ✗ Fi.CI.BAT: warning for " Patchwork
@ 2016-12-08 15:46   ` Saarinen, Jani
  0 siblings, 0 replies; 8+ messages in thread
From: Saarinen, Jani @ 2016-12-08 15:46 UTC (permalink / raw)
  To: intel-gfx, Tomeu Vizoso

> == Series Details ==
> 
> Series: drm/edid: Don't print an error if the checksum of a CEA block is wrong
> URL   : https://patchwork.freedesktop.org/series/16556/
> State : warning
> 
> == Summary ==
> 
> Series 16556v1 drm/edid: Don't print an error if the checksum of a CEA block is
> wrong
> https://patchwork.freedesktop.org/api/1.0/series/16556/revisions/1/mbox/
> 
> Test kms_pipe_crc_basic:
>         Subgroup suspend-read-crc-pipe-a:
>                 pass       -> DMESG-WARN (fi-skl-6770hq)
Still: https://bugs.freedesktop.org/show_bug.cgi?id=97929

> 
> fi-bdw-5557u     total:247  pass:233  dwarn:0   dfail:0   fail:0   skip:14
> fi-bsw-n3050     total:247  pass:208  dwarn:0   dfail:0   fail:0   skip:39
> fi-bxt-t5700     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27
> fi-byt-j1900     total:247  pass:220  dwarn:0   dfail:0   fail:0   skip:27
> fi-byt-n2820     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31
> fi-hsw-4770      total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19
> fi-hsw-4770r     total:247  pass:228  dwarn:0   dfail:0   fail:0   skip:19
> fi-ilk-650       total:247  pass:195  dwarn:0   dfail:0   fail:0   skip:52
> fi-ivb-3520m     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21
> fi-ivb-3770      total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21
> fi-kbl-7500u     total:247  pass:226  dwarn:0   dfail:0   fail:0   skip:21
> fi-skl-6260u     total:247  pass:234  dwarn:0   dfail:0   fail:0   skip:13
> fi-skl-6700hq    total:247  pass:227  dwarn:0   dfail:0   fail:0   skip:20
> fi-skl-6700k     total:247  pass:224  dwarn:3   dfail:0   fail:0   skip:20
> fi-skl-6770hq    total:247  pass:233  dwarn:1   dfail:0   fail:0   skip:13
> fi-snb-2520m     total:247  pass:216  dwarn:0   dfail:0   fail:0   skip:31
> fi-snb-2600      total:247  pass:215  dwarn:0   dfail:0   fail:0   skip:32
> 
> 24cc1f39920c0caf747c6bda267ca19b99f21786 drm-tip: 2016y-12m-08d-12h-
> 31m-59s UTC integration manifest 471fc5b drm/edid: Don't print an error if the
> checksum of a CEA block is wrong
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3237/

Jani Saarinen
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: drm/edid: Don't print an error if the checksum of a CEA block is wrong
  2016-12-08 13:11 ` Tomeu Vizoso
@ 2017-02-08 13:19   ` Tahvanainen, Jari
  -1 siblings, 0 replies; 8+ messages in thread
From: Tahvanainen, Jari @ 2017-02-08 13:19 UTC (permalink / raw)
  To: tomeu.vizoso, linux-kernel
  Cc: Sarvela, Tomi P, intel-gfx, David Airlie, dri-devel, Vetter, Daniel

I applied this change on the couple-days old drm-tip, and was not able to get any "EDID checksum is invalid" messages with it on my SKL. Without this patch I could generate the ERROR quite easily by switching the outputs and displays manually.
I don't know if this hides something that it should not but it seem to work for the problem related the noise on Patchwork CI execution caused by these EDID checksum is invalid messages.

Tested-by: Jari Tahvanainen <jari.tahvanainen@intel.com>

-----Original Message-----
From: Tomeu Vizoso [mailto:tomeu.vizoso@collabora.com] 
Sent: Thursday, December 8, 2016 3:12 PM
To: linux-kernel@vger.kernel.org
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>; Tomi Sarvela <tomi.p.sarvela@intel.com>; intel-gfx@lists.freedesktop.org; David Airlie <airlied@linux.ie>; dri-devel@lists.freedesktop.org; Daniel Vetter <daniel.vetter@intel.com>
Subject: drm/edid: Don't print an error if the checksum of a CEA block is wrong

It's common to share screens within CI labs, and it's also common for KVM switches to alter the contents of the CEA block but leave the checksum outdated.

So in this case, print a debug message instead of an error.

References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 6798c3ad9d53..db79bc949216 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
 
 	csum = drm_edid_block_checksum(raw_edid);
 	if (csum) {
-		if (print_bad_edid) {
-			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
-		}
-
 		if (edid_corrupt)
 			*edid_corrupt = true;
 
 		/* allow CEA to slide through, switches mangle this */
-		if (raw_edid[0] != 0x02)
+		if (raw_edid[0] == CEA_EXT) {
+			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
+			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
+		} else {
+			if (print_bad_edid)
+				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
+
 			goto bad;
+		}
 	}
 
 	/* per-block-type checks */

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: drm/edid: Don't print an error if the checksum of a CEA block is wrong
@ 2017-02-08 13:19   ` Tahvanainen, Jari
  0 siblings, 0 replies; 8+ messages in thread
From: Tahvanainen, Jari @ 2017-02-08 13:19 UTC (permalink / raw)
  To: tomeu.vizoso, linux-kernel
  Cc: Sarvela, Tomi P, David Airlie, intel-gfx, dri-devel, Vetter, Daniel

I applied this change on the couple-days old drm-tip, and was not able to get any "EDID checksum is invalid" messages with it on my SKL. Without this patch I could generate the ERROR quite easily by switching the outputs and displays manually.
I don't know if this hides something that it should not but it seem to work for the problem related the noise on Patchwork CI execution caused by these EDID checksum is invalid messages.

Tested-by: Jari Tahvanainen <jari.tahvanainen@intel.com>

-----Original Message-----
From: Tomeu Vizoso [mailto:tomeu.vizoso@collabora.com] 
Sent: Thursday, December 8, 2016 3:12 PM
To: linux-kernel@vger.kernel.org
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>; Tomi Sarvela <tomi.p.sarvela@intel.com>; intel-gfx@lists.freedesktop.org; David Airlie <airlied@linux.ie>; dri-devel@lists.freedesktop.org; Daniel Vetter <daniel.vetter@intel.com>
Subject: drm/edid: Don't print an error if the checksum of a CEA block is wrong

It's common to share screens within CI labs, and it's also common for KVM switches to alter the contents of the CEA block but leave the checksum outdated.

So in this case, print a debug message instead of an error.

References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
 drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 6798c3ad9d53..db79bc949216 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
 
 	csum = drm_edid_block_checksum(raw_edid);
 	if (csum) {
-		if (print_bad_edid) {
-			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
-		}
-
 		if (edid_corrupt)
 			*edid_corrupt = true;
 
 		/* allow CEA to slide through, switches mangle this */
-		if (raw_edid[0] != 0x02)
+		if (raw_edid[0] == CEA_EXT) {
+			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
+			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
+		} else {
+			if (print_bad_edid)
+				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
+
 			goto bad;
+		}
 	}
 
 	/* per-block-type checks */
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Intel-gfx] drm/edid: Don't print an error if the checksum of a CEA block is wrong
  2017-02-08 13:19   ` Tahvanainen, Jari
@ 2017-02-08 13:32     ` Daniel Vetter
  -1 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2017-02-08 13:32 UTC (permalink / raw)
  To: Tahvanainen, Jari
  Cc: tomeu.vizoso, linux-kernel, Sarvela, Tomi P, David Airlie,
	intel-gfx, dri-devel, Vetter, Daniel

On Wed, Feb 08, 2017 at 01:19:23PM +0000, Tahvanainen, Jari wrote:
> I applied this change on the couple-days old drm-tip, and was not able to get any "EDID checksum is invalid" messages with it on my SKL. Without this patch I could generate the ERROR quite easily by switching the outputs and displays manually.
> I don't know if this hides something that it should not but it seem to work for the problem related the noise on Patchwork CI execution caused by these EDID checksum is invalid messages.
> 
> Tested-by: Jari Tahvanainen <jari.tahvanainen@intel.com>
> 
> -----Original Message-----
> From: Tomeu Vizoso [mailto:tomeu.vizoso@collabora.com] 
> Sent: Thursday, December 8, 2016 3:12 PM
> To: linux-kernel@vger.kernel.org
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>; Tomi Sarvela <tomi.p.sarvela@intel.com>; intel-gfx@lists.freedesktop.org; David Airlie <airlied@linux.ie>; dri-devel@lists.freedesktop.org; Daniel Vetter <daniel.vetter@intel.com>
> Subject: drm/edid: Don't print an error if the checksum of a CEA block is wrong
> 
> It's common to share screens within CI labs, and it's also common for KVM switches to alter the contents of the CEA block but leave the checksum outdated.
> 
> So in this case, print a debug message instead of an error.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>

Applied to drm-misc, thanks.
-Daniel

> ---
>  drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 6798c3ad9d53..db79bc949216 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
>  
>  	csum = drm_edid_block_checksum(raw_edid);
>  	if (csum) {
> -		if (print_bad_edid) {
> -			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
> -		}
> -
>  		if (edid_corrupt)
>  			*edid_corrupt = true;
>  
>  		/* allow CEA to slide through, switches mangle this */
> -		if (raw_edid[0] != 0x02)
> +		if (raw_edid[0] == CEA_EXT) {
> +			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
> +			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
> +		} else {
> +			if (print_bad_edid)
> +				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
> +
>  			goto bad;
> +		}
>  	}
>  
>  	/* per-block-type checks */
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: drm/edid: Don't print an error if the checksum of a CEA block is wrong
@ 2017-02-08 13:32     ` Daniel Vetter
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2017-02-08 13:32 UTC (permalink / raw)
  To: Tahvanainen, Jari
  Cc: tomeu.vizoso, Sarvela, Tomi P, intel-gfx, linux-kernel,
	dri-devel, David Airlie, Vetter, Daniel

On Wed, Feb 08, 2017 at 01:19:23PM +0000, Tahvanainen, Jari wrote:
> I applied this change on the couple-days old drm-tip, and was not able to get any "EDID checksum is invalid" messages with it on my SKL. Without this patch I could generate the ERROR quite easily by switching the outputs and displays manually.
> I don't know if this hides something that it should not but it seem to work for the problem related the noise on Patchwork CI execution caused by these EDID checksum is invalid messages.
> 
> Tested-by: Jari Tahvanainen <jari.tahvanainen@intel.com>
> 
> -----Original Message-----
> From: Tomeu Vizoso [mailto:tomeu.vizoso@collabora.com] 
> Sent: Thursday, December 8, 2016 3:12 PM
> To: linux-kernel@vger.kernel.org
> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>; Tomi Sarvela <tomi.p.sarvela@intel.com>; intel-gfx@lists.freedesktop.org; David Airlie <airlied@linux.ie>; dri-devel@lists.freedesktop.org; Daniel Vetter <daniel.vetter@intel.com>
> Subject: drm/edid: Don't print an error if the checksum of a CEA block is wrong
> 
> It's common to share screens within CI labs, and it's also common for KVM switches to alter the contents of the CEA block but leave the checksum outdated.
> 
> So in this case, print a debug message instead of an error.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=98228
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>

Applied to drm-misc, thanks.
-Daniel

> ---
>  drivers/gpu/drm/drm_edid.c | 13 ++++++++-----
>  1 file changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 6798c3ad9d53..db79bc949216 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1128,16 +1128,19 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid,
>  
>  	csum = drm_edid_block_checksum(raw_edid);
>  	if (csum) {
> -		if (print_bad_edid) {
> -			DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
> -		}
> -
>  		if (edid_corrupt)
>  			*edid_corrupt = true;
>  
>  		/* allow CEA to slide through, switches mangle this */
> -		if (raw_edid[0] != 0x02)
> +		if (raw_edid[0] == CEA_EXT) {
> +			DRM_DEBUG("EDID checksum is invalid, remainder is %d\n", csum);
> +			DRM_DEBUG("Assuming a KVM switch modified the CEA block but left the original checksum\n");
> +		} else {
> +			if (print_bad_edid)
> +				DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
> +
>  			goto bad;
> +		}
>  	}
>  
>  	/* per-block-type checks */
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-02-08 14:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-08 13:11 [PATCH] drm/edid: Don't print an error if the checksum of a CEA block is wrong Tomeu Vizoso
2016-12-08 13:11 ` Tomeu Vizoso
2016-12-08 14:52 ` ✗ Fi.CI.BAT: warning for " Patchwork
2016-12-08 15:46   ` Saarinen, Jani
2017-02-08 13:19 ` Tahvanainen, Jari
2017-02-08 13:19   ` Tahvanainen, Jari
2017-02-08 13:32   ` [Intel-gfx] " Daniel Vetter
2017-02-08 13:32     ` Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.