* [PATCH 0/3] drm/displayid: quirk incorrect DisplayID checksums
@ 2025-10-28 20:07 Jani Nikula
2025-10-28 20:07 ` [PATCH 1/3] drm/displayid: pass iter to drm_find_displayid_extension() Jani Nikula
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Jani Nikula @ 2025-10-28 20:07 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, tiago.martins.araujo, jani.nikula
Jani Nikula (3):
drm/displayid: pass iter to drm_find_displayid_extension()
drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct
drm_edid_ident
drm/displayid: add quirk to ignore DisplayID checksum errors
drivers/gpu/drm/drm_displayid.c | 58 ++++++++++++++++++------
drivers/gpu/drm/drm_displayid_internal.h | 2 +
include/drm/drm_edid.h | 6 +++
3 files changed, 51 insertions(+), 15 deletions(-)
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] drm/displayid: pass iter to drm_find_displayid_extension()
2025-10-28 20:07 [PATCH 0/3] drm/displayid: quirk incorrect DisplayID checksums Jani Nikula
@ 2025-10-28 20:07 ` Jani Nikula
2025-10-28 20:07 ` [PATCH 2/3] drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident Jani Nikula
2025-10-28 20:07 ` [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors Jani Nikula
2 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2025-10-28 20:07 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, tiago.martins.araujo, jani.nikula
It's more convenient to pass iter than a handful of its members to
drm_find_displayid_extension(), especially as we're about to add another
member.
Rename the function find_next_displayid_extension() while at it, to be
more descriptive.
Cc: Tiago Martins Araújo <tiago.martins.araujo@gmail.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/drm_displayid.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displayid.c
index b4fd43783c50..20b453d2b854 100644
--- a/drivers/gpu/drm/drm_displayid.c
+++ b/drivers/gpu/drm/drm_displayid.c
@@ -48,26 +48,24 @@ validate_displayid(const u8 *displayid, int length, int idx)
return base;
}
-static const u8 *drm_find_displayid_extension(const struct drm_edid *drm_edid,
- int *length, int *idx,
- int *ext_index)
+static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
{
const struct displayid_header *base;
const u8 *displayid;
- displayid = drm_edid_find_extension(drm_edid, DISPLAYID_EXT, ext_index);
+ displayid = drm_edid_find_extension(iter->drm_edid, DISPLAYID_EXT, &iter->ext_index);
if (!displayid)
return NULL;
/* EDID extensions block checksum isn't for us */
- *length = EDID_LENGTH - 1;
- *idx = 1;
+ iter->length = EDID_LENGTH - 1;
+ iter->idx = 1;
- base = validate_displayid(displayid, *length, *idx);
+ base = validate_displayid(displayid, iter->length, iter->idx);
if (IS_ERR(base))
return NULL;
- *length = *idx + sizeof(*base) + base->bytes;
+ iter->length = iter->idx + sizeof(*base) + base->bytes;
return displayid;
}
@@ -126,10 +124,7 @@ __displayid_iter_next(struct displayid_iter *iter)
/* The first section we encounter is the base section */
bool base_section = !iter->section;
- iter->section = drm_find_displayid_extension(iter->drm_edid,
- &iter->length,
- &iter->idx,
- &iter->ext_index);
+ iter->section = find_next_displayid_extension(iter);
if (!iter->section) {
iter->drm_edid = NULL;
return NULL;
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident
2025-10-28 20:07 [PATCH 0/3] drm/displayid: quirk incorrect DisplayID checksums Jani Nikula
2025-10-28 20:07 ` [PATCH 1/3] drm/displayid: pass iter to drm_find_displayid_extension() Jani Nikula
@ 2025-10-28 20:07 ` Jani Nikula
2025-10-28 20:07 ` [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors Jani Nikula
2 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2025-10-28 20:07 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, tiago.martins.araujo, jani.nikula
Add a convenience helper for initializing struct drm_edid_ident.
Cc: Tiago Martins Araújo <tiago.martins.araujo@gmail.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
include/drm/drm_edid.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
index 3d1aecfec9b2..04f7a7f1f108 100644
--- a/include/drm/drm_edid.h
+++ b/include/drm/drm_edid.h
@@ -340,6 +340,12 @@ struct drm_edid_ident {
const char *name;
};
+#define DRM_EDID_IDENT_INIT(_vend_chr_0, _vend_chr_1, _vend_chr_2, _product_id, _name) \
+{ \
+ .panel_id = drm_edid_encode_panel_id(_vend_chr_0, _vend_chr_1, _vend_chr_2, _product_id), \
+ .name = _name, \
+}
+
#define EDID_PRODUCT_ID(e) ((e)->prod_code[0] | ((e)->prod_code[1] << 8))
/* Short Audio Descriptor */
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors
2025-10-28 20:07 [PATCH 0/3] drm/displayid: quirk incorrect DisplayID checksums Jani Nikula
2025-10-28 20:07 ` [PATCH 1/3] drm/displayid: pass iter to drm_find_displayid_extension() Jani Nikula
2025-10-28 20:07 ` [PATCH 2/3] drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident Jani Nikula
@ 2025-10-28 20:07 ` Jani Nikula
2025-10-30 15:33 ` Alex Deucher
2 siblings, 1 reply; 6+ messages in thread
From: Jani Nikula @ 2025-10-28 20:07 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, intel-xe, tiago.martins.araujo, jani.nikula
Add a mechanism for DisplayID specific quirks, and add the first quirk
to ignore DisplayID section checksum errors.
It would be quite inconvenient to pass existing EDID quirks from
drm_edid.c for DisplayID parsing. Not all places doing DisplayID
iteration have the quirks readily available, and would have to pass it
in all places. Simply add a separate array of DisplayID specific EDID
quirks. We do end up checking it every time we iterate DisplayID blocks,
but hopefully the number of quirks remains small.
There are a few laptop models with DisplayID checksum failures, leading
to higher refresh rates only present in the DisplayID blocks being
ignored. Add a quirk for the panel in the machines.
Reported-by: Tiago Martins Araújo <tiago.martins.araujo@gmail.com>
Closes: https://lore.kernel.org/r/CACRbrPGvLP5LANXuFi6z0S7XMbAG4X5y2YOLBDxfOVtfGGqiKQ@mail.gmail.com
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14703
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/drm_displayid.c | 41 +++++++++++++++++++++---
drivers/gpu/drm/drm_displayid_internal.h | 2 ++
2 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displayid.c
index 20b453d2b854..58d0bb6d2676 100644
--- a/drivers/gpu/drm/drm_displayid.c
+++ b/drivers/gpu/drm/drm_displayid.c
@@ -9,6 +9,34 @@
#include "drm_crtc_internal.h"
#include "drm_displayid_internal.h"
+enum {
+ QUIRK_IGNORE_CHECKSUM,
+};
+
+struct displayid_quirk {
+ const struct drm_edid_ident ident;
+ u8 quirks;
+};
+
+static const struct displayid_quirk quirks[] = {
+ {
+ .ident = DRM_EDID_IDENT_INIT('C', 'S', 'O', 5142, "MNE007ZA1-5"),
+ .quirks = BIT(QUIRK_IGNORE_CHECKSUM),
+ },
+};
+
+static u8 get_quirks(const struct drm_edid *drm_edid)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(quirks); i++) {
+ if (drm_edid_match(drm_edid, &quirks[i].ident))
+ return quirks[i].quirks;
+ }
+
+ return 0;
+}
+
static const struct displayid_header *
displayid_get_header(const u8 *displayid, int length, int index)
{
@@ -23,7 +51,7 @@ displayid_get_header(const u8 *displayid, int length, int index)
}
static const struct displayid_header *
-validate_displayid(const u8 *displayid, int length, int idx)
+validate_displayid(const u8 *displayid, int length, int idx, bool ignore_checksum)
{
int i, dispid_length;
u8 csum = 0;
@@ -41,8 +69,11 @@ validate_displayid(const u8 *displayid, int length, int idx)
for (i = 0; i < dispid_length; i++)
csum += displayid[idx + i];
if (csum) {
- DRM_NOTE("DisplayID checksum invalid, remainder is %d\n", csum);
- return ERR_PTR(-EINVAL);
+ DRM_NOTE("DisplayID checksum invalid, remainder is %d%s\n", csum,
+ ignore_checksum ? " (ignoring)" : "");
+
+ if (!ignore_checksum)
+ return ERR_PTR(-EINVAL);
}
return base;
@@ -52,6 +83,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
{
const struct displayid_header *base;
const u8 *displayid;
+ bool ignore_checksum = iter->quirks & BIT(QUIRK_IGNORE_CHECKSUM);
displayid = drm_edid_find_extension(iter->drm_edid, DISPLAYID_EXT, &iter->ext_index);
if (!displayid)
@@ -61,7 +93,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
iter->length = EDID_LENGTH - 1;
iter->idx = 1;
- base = validate_displayid(displayid, iter->length, iter->idx);
+ base = validate_displayid(displayid, iter->length, iter->idx, ignore_checksum);
if (IS_ERR(base))
return NULL;
@@ -76,6 +108,7 @@ void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
memset(iter, 0, sizeof(*iter));
iter->drm_edid = drm_edid;
+ iter->quirks = get_quirks(drm_edid);
}
static const struct displayid_block *
diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h
index 957dd0619f5c..5b1b32f73516 100644
--- a/drivers/gpu/drm/drm_displayid_internal.h
+++ b/drivers/gpu/drm/drm_displayid_internal.h
@@ -167,6 +167,8 @@ struct displayid_iter {
u8 version;
u8 primary_use;
+
+ u8 quirks;
};
void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors
2025-10-28 20:07 ` [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors Jani Nikula
@ 2025-10-30 15:33 ` Alex Deucher
2025-11-04 12:54 ` Jani Nikula
0 siblings, 1 reply; 6+ messages in thread
From: Alex Deucher @ 2025-10-30 15:33 UTC (permalink / raw)
To: Jani Nikula; +Cc: dri-devel, intel-gfx, intel-xe, tiago.martins.araujo
On Tue, Oct 28, 2025 at 5:26 PM Jani Nikula <jani.nikula@intel.com> wrote:
>
> Add a mechanism for DisplayID specific quirks, and add the first quirk
> to ignore DisplayID section checksum errors.
>
> It would be quite inconvenient to pass existing EDID quirks from
> drm_edid.c for DisplayID parsing. Not all places doing DisplayID
> iteration have the quirks readily available, and would have to pass it
> in all places. Simply add a separate array of DisplayID specific EDID
> quirks. We do end up checking it every time we iterate DisplayID blocks,
> but hopefully the number of quirks remains small.
>
> There are a few laptop models with DisplayID checksum failures, leading
> to higher refresh rates only present in the DisplayID blocks being
> ignored. Add a quirk for the panel in the machines.
>
> Reported-by: Tiago Martins Araújo <tiago.martins.araujo@gmail.com>
> Closes: https://lore.kernel.org/r/CACRbrPGvLP5LANXuFi6z0S7XMbAG4X5y2YOLBDxfOVtfGGqiKQ@mail.gmail.com
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14703
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
> ---
> drivers/gpu/drm/drm_displayid.c | 41 +++++++++++++++++++++---
> drivers/gpu/drm/drm_displayid_internal.h | 2 ++
> 2 files changed, 39 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displayid.c
> index 20b453d2b854..58d0bb6d2676 100644
> --- a/drivers/gpu/drm/drm_displayid.c
> +++ b/drivers/gpu/drm/drm_displayid.c
> @@ -9,6 +9,34 @@
> #include "drm_crtc_internal.h"
> #include "drm_displayid_internal.h"
>
> +enum {
> + QUIRK_IGNORE_CHECKSUM,
> +};
> +
> +struct displayid_quirk {
> + const struct drm_edid_ident ident;
> + u8 quirks;
> +};
> +
> +static const struct displayid_quirk quirks[] = {
> + {
> + .ident = DRM_EDID_IDENT_INIT('C', 'S', 'O', 5142, "MNE007ZA1-5"),
> + .quirks = BIT(QUIRK_IGNORE_CHECKSUM),
> + },
> +};
> +
> +static u8 get_quirks(const struct drm_edid *drm_edid)
> +{
> + int i;
> +
> + for (i = 0; i < ARRAY_SIZE(quirks); i++) {
> + if (drm_edid_match(drm_edid, &quirks[i].ident))
> + return quirks[i].quirks;
> + }
> +
> + return 0;
> +}
> +
> static const struct displayid_header *
> displayid_get_header(const u8 *displayid, int length, int index)
> {
> @@ -23,7 +51,7 @@ displayid_get_header(const u8 *displayid, int length, int index)
> }
>
> static const struct displayid_header *
> -validate_displayid(const u8 *displayid, int length, int idx)
> +validate_displayid(const u8 *displayid, int length, int idx, bool ignore_checksum)
> {
> int i, dispid_length;
> u8 csum = 0;
> @@ -41,8 +69,11 @@ validate_displayid(const u8 *displayid, int length, int idx)
> for (i = 0; i < dispid_length; i++)
> csum += displayid[idx + i];
> if (csum) {
> - DRM_NOTE("DisplayID checksum invalid, remainder is %d\n", csum);
> - return ERR_PTR(-EINVAL);
> + DRM_NOTE("DisplayID checksum invalid, remainder is %d%s\n", csum,
> + ignore_checksum ? " (ignoring)" : "");
> +
> + if (!ignore_checksum)
> + return ERR_PTR(-EINVAL);
> }
>
> return base;
> @@ -52,6 +83,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
> {
> const struct displayid_header *base;
> const u8 *displayid;
> + bool ignore_checksum = iter->quirks & BIT(QUIRK_IGNORE_CHECKSUM);
>
> displayid = drm_edid_find_extension(iter->drm_edid, DISPLAYID_EXT, &iter->ext_index);
> if (!displayid)
> @@ -61,7 +93,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
> iter->length = EDID_LENGTH - 1;
> iter->idx = 1;
>
> - base = validate_displayid(displayid, iter->length, iter->idx);
> + base = validate_displayid(displayid, iter->length, iter->idx, ignore_checksum);
> if (IS_ERR(base))
> return NULL;
>
> @@ -76,6 +108,7 @@ void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
> memset(iter, 0, sizeof(*iter));
>
> iter->drm_edid = drm_edid;
> + iter->quirks = get_quirks(drm_edid);
> }
>
> static const struct displayid_block *
> diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h
> index 957dd0619f5c..5b1b32f73516 100644
> --- a/drivers/gpu/drm/drm_displayid_internal.h
> +++ b/drivers/gpu/drm/drm_displayid_internal.h
> @@ -167,6 +167,8 @@ struct displayid_iter {
>
> u8 version;
> u8 primary_use;
> +
> + u8 quirks;
> };
>
> void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
> --
> 2.47.3
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors
2025-10-30 15:33 ` Alex Deucher
@ 2025-11-04 12:54 ` Jani Nikula
0 siblings, 0 replies; 6+ messages in thread
From: Jani Nikula @ 2025-11-04 12:54 UTC (permalink / raw)
To: Alex Deucher; +Cc: dri-devel, intel-gfx, intel-xe, tiago.martins.araujo
On Thu, 30 Oct 2025, Alex Deucher <alexdeucher@gmail.com> wrote:
> On Tue, Oct 28, 2025 at 5:26 PM Jani Nikula <jani.nikula@intel.com> wrote:
>>
>> Add a mechanism for DisplayID specific quirks, and add the first quirk
>> to ignore DisplayID section checksum errors.
>>
>> It would be quite inconvenient to pass existing EDID quirks from
>> drm_edid.c for DisplayID parsing. Not all places doing DisplayID
>> iteration have the quirks readily available, and would have to pass it
>> in all places. Simply add a separate array of DisplayID specific EDID
>> quirks. We do end up checking it every time we iterate DisplayID blocks,
>> but hopefully the number of quirks remains small.
>>
>> There are a few laptop models with DisplayID checksum failures, leading
>> to higher refresh rates only present in the DisplayID blocks being
>> ignored. Add a quirk for the panel in the machines.
>>
>> Reported-by: Tiago Martins Araújo <tiago.martins.araujo@gmail.com>
>> Closes: https://lore.kernel.org/r/CACRbrPGvLP5LANXuFi6z0S7XMbAG4X5y2YOLBDxfOVtfGGqiKQ@mail.gmail.com
>> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14703
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Series is:
> Acked-by: Alex Deucher <alexander.deucher@amd.com>
Thanks, pushed to drm-misc-next.
BR,
Jani.
>
>> ---
>> drivers/gpu/drm/drm_displayid.c | 41 +++++++++++++++++++++---
>> drivers/gpu/drm/drm_displayid_internal.h | 2 ++
>> 2 files changed, 39 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displayid.c
>> index 20b453d2b854..58d0bb6d2676 100644
>> --- a/drivers/gpu/drm/drm_displayid.c
>> +++ b/drivers/gpu/drm/drm_displayid.c
>> @@ -9,6 +9,34 @@
>> #include "drm_crtc_internal.h"
>> #include "drm_displayid_internal.h"
>>
>> +enum {
>> + QUIRK_IGNORE_CHECKSUM,
>> +};
>> +
>> +struct displayid_quirk {
>> + const struct drm_edid_ident ident;
>> + u8 quirks;
>> +};
>> +
>> +static const struct displayid_quirk quirks[] = {
>> + {
>> + .ident = DRM_EDID_IDENT_INIT('C', 'S', 'O', 5142, "MNE007ZA1-5"),
>> + .quirks = BIT(QUIRK_IGNORE_CHECKSUM),
>> + },
>> +};
>> +
>> +static u8 get_quirks(const struct drm_edid *drm_edid)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < ARRAY_SIZE(quirks); i++) {
>> + if (drm_edid_match(drm_edid, &quirks[i].ident))
>> + return quirks[i].quirks;
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static const struct displayid_header *
>> displayid_get_header(const u8 *displayid, int length, int index)
>> {
>> @@ -23,7 +51,7 @@ displayid_get_header(const u8 *displayid, int length, int index)
>> }
>>
>> static const struct displayid_header *
>> -validate_displayid(const u8 *displayid, int length, int idx)
>> +validate_displayid(const u8 *displayid, int length, int idx, bool ignore_checksum)
>> {
>> int i, dispid_length;
>> u8 csum = 0;
>> @@ -41,8 +69,11 @@ validate_displayid(const u8 *displayid, int length, int idx)
>> for (i = 0; i < dispid_length; i++)
>> csum += displayid[idx + i];
>> if (csum) {
>> - DRM_NOTE("DisplayID checksum invalid, remainder is %d\n", csum);
>> - return ERR_PTR(-EINVAL);
>> + DRM_NOTE("DisplayID checksum invalid, remainder is %d%s\n", csum,
>> + ignore_checksum ? " (ignoring)" : "");
>> +
>> + if (!ignore_checksum)
>> + return ERR_PTR(-EINVAL);
>> }
>>
>> return base;
>> @@ -52,6 +83,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
>> {
>> const struct displayid_header *base;
>> const u8 *displayid;
>> + bool ignore_checksum = iter->quirks & BIT(QUIRK_IGNORE_CHECKSUM);
>>
>> displayid = drm_edid_find_extension(iter->drm_edid, DISPLAYID_EXT, &iter->ext_index);
>> if (!displayid)
>> @@ -61,7 +93,7 @@ static const u8 *find_next_displayid_extension(struct displayid_iter *iter)
>> iter->length = EDID_LENGTH - 1;
>> iter->idx = 1;
>>
>> - base = validate_displayid(displayid, iter->length, iter->idx);
>> + base = validate_displayid(displayid, iter->length, iter->idx, ignore_checksum);
>> if (IS_ERR(base))
>> return NULL;
>>
>> @@ -76,6 +108,7 @@ void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
>> memset(iter, 0, sizeof(*iter));
>>
>> iter->drm_edid = drm_edid;
>> + iter->quirks = get_quirks(drm_edid);
>> }
>>
>> static const struct displayid_block *
>> diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h
>> index 957dd0619f5c..5b1b32f73516 100644
>> --- a/drivers/gpu/drm/drm_displayid_internal.h
>> +++ b/drivers/gpu/drm/drm_displayid_internal.h
>> @@ -167,6 +167,8 @@ struct displayid_iter {
>>
>> u8 version;
>> u8 primary_use;
>> +
>> + u8 quirks;
>> };
>>
>> void displayid_iter_edid_begin(const struct drm_edid *drm_edid,
>> --
>> 2.47.3
>>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-04 12:54 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-28 20:07 [PATCH 0/3] drm/displayid: quirk incorrect DisplayID checksums Jani Nikula
2025-10-28 20:07 ` [PATCH 1/3] drm/displayid: pass iter to drm_find_displayid_extension() Jani Nikula
2025-10-28 20:07 ` [PATCH 2/3] drm/edid: add DRM_EDID_IDENT_INIT() to initialize struct drm_edid_ident Jani Nikula
2025-10-28 20:07 ` [PATCH 3/3] drm/displayid: add quirk to ignore DisplayID checksum errors Jani Nikula
2025-10-30 15:33 ` Alex Deucher
2025-11-04 12:54 ` Jani Nikula
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).