dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: dri-devel@lists.freedesktop.org
Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org
Subject: [PATCH 25/25] drm/edid: convert version_greater() to drm_edid
Date: Fri,  6 May 2022 13:10:32 +0300	[thread overview]
Message-ID: <bdafb3a04bd409d5fbf922ab932b7ffce12ed33b.1651830939.git.jani.nikula@intel.com> (raw)
In-Reply-To: <cover.1651830938.git.jani.nikula@intel.com>

We'll need to propagate drm_edid everywhere. Also make version_greater()
a function for type safety.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index bc64837ad706..df48189ba2c7 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -45,10 +45,6 @@
 
 #include "drm_crtc_internal.h"
 
-#define version_greater(edid, maj, min) \
-	(((edid)->version > (maj)) || \
-	 ((edid)->version == (maj) && (edid)->revision > (min)))
-
 static int oui(u8 first, u8 second, u8 third)
 {
 	return (first << 16) | (second << 8) | third;
@@ -1576,6 +1572,15 @@ 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_extension_block_count(const struct edid *edid)
 {
 	return edid->extensions;
@@ -3214,7 +3219,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
 						  closure->drm_edid,
 						  timing);
 
-	if (!version_greater(closure->drm_edid->edid, 1, 1))
+	if (!version_greater(closure->drm_edid, 1, 1))
 		return; /* GTF not defined yet */
 
 	switch (range->flags) {
@@ -3225,7 +3230,7 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
 							  timing);
 		break;
 	case 0x04: /* cvt, only in 1.4+ */
-		if (!version_greater(closure->drm_edid->edid, 1, 3))
+		if (!version_greater(closure->drm_edid, 1, 3))
 			break;
 
 		closure->modes += drm_cvt_modes_for_range(closure->connector,
@@ -3246,7 +3251,7 @@ static int add_inferred_modes(struct drm_connector *connector,
 		.drm_edid = drm_edid,
 	};
 
-	if (version_greater(drm_edid->edid, 1, 0))
+	if (version_greater(drm_edid, 1, 0))
 		drm_for_each_detailed_block(drm_edid, do_inferred_modes, &closure);
 
 	return closure.modes;
@@ -3323,7 +3328,7 @@ static int add_established_modes(struct drm_connector *connector,
 		}
 	}
 
-	if (version_greater(edid, 1, 0))
+	if (version_greater(drm_edid, 1, 0))
 		drm_for_each_detailed_block(drm_edid, do_established_modes,
 					    &closure);
 
@@ -3378,7 +3383,7 @@ static int add_standard_modes(struct drm_connector *connector,
 		}
 	}
 
-	if (version_greater(drm_edid->edid, 1, 0))
+	if (version_greater(drm_edid, 1, 0))
 		drm_for_each_detailed_block(drm_edid, do_standard_modes,
 					    &closure);
 
@@ -3458,7 +3463,7 @@ add_cvt_modes(struct drm_connector *connector, const struct drm_edid *drm_edid)
 		.drm_edid = drm_edid,
 	};
 
-	if (version_greater(drm_edid->edid, 1, 2))
+	if (version_greater(drm_edid, 1, 2))
 		drm_for_each_detailed_block(drm_edid, do_cvt_mode, &closure);
 
 	/* XXX should also look for CVT codes in VTB blocks */
@@ -3514,7 +3519,7 @@ static int add_detailed_modes(struct drm_connector *connector,
 		.quirks = quirks,
 	};
 
-	if (closure.preferred && !version_greater(drm_edid->edid, 1, 3))
+	if (closure.preferred && !version_greater(drm_edid, 1, 3))
 		closure.preferred =
 		    (drm_edid->edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING);
 
@@ -5584,7 +5589,7 @@ static void drm_get_monitor_range(struct drm_connector *connector,
 {
 	struct drm_display_info *info = &connector->display_info;
 
-	if (!version_greater(drm_edid->edid, 1, 1))
+	if (!version_greater(drm_edid, 1, 1))
 		return;
 
 	drm_for_each_detailed_block(drm_edid, get_monitor_range,
-- 
2.30.2


  parent reply	other threads:[~2022-05-06 10:12 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-06 10:10 [PATCH 00/25] drm/edid: introduce struct drm_edid Jani Nikula
2022-05-06 10:10 ` [PATCH 01/25] drm/edid: use else-if in CTA extension parsing Jani Nikula
2022-05-06 17:47   ` Ville Syrjälä
2022-05-06 10:10 ` [PATCH 02/25] drm/edid: convert drm_for_each_detailed_block() to edid iter Jani Nikula
2022-05-06 17:50   ` Ville Syrjälä
2022-05-06 10:10 ` [PATCH 03/25] drm/edid: add struct drm_edid container Jani Nikula
2022-05-10  6:10   ` Nautiyal, Ankit K
2022-05-06 10:10 ` [PATCH 04/25] drm/edid: start propagating drm_edid to lower levels Jani Nikula
2022-05-06 10:10 ` [PATCH 05/25] drm/edid: keep propagating drm_edid to display info Jani Nikula
2022-05-06 10:16   ` Jani Nikula
2022-05-10  6:08     ` Nautiyal, Ankit K
2022-05-06 10:10 ` [PATCH 06/25] drm/edid: propagate drm_edid to drm_edid_to_eld() Jani Nikula
2022-05-06 10:10 ` [PATCH 07/25] drm/edid: convert drm_edid_connector_update() to drm_edid fully Jani Nikula
2022-05-06 10:10 ` [PATCH 08/25] drm/edid: convert struct detailed_mode_closure to drm_edid Jani Nikula
2022-05-06 10:10 ` [PATCH 09/25] drm/edid: convert drm_mode_detailed() " Jani Nikula
2022-05-06 10:10 ` [PATCH 10/25] drm/edid: convert drm_dmt_modes_for_range() " Jani Nikula
2022-05-06 10:10 ` [PATCH 11/25] drm/edid: convert drm_gtf_modes_for_range() " Jani Nikula
2022-05-06 10:10 ` [PATCH 12/25] drm/edid: convert drm_cvt_modes_for_range() " Jani Nikula
2022-05-06 10:10 ` [PATCH 13/25] drm/edid: convert drm_mode_std() and children " Jani Nikula
2022-05-06 10:10 ` [PATCH 14/25] drm/edid: convert mode_in_range() and drm_monitor_supports_rb() " Jani Nikula
2022-05-06 10:10 ` [PATCH 15/25] drm/edid: convert get_monitor_name() " Jani Nikula
2022-05-06 10:10 ` [PATCH 16/25] drm/edid: convert drm_for_each_detailed_block() " Jani Nikula
2022-05-06 10:10 ` [PATCH 17/25] drm/edid: add drm_edid helper for drm_edid_to_sad() Jani Nikula
2022-05-06 18:05   ` Ville Syrjälä
2022-05-07 10:21     ` Jani Nikula
2022-05-06 10:10 ` [PATCH 18/25] drm/edid: add drm_edid helper for drm_edid_to_speaker_allocation() Jani Nikula
2022-05-06 10:10 ` [PATCH 19/25] drm/edid: add drm_edid helper for drm_detect_hdmi_monitor() Jani Nikula
2022-05-06 10:10 ` [PATCH 20/25] drm/edid: add drm_edid helper for drm_detect_monitor_audio() Jani Nikula
2022-05-06 10:10 ` [PATCH 21/25] drm/edid: convert cea_db_iter_edid_begin() to drm_edid Jani Nikula
2022-05-06 10:10 ` [PATCH 22/25] drm/edid: convert drm_edid_iter_begin() " Jani Nikula
2022-05-06 10:10 ` [PATCH 23/25] drm/edid: add drm_edid helper for drm_update_tile_info() Jani Nikula
2022-05-06 10:10 ` [PATCH 24/25] drm/displayid: convert to drm_edid Jani Nikula
2022-05-06 10:10 ` Jani Nikula [this message]
     [not found] ` <165183552881.18818.4314029635057951024@emeril.freedesktop.org>
2022-05-06 11:42   ` amdgpu sparse warnings (was: Re: ✗ Fi.CI.SPARSE: warning for drm/edid: introduce struct drm_edid) Jani Nikula
2022-05-06 14:15     ` Deucher, Alexander

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=bdafb3a04bd409d5fbf922ab932b7ffce12ed33b.1651830939.git.jani.nikula@intel.com \
    --to=jani.nikula@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /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;
as well as URLs for NNTP newsgroup(s).