dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [v2] drm/edid: check basic audio support on CEA extension block
       [not found] <20220321044330.27723-1-cooper.chiou@intel.com>
@ 2022-03-23  5:45 ` Lee Shawn C
  2022-03-23  9:40   ` Jani Nikula
  2022-03-24  6:12 ` [v3] " Lee Shawn C
  2022-03-24  6:16 ` Lee Shawn C
  2 siblings, 1 reply; 5+ messages in thread
From: Lee Shawn C @ 2022-03-23  5:45 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Jani Nikula, Cooper Chiou, Shawn C Lee

From: Cooper Chiou <cooper.chiou@intel.com>

Tag code stored in bit7:5 for CTA block byte[3] is not the same as
CEA extension block definition. Only check CEA block has
basic audio support.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 561f53831e29..f07af6786cec 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4859,7 +4859,8 @@ bool drm_detect_monitor_audio(struct edid *edid)
 	if (!edid_ext)
 		goto end;
 
-	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
+	has_audio = (edid_ext[0] == CEA_EXT &&
+		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
 
 	if (has_audio) {
 		DRM_DEBUG_KMS("Monitor has basic audio support\n");
-- 
2.17.1


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

* Re: [v2] drm/edid: check basic audio support on CEA extension block
  2022-03-23  5:45 ` [v2] drm/edid: check basic audio support on CEA extension block Lee Shawn C
@ 2022-03-23  9:40   ` Jani Nikula
  0 siblings, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2022-03-23  9:40 UTC (permalink / raw)
  To: Lee Shawn C, dri-devel, intel-gfx; +Cc: Cooper Chiou, Shawn C Lee

On Wed, 23 Mar 2022, Lee Shawn C <shawn.c.lee@intel.com> wrote:
> From: Cooper Chiou <cooper.chiou@intel.com>
>
> Tag code stored in bit7:5 for CTA block byte[3] is not the same as
> CEA extension block definition. Only check CEA block has
> basic audio support.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Shawn C Lee <shawn.c.lee@intel.com>
> Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
> Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>

Fixes: e28ad544f462 ("drm/edid: parse CEA blocks embedded in DisplayID")
Cc: <stable@vger.kernel.org> # v4.15
Reviewed-by: Jani Nikula <jani.nikula@intel.com>

(commit e28ad544f462 was merged in v5.3, but it has Cc: stable for
v4.15.)

Also drm_edid_to_eld() and drm_parse_cea_ext() are affected by the same
issue. For the former, it doesn't really matter all that much, it just
ends up using the DisplayID data block version instead, but the latter
adds bogus color formats and should be fixed. Patch follows.

All of these are fixed in my recent series [1], but we'll want the
simple fixes for stable first.

BR,
Jani.

[1] https://patchwork.freedesktop.org/series/101659/

> ---
>  drivers/gpu/drm/drm_edid.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 561f53831e29..f07af6786cec 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -4859,7 +4859,8 @@ bool drm_detect_monitor_audio(struct edid *edid)
>  	if (!edid_ext)
>  		goto end;
>  
> -	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
> +	has_audio = (edid_ext[0] == CEA_EXT &&
> +		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
>  
>  	if (has_audio) {
>  		DRM_DEBUG_KMS("Monitor has basic audio support\n");

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* [v3] drm/edid: check basic audio support on CEA extension block
       [not found] <20220321044330.27723-1-cooper.chiou@intel.com>
  2022-03-23  5:45 ` [v2] drm/edid: check basic audio support on CEA extension block Lee Shawn C
@ 2022-03-24  6:12 ` Lee Shawn C
  2022-03-24  6:16 ` Lee Shawn C
  2 siblings, 0 replies; 5+ messages in thread
From: Lee Shawn C @ 2022-03-24  6:12 UTC (permalink / raw)
  To: dri-devel, intel-gfx; +Cc: Jani Nikula, Cooper Chiou, Shawn C Lee, stable

From: Cooper Chiou <cooper.chiou@intel.com>

Tag code stored in bit7:5 for CTA block byte[3] is not the same as
CEA extension block definition. Only check CEA block has
basic audio support.

v3: update commit message.

Cc: stable@vger.kernel.org
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
Fixes: e28ad544f462 ("drm/edid: parse CEA blocks embedded in DisplayID")
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 561f53831e29..f07af6786cec 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4859,7 +4859,8 @@ bool drm_detect_monitor_audio(struct edid *edid)
 	if (!edid_ext)
 		goto end;
 
-	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
+	has_audio = (edid_ext[0] == CEA_EXT &&
+		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
 
 	if (has_audio) {
 		DRM_DEBUG_KMS("Monitor has basic audio support\n");
-- 
2.17.1


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

* [v3] drm/edid: check basic audio support on CEA extension block
       [not found] <20220321044330.27723-1-cooper.chiou@intel.com>
  2022-03-23  5:45 ` [v2] drm/edid: check basic audio support on CEA extension block Lee Shawn C
  2022-03-24  6:12 ` [v3] " Lee Shawn C
@ 2022-03-24  6:16 ` Lee Shawn C
  2022-03-24  9:57   ` Jani Nikula
  2 siblings, 1 reply; 5+ messages in thread
From: Lee Shawn C @ 2022-03-24  6:16 UTC (permalink / raw)
  To: dri-devel; +Cc: Jani Nikula, Cooper Chiou, intel-gfx, Shawn C Lee, stable

From: Cooper Chiou <cooper.chiou@intel.com>

Tag code stored in bit7:5 for CTA block byte[3] is not the same as
CEA extension block definition. Only check CEA block has
basic audio support.

v3: update commit message.

Cc: stable@vger.kernel.org
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Shawn C Lee <shawn.c.lee@intel.com>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
Fixes: e28ad544f462 ("drm/edid: parse CEA blocks embedded in DisplayID")
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 561f53831e29..f07af6786cec 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4859,7 +4859,8 @@ bool drm_detect_monitor_audio(struct edid *edid)
 	if (!edid_ext)
 		goto end;
 
-	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
+	has_audio = (edid_ext[0] == CEA_EXT &&
+		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
 
 	if (has_audio) {
 		DRM_DEBUG_KMS("Monitor has basic audio support\n");
-- 
2.17.1


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

* Re: [v3] drm/edid: check basic audio support on CEA extension block
  2022-03-24  6:16 ` Lee Shawn C
@ 2022-03-24  9:57   ` Jani Nikula
  0 siblings, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2022-03-24  9:57 UTC (permalink / raw)
  To: Lee Shawn C, dri-devel; +Cc: Cooper Chiou, intel-gfx, Shawn C Lee, stable

On Thu, 24 Mar 2022, Lee Shawn C <shawn.c.lee@intel.com> wrote:
> From: Cooper Chiou <cooper.chiou@intel.com>
>
> Tag code stored in bit7:5 for CTA block byte[3] is not the same as
> CEA extension block definition. Only check CEA block has
> basic audio support.
>
> v3: update commit message.
>
> Cc: stable@vger.kernel.org
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Shawn C Lee <shawn.c.lee@intel.com>
> Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
> Signed-off-by: Cooper Chiou <cooper.chiou@intel.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
> Fixes: e28ad544f462 ("drm/edid: parse CEA blocks embedded in DisplayID")
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>

Thanks for the patch, pushed to drm-misc-next-fixes.

BR,
Jani.

> ---
>  drivers/gpu/drm/drm_edid.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 561f53831e29..f07af6786cec 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -4859,7 +4859,8 @@ bool drm_detect_monitor_audio(struct edid *edid)
>  	if (!edid_ext)
>  		goto end;
>  
> -	has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
> +	has_audio = (edid_ext[0] == CEA_EXT &&
> +		    (edid_ext[3] & EDID_BASIC_AUDIO) != 0);
>  
>  	if (has_audio) {
>  		DRM_DEBUG_KMS("Monitor has basic audio support\n");

-- 
Jani Nikula, Intel Open Source Graphics Center

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

end of thread, other threads:[~2022-03-24  9:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20220321044330.27723-1-cooper.chiou@intel.com>
2022-03-23  5:45 ` [v2] drm/edid: check basic audio support on CEA extension block Lee Shawn C
2022-03-23  9:40   ` Jani Nikula
2022-03-24  6:12 ` [v3] " Lee Shawn C
2022-03-24  6:16 ` Lee Shawn C
2022-03-24  9:57   ` Jani Nikula

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).