From: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
To: dri-devel@lists.freedesktop.org
Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org,
martin.peres@intel.com
Subject: [PATCH v3 1/3] drm: Add helper to compare edids.
Date: Tue, 6 Aug 2019 15:55:49 +0300 [thread overview]
Message-ID: <20190806125551.25761-2-stanislav.lisovskiy@intel.com> (raw)
In-Reply-To: <20190806125551.25761-1-stanislav.lisovskiy@intel.com>
Many drivers would benefit from using
drm helper to compare edid, rather
than bothering with own implementation.
v2: Added documentation for this function.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
drivers/gpu/drm/drm_edid.c | 33 +++++++++++++++++++++++++++++++++
include/drm/drm_edid.h | 9 +++++++++
2 files changed, 42 insertions(+)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 82a4ceed3fcf..6cd086ea6253 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1362,6 +1362,39 @@ static bool drm_edid_is_zero(const u8 *in_edid, int length)
return true;
}
+/**
+ * drm_edid_are_equal - compare two edid blobs.
+ * @edid1: pointer to first blob
+ * @edid2: pointer to second blob
+ * This helper can be used during probing to determine if
+ * edid had changed.
+ */
+bool drm_edid_are_equal(struct edid *edid1, struct edid *edid2)
+{
+ int edid1_len, edid2_len;
+ bool edid1_present = edid1 != NULL;
+ bool edid2_present = edid2 != NULL;
+
+ if (edid1_present != edid2_present)
+ return false;
+
+ if (edid1) {
+
+ edid1_len = EDID_LENGTH * (1 + edid1->extensions);
+ edid2_len = EDID_LENGTH * (1 + edid2->extensions);
+
+ if (edid1_len != edid2_len)
+ return false;
+
+ if (memcmp(edid1, edid2, edid1_len))
+ return false;
+ }
+
+ return true;
+}
+EXPORT_SYMBOL(drm_edid_are_equal);
+
+
/**
* drm_edid_block_valid - Sanity check the EDID block (base or extension)
* @raw_edid: pointer to raw EDID block
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index b9719418c3d2..716964f63312 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -354,6 +354,15 @@ drm_load_edid_firmware(struct drm_connector *connector)
}
#endif
+/**
+ * drm_edid_are_equal - compare two edid blobs.
+ * @edid1: pointer to first blob
+ * @edid2: pointer to second blob
+ * This helper can be used during probing to determine if
+ * edid had changed.
+ */
+bool drm_edid_are_equal(struct edid *edid1, struct edid *edid2);
+
int
drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame,
struct drm_connector *connector,
--
2.17.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-08-06 12:55 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-06 12:55 [PATCH v3 0/3] Send a hotplug when edid changes Stanislav Lisovskiy
2019-08-06 12:55 ` Stanislav Lisovskiy [this message]
2019-08-06 12:55 ` [PATCH v3 2/3] drm: Introduce change counter to drm_connector Stanislav Lisovskiy
2019-08-06 12:55 ` [PATCH v3 3/3] drm/i915: Send hotplug event if edid had changed Stanislav Lisovskiy
2019-08-06 13:51 ` [PATCH v3 0/3] Send a hotplug when edid changes Daniel Vetter
2019-08-06 14:06 ` Lisovskiy, Stanislav
2019-08-06 17:43 ` Daniel Vetter
2019-08-07 7:43 ` Lisovskiy, Stanislav
2019-08-07 21:07 ` Daniel Vetter
2019-08-19 7:23 ` Lisovskiy, Stanislav
2019-08-19 7:35 ` Peres, Martin
2019-08-19 9:05 ` Lisovskiy, Stanislav
2019-09-03 9:17 ` Lisovskiy, Stanislav
2019-09-03 9:40 ` Daniel Vetter
2019-09-03 11:49 ` Lisovskiy, Stanislav
2019-09-03 14:21 ` Lisovskiy, Stanislav
2019-09-03 15:49 ` Daniel Vetter
2019-09-04 8:36 ` Lisovskiy, Stanislav
2019-09-04 9:23 ` Daniel Vetter
2019-09-04 10:14 ` Lisovskiy, Stanislav
2019-08-06 14:01 ` ✗ Fi.CI.CHECKPATCH: warning for Send a hotplug when edid changes (rev4) Patchwork
2019-08-06 14:21 ` ✓ Fi.CI.BAT: success " Patchwork
2019-08-07 1:43 ` ✓ Fi.CI.IGT: " 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=20190806125551.25761-2-stanislav.lisovskiy@intel.com \
--to=stanislav.lisovskiy@intel.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=martin.peres@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