From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Lee Shawn C <shawn.c.lee@intel.com>
Cc: Dave Airlie <airlied@redhat.com>,
Hans Verkuil <hans.verkuil@cisco.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/edid: Refine HDMI VSDB detect
Date: Thu, 23 Dec 2021 15:02:59 +0200 [thread overview]
Message-ID: <YcRzg2ZcbyjSm1q/@intel.com> (raw)
In-Reply-To: <20211212153331.15457-1-shawn.c.lee@intel.com>
On Sun, Dec 12, 2021 at 11:33:31PM +0800, Lee Shawn C wrote:
> According to CEA-861-F chapter 7.5.4. It says "The VSDB shall contain the
> 3 bytes of the IEEE OUI as well as any additional payload bytes needed."
> Now DRM driver check HDMI OUI but VSDB payload size at least five bytes.
> That may caused some HDMI monitors' audio feature can't be enabled.
> Because of they only have three bytes payload (OUI only) in VSDB.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Adam Jackson <ajax@redhat.com>
> Cc: Dave Airlie <airlied@redhat.com>
> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
> ---
> drivers/gpu/drm/drm_edid.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be89b..5aa4a6bf4a13 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -4205,7 +4205,7 @@ static bool cea_db_is_hdmi_vsdb(const u8 *db)
> if (cea_db_tag(db) != VENDOR_BLOCK)
> return false;
>
> - if (cea_db_payload_len(db) < 5)
> + if (cea_db_payload_len(db) < 3)
> return false;
I was a a bit worried that we are now assuming that we can parse some
stuff without further length checks, but looks like that's just the
"source physical address" stuff which we do not parse in drm_edid.c,
and the other fields we do parse are actually optional and so already
have the require length checks. So this seems fine.
Closes: https://gitlab.freedesktop.org/drm/misc/-/issues/28
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Note that there is a second edid parser in cec_get_edid_spa_location()
that does parse the source physical address. You may want to double
check that it doesn't make any bad assumptions about the length
of the vsdb either. I think we should probably get rid of that
second parser and just have drm_edid.c extract the source physical
address and pass that on directly to the cec code instead. But I
guess the cec code still couldn't remove the second parser
since some media drivers need it :( Though it could then perhaps
be moved into the media code instead of having it as a massive
inline function in the cec headers.
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2021-12-23 13:03 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-12 15:33 [PATCH] drm/edid: Refine HDMI VSDB detect Lee Shawn C
2021-12-13 12:30 ` Ville Syrjälä
2021-12-13 12:42 ` Lee, Shawn C
2021-12-13 12:45 ` Ville Syrjälä
2021-12-13 14:09 ` Lee, Shawn C
2021-12-13 14:36 ` Ville Syrjälä
2021-12-13 15:19 ` Lee, Shawn C
2021-12-23 13:02 ` Ville Syrjälä [this message]
2021-12-23 14:40 ` Lee, Shawn C
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YcRzg2ZcbyjSm1q/@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=airlied@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hans.verkuil@cisco.com \
--cc=shawn.c.lee@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.