All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
	dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 10/11] drm/edid: Make version checks less convoluted
Date: Fri, 02 Sep 2022 15:31:39 +0300	[thread overview]
Message-ID: <87pmgedkk4.fsf@intel.com> (raw)
In-Reply-To: <20220826213501.31490-11-ville.syrjala@linux.intel.com>

On Sat, 27 Aug 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Get rid of the confusing version_greater() stuff and
> simply compare edid->revision directly everwhere. Half
> the places already did it this way, and since we actually
> reject any EDID with edid->version!=1 it's a perfectly
> sane thing to do.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/drm_edid.c | 25 ++++++++-----------------
>  1 file changed, 8 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 0fe06e5fd6e0..e7f46260dfe7 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1572,15 +1572,6 @@ struct drm_edid {
>  	const struct edid *edid;
>  };
>  
> -static bool version_greater(const struct drm_edid *drm_edid,
> -			    u8 version, u8 revision)
> -{
> -	const struct edid *edid = drm_edid->edid;
> -
> -	return edid->version > version ||
> -		(edid->version == version && edid->revision > revision);
> -}
> -
>  static int edid_hfeeodb_extension_block_count(const struct edid *edid);
>  
>  static int edid_hfeeodb_block_count(const struct edid *edid)
> @@ -3652,7 +3643,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
>  						  closure->drm_edid,
>  						  timing);
>  
> -	if (!version_greater(closure->drm_edid, 1, 1))
> +	if (closure->drm_edid->edid->revision < 2)
>  		return; /* GTF not defined yet */
>  
>  	switch (range->flags) {
> @@ -3667,7 +3658,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
>  							  timing);
>  		break;
>  	case DRM_EDID_CVT_SUPPORT_FLAG:
> -		if (!version_greater(closure->drm_edid, 1, 3))
> +		if (closure->drm_edid->edid->revision < 4)
>  			break;
>  
>  		closure->modes += drm_cvt_modes_for_range(closure->connector,
> @@ -3688,7 +3679,7 @@ static int add_inferred_modes(struct drm_connector *connector,
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (drm_edid->edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_inferred_modes, &closure);
>  
>  	return closure.modes;
> @@ -3765,7 +3756,7 @@ static int add_established_modes(struct drm_connector *connector,
>  		}
>  	}
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_established_modes,
>  					    &closure);
>  
> @@ -3820,7 +3811,7 @@ static int add_standard_modes(struct drm_connector *connector,
>  		}
>  	}
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (drm_edid->edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_standard_modes,
>  					    &closure);
>  
> @@ -3900,7 +3891,7 @@ add_cvt_modes(struct drm_connector *connector, const struct drm_edid *drm_edid)
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 2))
> +	if (drm_edid->edid->revision >= 3)
>  		drm_for_each_detailed_block(drm_edid, do_cvt_mode, &closure);
>  
>  	/* XXX should also look for CVT codes in VTB blocks */
> @@ -3955,7 +3946,7 @@ static int add_detailed_modes(struct drm_connector *connector,
>  		.quirks = quirks,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 3))
> +	if (drm_edid->edid->revision >= 4)
>  		closure.preferred = true; /* first detailed timing is always preferred */
>  	else
>  		closure.preferred =
> @@ -6144,7 +6135,7 @@ static void drm_get_vrr_range(struct drm_connector *connector,
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (!version_greater(drm_edid, 1, 3))
> +	if (drm_edid->edid->revision < 4)
>  		return;
>  
>  	if (!(drm_edid->edid->features & DRM_EDID_FEATURE_CONTINUOUS_FREQ))

-- 
Jani Nikula, Intel Open Source Graphics Center

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
	dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 10/11] drm/edid: Make version checks less convoluted
Date: Fri, 02 Sep 2022 15:31:39 +0300	[thread overview]
Message-ID: <87pmgedkk4.fsf@intel.com> (raw)
In-Reply-To: <20220826213501.31490-11-ville.syrjala@linux.intel.com>

On Sat, 27 Aug 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Get rid of the confusing version_greater() stuff and
> simply compare edid->revision directly everwhere. Half
> the places already did it this way, and since we actually
> reject any EDID with edid->version!=1 it's a perfectly
> sane thing to do.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/drm_edid.c | 25 ++++++++-----------------
>  1 file changed, 8 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 0fe06e5fd6e0..e7f46260dfe7 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -1572,15 +1572,6 @@ struct drm_edid {
>  	const struct edid *edid;
>  };
>  
> -static bool version_greater(const struct drm_edid *drm_edid,
> -			    u8 version, u8 revision)
> -{
> -	const struct edid *edid = drm_edid->edid;
> -
> -	return edid->version > version ||
> -		(edid->version == version && edid->revision > revision);
> -}
> -
>  static int edid_hfeeodb_extension_block_count(const struct edid *edid);
>  
>  static int edid_hfeeodb_block_count(const struct edid *edid)
> @@ -3652,7 +3643,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
>  						  closure->drm_edid,
>  						  timing);
>  
> -	if (!version_greater(closure->drm_edid, 1, 1))
> +	if (closure->drm_edid->edid->revision < 2)
>  		return; /* GTF not defined yet */
>  
>  	switch (range->flags) {
> @@ -3667,7 +3658,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
>  							  timing);
>  		break;
>  	case DRM_EDID_CVT_SUPPORT_FLAG:
> -		if (!version_greater(closure->drm_edid, 1, 3))
> +		if (closure->drm_edid->edid->revision < 4)
>  			break;
>  
>  		closure->modes += drm_cvt_modes_for_range(closure->connector,
> @@ -3688,7 +3679,7 @@ static int add_inferred_modes(struct drm_connector *connector,
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (drm_edid->edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_inferred_modes, &closure);
>  
>  	return closure.modes;
> @@ -3765,7 +3756,7 @@ static int add_established_modes(struct drm_connector *connector,
>  		}
>  	}
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_established_modes,
>  					    &closure);
>  
> @@ -3820,7 +3811,7 @@ static int add_standard_modes(struct drm_connector *connector,
>  		}
>  	}
>  
> -	if (version_greater(drm_edid, 1, 0))
> +	if (drm_edid->edid->revision >= 1)
>  		drm_for_each_detailed_block(drm_edid, do_standard_modes,
>  					    &closure);
>  
> @@ -3900,7 +3891,7 @@ add_cvt_modes(struct drm_connector *connector, const struct drm_edid *drm_edid)
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 2))
> +	if (drm_edid->edid->revision >= 3)
>  		drm_for_each_detailed_block(drm_edid, do_cvt_mode, &closure);
>  
>  	/* XXX should also look for CVT codes in VTB blocks */
> @@ -3955,7 +3946,7 @@ static int add_detailed_modes(struct drm_connector *connector,
>  		.quirks = quirks,
>  	};
>  
> -	if (version_greater(drm_edid, 1, 3))
> +	if (drm_edid->edid->revision >= 4)
>  		closure.preferred = true; /* first detailed timing is always preferred */
>  	else
>  		closure.preferred =
> @@ -6144,7 +6135,7 @@ static void drm_get_vrr_range(struct drm_connector *connector,
>  		.drm_edid = drm_edid,
>  	};
>  
> -	if (!version_greater(drm_edid, 1, 3))
> +	if (drm_edid->edid->revision < 4)
>  		return;
>  
>  	if (!(drm_edid->edid->features & DRM_EDID_FEATURE_CONTINUOUS_FREQ))

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2022-09-02 12:32 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-26 21:34 [Intel-gfx] [PATCH 00/11] drm/edid: Range descriptor stuff Ville Syrjala
2022-08-26 21:34 ` Ville Syrjala
2022-08-26 21:34 ` [Intel-gfx] [PATCH 01/11] drm/edid: Handle EDID 1.4 range descriptor h/vfreq offsets Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-27  1:40   ` [Intel-gfx] " Navare, Manasi
2022-08-27  1:40     ` Navare, Manasi
2022-08-27  1:40     ` Navare, Manasi
2022-09-02 13:44     ` [Intel-gfx] " Ville Syrjälä
2022-09-02 13:44       ` Ville Syrjälä
2022-09-02 13:44       ` Ville Syrjälä
2022-08-26 21:34 ` [PATCH 02/11] drm/edid: Clarify why we only accept the "range limits only" descriptor Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-27  1:45   ` Navare, Manasi
2022-08-27  1:45     ` Navare, Manasi
2022-08-27  1:45     ` [Intel-gfx] " Navare, Manasi
2022-08-26 21:34 ` [PATCH 03/11] drm/edid: s/monitor_rage/vrr_range/ Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-27  1:47   ` Navare, Manasi
2022-08-27  1:47     ` Navare, Manasi
2022-08-27  1:47     ` [Intel-gfx] " Navare, Manasi
2022-08-29  8:29   ` Jani Nikula
2022-08-29  8:29     ` Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 04/11] drm/edid: Define more flags Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-29  8:39   ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [PATCH 05/11] drm/edid: Only parse VRR range for continuous frequency displays Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-29  8:58   ` Jani Nikula
2022-08-29  8:58     ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 06/11] drm/edid: Extract drm_gtf2_mode() Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-29  8:45   ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 07/11] drm/edid: Use GTF2 for inferred modes Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 12:25   ` [Intel-gfx] " Jani Nikula
2022-09-02 12:45     ` Ville Syrjälä
2022-08-26 21:34 ` [Intel-gfx] [PATCH 08/11] drm/edid: Use the correct formula for standard timings Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 13:41   ` [Intel-gfx] " Jani Nikula
2022-09-02 14:02     ` Ville Syrjälä
2022-08-26 21:34 ` [Intel-gfx] [PATCH 09/11] drm/edid: Unconfuse preferred timing stuff a bit Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 12:27   ` [Intel-gfx] " Jani Nikula
2022-09-02 12:27     ` Jani Nikula
2022-08-26 21:35 ` [Intel-gfx] [PATCH 10/11] drm/edid: Make version checks less convoluted Ville Syrjala
2022-08-26 21:35   ` Ville Syrjala
2022-09-02 12:31   ` Jani Nikula [this message]
2022-09-02 12:31     ` Jani Nikula
2022-08-26 21:35 ` [Intel-gfx] [PATCH 11/11] drm/i915: Infer vrefresh range for eDP if the EDID omits it Ville Syrjala
2022-08-26 21:35   ` Ville Syrjala
2022-08-29  8:56   ` [Intel-gfx] " Jani Nikula
2022-08-29 12:02   ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2022-08-29 12:02     ` Ville Syrjala
2022-08-26 22:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: Range descriptor stuff Patchwork
2022-08-26 23:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-29 14:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: Range descriptor stuff (rev2) Patchwork
2022-08-29 15:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-30 18:08 ` [Intel-gfx] ✓ Fi.CI.IGT: success for drm/edid: Range descriptor stuff Patchwork
2022-08-31  5:36 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/edid: Range descriptor stuff (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=87pmgedkk4.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=ville.syrjala@linux.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.