Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
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 08/15] drm/edid: add function for checking drm_edid validity
Date: Wed, 19 Oct 2022 22:46:30 +0300	[thread overview]
Message-ID: <Y1BUFl89xPjoLunK@intel.com> (raw)
In-Reply-To: <1f11b4e6e91d526fb3646d7987be7148da3f7b47.1665496046.git.jani.nikula@intel.com>

On Tue, Oct 11, 2022 at 04:49:42PM +0300, Jani Nikula wrote:
> We've lacked a function for immutable validity check on drm_edid. Add
> one.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c | 30 ++++++++++++++++++++++++++++++
>  include/drm/drm_edid.h     |  1 +
>  2 files changed, 31 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 616c1cdc7507..c3cf942186b7 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -2040,6 +2040,36 @@ bool drm_edid_is_valid(struct edid *edid)
>  }
>  EXPORT_SYMBOL(drm_edid_is_valid);
>  
> +/**
> + * drm_edid_valid - sanity check EDID data
> + * @drm_edid: EDID data
> + *
> + * Sanity check an EDID. Cross check block count against allocated size and
> + * checksum the blocks.
> + *
> + * Return: True if the EDID data is valid, false otherwise.
> + */
> +bool drm_edid_valid(const struct drm_edid *drm_edid)
> +{
> +	int i;
> +
> +	if (!drm_edid)
> +		return false;
> +
> +	if (edid_size_by_blocks(__drm_edid_block_count(drm_edid)) != drm_edid->size)
> +		return false;

I Was consfued about the HF-EEODB crap for a bit but 
__drm_edid_block_count() does include that.

So looks sane
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> +
> +	for (i = 0; i < drm_edid_block_count(drm_edid); i++) {
> +		const void *block = drm_edid_block_data(drm_edid, i);
> +
> +		if (!edid_block_valid(block, i == 0))
> +			return false;
> +	}
> +
> +	return true;
> +}
> +EXPORT_SYMBOL(drm_edid_valid);
> +
>  static struct edid *edid_filter_invalid_blocks(struct edid *edid,
>  					       size_t *alloc_size)
>  {
> diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
> index 05380681a4fb..a2e25e7e6ee5 100644
> --- a/include/drm/drm_edid.h
> +++ b/include/drm/drm_edid.h
> @@ -606,6 +606,7 @@ drm_display_mode_from_cea_vic(struct drm_device *dev,
>  const struct drm_edid *drm_edid_alloc(const void *edid, size_t size);
>  const struct drm_edid *drm_edid_dup(const struct drm_edid *drm_edid);
>  void drm_edid_free(const struct drm_edid *drm_edid);
> +bool drm_edid_valid(const struct drm_edid *drm_edid);
>  const struct edid *drm_edid_raw(const struct drm_edid *drm_edid);
>  const struct drm_edid *drm_edid_read(struct drm_connector *connector);
>  const struct drm_edid *drm_edid_read_ddc(struct drm_connector *connector,
> -- 
> 2.34.1

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2022-10-19 19:46 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-11 13:49 [Intel-gfx] [PATCH 00/15] drm/edid: EDID override refactoring and fixes Jani Nikula
2022-10-11 13:49 ` [Intel-gfx] [PATCH 01/15] drm/i915/hdmi: do dual mode detect only if connected Jani Nikula
2022-10-13 18:41   ` Ville Syrjälä
2022-10-13 19:24     ` Ville Syrjälä
2022-10-14  8:14       ` Jani Nikula
2022-10-19 18:56         ` Ville Syrjälä
2022-10-19 19:23       ` Ville Syrjälä
2022-10-20  8:57         ` Jani Nikula
2022-10-20  9:25           ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 02/15] drm/i915/hdmi: stop using connector->override_edid Jani Nikula
2022-10-19 19:36   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 03/15] drm/amd/display: " Jani Nikula
2022-10-11 14:07   ` Harry Wentland
2022-10-11 14:11     ` Jani Nikula
2022-10-11 14:19       ` Alex Deucher
2022-10-11 13:49 ` [Intel-gfx] [PATCH 04/15] drm/edid: debug log EDID override set/reset Jani Nikula
2022-10-19 19:36   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 05/15] drm/edid: abstract debugfs override EDID show better Jani Nikula
2022-10-19 19:37   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 06/15] drm/edid: rename drm_add_override_edid_modes() to drm_edid_override_connector_update() Jani Nikula
2022-10-19 20:04   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 07/15] drm/edid: split drm_edid block count helper Jani Nikula
2022-10-19 19:44   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 08/15] drm/edid: add function for checking drm_edid validity Jani Nikula
2022-10-19 19:46   ` Ville Syrjälä [this message]
2022-10-11 13:49 ` [Intel-gfx] [PATCH 09/15] drm/edid: detach debugfs EDID override from EDID property update Jani Nikula
2022-10-19 20:07   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 10/15] drm/edid/firmware: drop redundant connector_name variable/parameter Jani Nikula
2022-10-19 19:52   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 11/15] drm/edid/firmware: rename drm_load_edid_firmware() to drm_edid_load_firmware() Jani Nikula
2022-10-19 20:07   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 12/15] drm/edid: use struct drm_edid for override/firmware EDID Jani Nikula
2022-10-19 20:01   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 13/15] drm/edid: move edid load declarations to internal header Jani Nikula
2022-10-19 20:08   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 14/15] drm/edid/firmware: convert to drm device specific logging Jani Nikula
2022-10-19 20:10   ` Ville Syrjälä
2022-10-11 13:49 ` [Intel-gfx] [PATCH 15/15] drm/edid: convert to " Jani Nikula
2022-10-19 20:12   ` Ville Syrjälä
2022-10-11 15:30 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: EDID override refactoring and fixes Patchwork
2022-10-11 15:30 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-10-11 15:52 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-10-11 18:49 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " 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=Y1BUFl89xPjoLunK@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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox