From: "Ville Syrjälä" <ville.syrjala@linux.intel.com> To: Jani Nikula <jani.nikula@intel.com> Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm/edid: split HDMI VSDB info and mode parsing Date: Thu, 19 Jan 2023 17:59:15 +0200 [thread overview] Message-ID: <Y8lo0zG7p3DFklH9@intel.com> (raw) In-Reply-To: <20230119154628.953419-1-jani.nikula@intel.com> On Thu, Jan 19, 2023 at 05:46:28PM +0200, Jani Nikula wrote: > Separate the parsing of display info and modes from the HDMI VSDB. This > is prerequisite work for overall better separation of the two parsing > steps. > > The info parsing is about figuring out whether the sink supports HDMI > infoframes. Since they were added in HDMI 1.4, assume the sink supports > HDMI infoframes if it has the HDMI_Video_present bit set (introduced in > HDMI 1.4). For details, see commit f1781e9bb2dd ("drm/edid: Allow HDMI > infoframe without VIC or S3D"). > > The logic is not exactly the same, but since it was somewhat heuristic > to begin with, assume this is close enough. > > v2: > - Simplify to only check HDMI_Video_present bit (Ville) > - Drop cea_db_raw_size() helper (Ville) > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_edid.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index e8b67f3f5c91..ee453e39562a 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4713,7 +4713,6 @@ static int hdmi_vsdb_latency_length(const u8 *db) > static int > do_hdmi_vsdb_modes(struct drm_connector *connector, const u8 *db, u8 len) > { > - struct drm_display_info *info = &connector->display_info; > int modes = 0, offset = 0, i, multi_present = 0, multi_len; > u8 vic_len, hdmi_3d_len = 0; > u16 mask; > @@ -4831,8 +4830,6 @@ do_hdmi_vsdb_modes(struct drm_connector *connector, const u8 *db, u8 len) > } > > out: > - if (modes > 0) > - info->has_hdmi_infoframe = true; > return modes; > } > > @@ -6153,6 +6150,7 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, > } > } > > +/* HDMI Vendor-Specific Data Block (HDMI VSDB, H14b-VSDB) */ > static void > drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db) > { > @@ -6166,6 +6164,15 @@ drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db) > if (len >= 7) > info->max_tmds_clock = db[7] * 5000; > > + /* > + * Try to infer whether the sink supports HDMI infoframes. > + * > + * HDMI infoframe support was first added in HDMI 1.4. Assume the sink > + * supports infoframes if HDMI_Video_present is set. > + */ > + if (len >= 8 && db[8] & BIT(5)) > + info->has_hdmi_infoframe = true; > + > drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI: DVI dual %d, max TMDS clock %d kHz\n", > connector->base.id, connector->name, > info->dvi_dual, info->max_tmds_clock); > -- > 2.34.1 -- Ville Syrjälä Intel
WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com> To: Jani Nikula <jani.nikula@intel.com> Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [Intel-gfx] [PATCH] drm/edid: split HDMI VSDB info and mode parsing Date: Thu, 19 Jan 2023 17:59:15 +0200 [thread overview] Message-ID: <Y8lo0zG7p3DFklH9@intel.com> (raw) In-Reply-To: <20230119154628.953419-1-jani.nikula@intel.com> On Thu, Jan 19, 2023 at 05:46:28PM +0200, Jani Nikula wrote: > Separate the parsing of display info and modes from the HDMI VSDB. This > is prerequisite work for overall better separation of the two parsing > steps. > > The info parsing is about figuring out whether the sink supports HDMI > infoframes. Since they were added in HDMI 1.4, assume the sink supports > HDMI infoframes if it has the HDMI_Video_present bit set (introduced in > HDMI 1.4). For details, see commit f1781e9bb2dd ("drm/edid: Allow HDMI > infoframe without VIC or S3D"). > > The logic is not exactly the same, but since it was somewhat heuristic > to begin with, assume this is close enough. > > v2: > - Simplify to only check HDMI_Video_present bit (Ville) > - Drop cea_db_raw_size() helper (Ville) > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_edid.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index e8b67f3f5c91..ee453e39562a 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -4713,7 +4713,6 @@ static int hdmi_vsdb_latency_length(const u8 *db) > static int > do_hdmi_vsdb_modes(struct drm_connector *connector, const u8 *db, u8 len) > { > - struct drm_display_info *info = &connector->display_info; > int modes = 0, offset = 0, i, multi_present = 0, multi_len; > u8 vic_len, hdmi_3d_len = 0; > u16 mask; > @@ -4831,8 +4830,6 @@ do_hdmi_vsdb_modes(struct drm_connector *connector, const u8 *db, u8 len) > } > > out: > - if (modes > 0) > - info->has_hdmi_infoframe = true; > return modes; > } > > @@ -6153,6 +6150,7 @@ static void drm_parse_hdmi_deep_color_info(struct drm_connector *connector, > } > } > > +/* HDMI Vendor-Specific Data Block (HDMI VSDB, H14b-VSDB) */ > static void > drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db) > { > @@ -6166,6 +6164,15 @@ drm_parse_hdmi_vsdb_video(struct drm_connector *connector, const u8 *db) > if (len >= 7) > info->max_tmds_clock = db[7] * 5000; > > + /* > + * Try to infer whether the sink supports HDMI infoframes. > + * > + * HDMI infoframe support was first added in HDMI 1.4. Assume the sink > + * supports infoframes if HDMI_Video_present is set. > + */ > + if (len >= 8 && db[8] & BIT(5)) > + info->has_hdmi_infoframe = true; > + > drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] HDMI: DVI dual %d, max TMDS clock %d kHz\n", > connector->base.id, connector->name, > info->dvi_dual, info->max_tmds_clock); > -- > 2.34.1 -- Ville Syrjälä Intel
next prev parent reply other threads:[~2023-01-19 15:59 UTC|newest] Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-04 10:05 [PATCH v7 00/22] drm/edid: info & modes parsing and drm_edid refactors Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 01/22] drm/edid: fix AVI infoframe aspect ratio handling Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` Jani Nikula 2023-01-18 14:56 ` [Intel-gfx] " Ville Syrjälä 2023-01-18 14:56 ` Ville Syrjälä 2023-01-18 14:56 ` Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 02/22] drm/edid: fix parsing of 3D modes from HDMI VSDB Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` Jani Nikula 2023-01-18 15:00 ` Ville Syrjälä 2023-01-18 15:00 ` Ville Syrjälä 2023-01-18 15:00 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 03/22] drm/edid: parse VICs from CTA VDB early Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:12 ` Ville Syrjälä 2023-01-18 15:12 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 04/22] drm/edid: Use the pre-parsed VICs Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:08 ` Ville Syrjälä 2023-01-18 15:08 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 05/22] drm/edid: use VIC in AVI infoframe if sink lists it in CTA VDB Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:18 ` Ville Syrjälä 2023-01-18 15:18 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 06/22] drm/edid: rename struct drm_display_info *display to *info Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:19 ` Ville Syrjälä 2023-01-18 15:19 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 07/22] drm/edid: refactor CTA Y420CMDB parsing Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:24 ` Ville Syrjälä 2023-01-18 15:24 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 08/22] drm/edid: split CTA Y420VDB info and mode parsing Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:32 ` Ville Syrjälä 2023-01-18 15:32 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 09/22] drm/edid: fix and clarify HDMI VSDB audio latency parsing Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:41 ` Ville Syrjälä 2023-01-18 15:41 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 10/22] drm/edid: add helper for HDMI VSDB audio latency field length Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 15:42 ` Ville Syrjälä 2023-01-18 15:42 ` [Intel-gfx] " Ville Syrjälä 2023-01-19 9:44 ` Jani Nikula 2023-01-19 9:44 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 11/22] drm/edid: split HDMI VSDB info and mode parsing Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 16:08 ` Ville Syrjälä 2023-01-18 16:08 ` [Intel-gfx] " Ville Syrjälä 2023-01-19 15:46 ` [PATCH] " Jani Nikula 2023-01-19 15:46 ` [Intel-gfx] " Jani Nikula 2023-01-19 15:59 ` Ville Syrjälä [this message] 2023-01-19 15:59 ` Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 12/22] drm/edid: store quirks in display info Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 16:09 ` Ville Syrjälä 2023-01-18 16:09 ` Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 13/22] drm/edid: stop passing quirks around Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 16:09 ` Ville Syrjälä 2023-01-18 16:09 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 14/22] drm/edid: merge ELD handling to update_display_info() Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 16:14 ` Ville Syrjälä 2023-01-18 16:14 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 15/22] drm/edid: move EDID BPC quirk application " Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-18 16:15 ` Ville Syrjälä 2023-01-18 16:15 ` [Intel-gfx] " Ville Syrjälä 2023-01-19 12:16 ` Jani Nikula 2023-01-19 12:16 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 16/22] drm/edid: refactor _drm_edid_connector_update() and rename Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-19 12:19 ` Ville Syrjälä 2023-01-19 12:19 ` Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 17/22] drm/edid: add separate drm_edid_connector_add_modes() Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-19 12:23 ` Ville Syrjälä 2023-01-19 12:23 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 18/22] drm/edid: remove redundant _drm_connector_update_edid_property() Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-19 12:23 ` Ville Syrjälä 2023-01-19 12:23 ` [Intel-gfx] " Ville Syrjälä 2023-01-04 10:05 ` [PATCH v7 19/22] drm/i915/edid: convert DP, HDMI and LVDS to drm_edid Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 20/22] drm/i915/bios: convert intel_bios_init_panel() " Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 21/22] drm/i915/opregion: convert intel_opregion_get_edid() to struct drm_edid Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:05 ` [PATCH v7 22/22] drm/i915/panel: move panel fixed EDID to struct intel_panel Jani Nikula 2023-01-04 10:05 ` [Intel-gfx] " Jani Nikula 2023-01-04 10:20 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/edid: info & modes parsing and drm_edid refactors Patchwork 2023-01-04 10:40 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork 2023-01-19 15:49 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/edid: info & modes parsing and drm_edid refactors (rev2) Patchwork
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=Y8lo0zG7p3DFklH9@intel.com \ --to=ville.syrjala@linux.intel.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=jani.nikula@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: linkBe 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.