From: Jani Nikula <jani.nikula@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/4] drm/edid: add drm_edid_get_product_id()
Date: Tue, 09 Apr 2024 10:42:15 +0300 [thread overview]
Message-ID: <871q7f9e3s.fsf@intel.com> (raw)
In-Reply-To: <ZhQzM2bCCKDr0IsY@intel.com>
On Mon, 08 Apr 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Thu, Mar 21, 2024 at 12:05:09PM +0200, Jani Nikula wrote:
>> Add a struct drm_edid based function to get the vendor and product ID
>> from an EDID. Add a separate struct for defining this part of the EDID,
>> with defined byte order for product code and serial number.
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>> drivers/gpu/drm/drm_edid.c | 15 +++++++++++++++
>> include/drm/drm_edid.h | 25 ++++++++++++++++++++-----
>> 2 files changed, 35 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index ea77577a3786..626a0e24e66a 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -2756,6 +2756,21 @@ const struct drm_edid *drm_edid_read(struct drm_connector *connector)
>> }
>> EXPORT_SYMBOL(drm_edid_read);
>>
>> +/**
>> + * drm_edid_get_product_id - Get the vendor and product identification
>> + * @drm_edid: EDID
>> + * @id: Where to place the product id
>> + */
>> +void drm_edid_get_product_id(const struct drm_edid *drm_edid,
>> + struct drm_edid_product_id *id)
>> +{
>> + if (drm_edid && drm_edid->edid && drm_edid->size >= EDID_LENGTH)
>> + memcpy(id, &drm_edid->edid->product_id, sizeof(*id));
>> + else
>> + memset(id, 0, sizeof(*id));
>> +}
>> +EXPORT_SYMBOL(drm_edid_get_product_id);
>> +
>> /**
>> * drm_edid_get_panel_id - Get a panel's ID from EDID
>> * @drm_edid: EDID that contains panel ID.
>> diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h
>> index 6f65bbf655a1..7911a2f8a672 100644
>> --- a/include/drm/drm_edid.h
>> +++ b/include/drm/drm_edid.h
>> @@ -272,14 +272,27 @@ struct detailed_timing {
>> #define DRM_EDID_DSC_MAX_SLICES 0xf
>> #define DRM_EDID_DSC_TOTAL_CHUNK_KBYTES 0x3f
>>
>> +struct drm_edid_product_id {
>> + u8 manufacturer_name[2];
>
> __be16?
Yeah, why not.
BR,
Jani.
>
>> + __le16 product_code;
>> + __le32 serial_number;
>> + u8 week_of_manufacture;
>> + u8 year_of_manufacture;
>> +} __packed;
>> +
>> struct edid {
>> u8 header[8];
>> /* Vendor & product info */
>> - u8 mfg_id[2];
>> - u8 prod_code[2];
>> - u32 serial; /* FIXME: byte order */
>> - u8 mfg_week;
>> - u8 mfg_year;
>> + union {
>> + struct drm_edid_product_id product_id;
>> + struct {
>> + u8 mfg_id[2];
>> + u8 prod_code[2];
>> + u32 serial; /* FIXME: byte order */
>> + u8 mfg_week;
>> + u8 mfg_year;
>> + } __packed;
>> + } __packed;
>> /* EDID version */
>> u8 version;
>> u8 revision;
>> @@ -466,6 +479,8 @@ int drm_edid_connector_update(struct drm_connector *connector,
>> const struct drm_edid *edid);
>> int drm_edid_connector_add_modes(struct drm_connector *connector);
>> bool drm_edid_is_digital(const struct drm_edid *drm_edid);
>> +void drm_edid_get_product_id(const struct drm_edid *drm_edid,
>> + struct drm_edid_product_id *id);
>>
>> const u8 *drm_find_edid_extension(const struct drm_edid *drm_edid,
>> int ext_id, int *ext_index);
>> --
>> 2.39.2
--
Jani Nikula, Intel
next prev parent reply other threads:[~2024-04-09 7:42 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-21 10:05 [PATCH 0/4] drm/edid & drm/i915: vendor and product id logging improvements Jani Nikula
2024-03-21 10:05 ` [PATCH 1/4] drm/edid: add drm_edid_get_product_id() Jani Nikula
2024-04-08 18:10 ` Ville Syrjälä
2024-04-09 7:42 ` Jani Nikula [this message]
2024-03-21 10:05 ` [PATCH 2/4] drm/edid: add drm_edid_print_product_id() Jani Nikula
2024-04-08 18:05 ` Ville Syrjälä
2024-04-09 9:41 ` Jani Nikula
2024-03-21 10:05 ` [PATCH 3/4] drm/i915/bios: switch to struct drm_edid and struct drm_edid_product_id Jani Nikula
2024-03-21 10:05 ` [PATCH 4/4] drm/i915/bios: return drm_edid_product_id from get_lvds_pnp_id() Jani Nikula
2024-04-02 8:49 ` [PATCH 0/4] drm/edid & drm/i915: vendor and product id logging improvements Jani Nikula
2024-04-08 12:34 ` Melissa Wen
2024-04-08 13:05 ` Jani Nikula
2024-04-08 13:30 ` Melissa Wen
2024-04-08 13:37 ` Jani Nikula
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=871q7f9e3s.fsf@intel.com \
--to=jani.nikula@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox