All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shankar, Uma" <uma.shankar@intel.com>
To: "Sharma, Shashank" <shashank.sharma@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Cc: "Syrjala, Ville" <ville.syrjala@intel.com>,
	"Lankhorst, Maarten" <maarten.lankhorst@intel.com>
Subject: Re: [v2 03/14] drm: Parse HDR metadata info from EDID
Date: Tue, 8 Jan 2019 05:59:37 +0000	[thread overview]
Message-ID: <E7C9878FBA1C6D42A1CA3F62AEB6945F81E9B8D9@BGSMSX104.gar.corp.intel.com> (raw)
In-Reply-To: <13a362d0-5a85-283e-b11d-b2934f4da651@intel.com>



>-----Original Message-----
>From: Sharma, Shashank
>Sent: Tuesday, January 8, 2019 11:26 AM
>To: Shankar, Uma <uma.shankar@intel.com>; intel-gfx@lists.freedesktop.org;
>dri-devel@lists.freedesktop.org
>Cc: Syrjala, Ville <ville.syrjala@intel.com>; Lankhorst, Maarten
><maarten.lankhorst@intel.com>
>Subject: Re: [v2 03/14] drm: Parse HDR metadata info from EDID
>
>Regards
>
>Shashank
>
>
>On 1/8/2019 11:10 AM, Shankar, Uma wrote:
>>
>>> -----Original Message-----
>>> From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On
>>> Behalf Of Sharma, Shashank
>>> Sent: Thursday, December 20, 2018 11:47 PM
>>> To: Shankar, Uma <uma.shankar@intel.com>;
>>> intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org
>>> Cc: Syrjala, Ville <ville.syrjala@intel.com>; Lankhorst, Maarten
>>> <maarten.lankhorst@intel.com>
>>> Subject: Re: [v2 03/14] drm: Parse HDR metadata info from EDID
>>>
>>> Regards
>>>
>>> Shashank
>>>
>>>
>>> On 12/12/2018 2:08 AM, Uma Shankar wrote:
>>>> HDR metadata block is introduced in CEA-861.3 spec.
>>>> Parsing the same to get the panel's HDR metadata.
>>>>
>>>> v2: Rebase and added Ville's POC changes to the patch.
>>>>
>>>> Signed-off-by: Uma Shankar <uma.shankar@intel.com>
>>>> ---
>>>>    drivers/gpu/drm/drm_edid.c | 45
>>> +++++++++++++++++++++++++++++++++++++++++++++
>>>>    1 file changed, 45 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>>>> index 106fd38..d12b74e 100644
>>>> --- a/drivers/gpu/drm/drm_edid.c
>>>> +++ b/drivers/gpu/drm/drm_edid.c
>>>> @@ -3818,6 +3818,49 @@ static void
>>>> fixup_detailed_cea_mode_clock(struct
>>> drm_display_mode *mode)
>>>>    	mode->clock = clock;
>>>>    }
>>> I guess the previous patch (or a art of previous patch) should be
>>> merged in this patch.
>> Sure, will update this.
>>
>>>> +static bool cea_db_is_hdmi_hdr_metadata_block(const u8 *db) {
>>>> +	if (cea_db_tag(db) != DATA_BLOCK_EXTENDED_TAG)
>>>> +		return false;
>>>> +
>>>> +	if (db[1] != HDR_STATIC_METADATA_BLOCK)
>>>> +		return false;
>>>> +
>>>> +	return true;
>>>> +}
>>>> +
>>>> +static uint16_t eotf_supported(const u8 *edid_ext)
>>> Why uint16 ? why not uint8_t ? this is clearly one byte.
>> Ok, will change this.
>>
>>>> +{
>>>> +
>>>> +	return edid_ext[2] &
>>>> +		(BIT(HDMI_EOTF_TRADITIONAL_GAMMA_SDR) |
>>> Should we bother about SDR bit at all ? Why not just check HDR bits ?
>> As per spec, all of these are EOTF types. So lets update whatever is supported.
>> User should put correct EOTF for HDR from this list.
>>
>>>> +		 BIT(HDMI_EOTF_TRADITIONAL_GAMMA_HDR) |
>>>> +		 BIT(HDMI_EOTF_SMPTE_ST2084));
>>>> +
>>>> +}
>>>> +
>>>> +static uint16_t hdr_metadata_type(const u8 *edid_ext) {
>>> Same uint8_t stuff
>> Ok. Will update.
>>
>>>> +
>>>> +	return edid_ext[3] &
>>>> +		BIT(HDMI_STATIC_METADATA_TYPE1);
>>>> +}
>>>> +
>>>> +static void
>>>> +drm_parse_hdr_metadata_block(struct drm_connector *connector, const
>>>> +u8 *db) {
>>>> +	uint16_t len;
>>>> +
>>>> +	len = cea_db_payload_len(db);
>>> Length is  incorrect here for extended tag blocks, as this function
>>> doesn't account the extended tag byte's size. So the payload length
>>> is looking for is len - 1. May be a good time to add
>>> cea_extended_db_payload_len() ?
>> As per spec, the definition says length after this byte so it factors
>> the extended tag byte well, IIUC. Please correct me if my understanding is
>wrong.
>This is how the data is arranged in a normal CEA DB and Extended CEA DB
>+--------------------+   +-----------------+
>|Tag|Length= 3     |   |Tag|Length=3     |
>+--------------------+   +-----------------+
>| Data               |   |Extended tag     |
>+--------------------+   +-----------------+
>| Data               |   |Data             |
>+--------------------+   +-----------------+
>| Data               |   |Data             |
>+--------------------+   +-----------------+
>
>This function cea_db_payload_len() was written before the CEA extended blocks
>were introduced, so it is unaware of Extended tag code, and assumes its a part of
>data. But in case of extended tag block the actual data length is 3 -1 = 2. You can
>have a look at how we are parsing the YCBCR 4:2:0 blocks. That's why I made this
>comment "may be a good time to add cea_extended_db_payload_len() function"
>or enhance the existing function to reflect the extended tag.

Oh ok got it, thanks for the explanation. Will update the patch accordingly.

Regards,
Uma Shankar

>- Shashank
>>
>> Regards,
>> Uma Shankar
>>
>>>> +	connector->hdr_metadata.eotf = eotf_supported(db);
>>>> +	connector->hdr_metadata.metadata_type = hdr_metadata_type(db);
>>>> +
>>>> +	if (len >= 5)
>>>> +		connector->hdr_metadata.max_fall = db[5];
>>>> +	if (len >= 4)
>>>> +		connector->hdr_metadata.max_cll = db[4]; }
>>>> +
>>>>    static void
>>>>    drm_parse_hdmi_vsdb_audio(struct drm_connector *connector, const u8
>*db)
>>>>    {
>>>> @@ -4468,6 +4511,8 @@ static void drm_parse_cea_ext(struct
>>>> drm_connector
>>> *connector,
>>>>    			drm_parse_hdmi_forum_vsdb(connector, db);
>>>>    		if (cea_db_is_y420cmdb(db))
>>>>    			drm_parse_y420cmdb_bitmap(connector, db);
>>>> +		if (cea_db_is_hdmi_hdr_metadata_block(db))
>>>> +			drm_parse_hdr_metadata_block(connector, db);
>>>>    	}
>>>>    }
>>>>
>>> - Shashank
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2019-01-08  5:59 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-11 20:38 [v2 00/14] Add HDR Metadata Parsing and handling in DRM layer Uma Shankar
2018-12-11 20:19 ` ✗ Fi.CI.BAT: failure for Add HDR Metadata Parsing and handling in DRM layer (rev2) Patchwork
2018-12-11 20:38 ` [v2 01/14] drm: Add HDR source metadata property Uma Shankar
2018-12-20 17:50   ` Sharma, Shashank
2019-01-08  5:29     ` Shankar, Uma
2018-12-11 20:38 ` [v2 02/14] drm: Add CEA extended tag blocks and HDR bitfield macros Uma Shankar
2018-12-20 18:07   ` Sharma, Shashank
2019-01-08  5:35     ` Shankar, Uma
2018-12-11 20:38 ` [v2 03/14] drm: Parse HDR metadata info from EDID Uma Shankar
2018-12-20 18:17   ` Sharma, Shashank
2019-01-08  5:40     ` Shankar, Uma
2019-01-08  5:56       ` Sharma, Shashank
2019-01-08  5:59         ` Shankar, Uma [this message]
2018-12-11 20:38 ` [v2 04/14] drm: Parse Colorimetry data block " Uma Shankar
2018-12-20 18:23   ` Sharma, Shashank
2019-01-08  6:40     ` Shankar, Uma
2019-01-08  6:56       ` Sharma, Shashank
2019-01-08  7:12         ` Shankar, Uma
2018-12-11 20:38 ` [v2 05/14] drm/i915: Attach HDR metadata property to connector Uma Shankar
2018-12-20 18:25   ` Sharma, Shashank
2019-01-08  6:42     ` Shankar, Uma
2018-12-11 20:38 ` [v2 06/14] drm: Add HDR capability field to plane structure Uma Shankar
2018-12-11 20:38 ` [v2 07/14] drm: Implement HDR source metadata set and get property handling Uma Shankar
2018-12-20 18:33   ` Sharma, Shashank
2019-01-08  6:48     ` Shankar, Uma
2018-12-11 20:38 ` [v2 08/14] drm: Enable HDR infoframe support Uma Shankar
2018-12-21  8:40   ` Sharma, Shashank
2019-01-08  6:53     ` Shankar, Uma
2018-12-11 20:38 ` [v2 09/14] drm/i915: Write HDR infoframe and send to panel Uma Shankar
2018-12-21  8:43   ` Sharma, Shashank
2019-01-08  6:55     ` Shankar, Uma
2018-12-11 20:38 ` [v2 10/14] drm/i915: [DO NOT MERGE] hack for glk board outputs Uma Shankar
2018-12-11 20:38 ` [v2 11/14] drm/i915: Add HLG EOTF Uma Shankar
2018-12-21  8:47   ` Sharma, Shashank
2019-01-08  6:56     ` Shankar, Uma
2018-12-11 20:38 ` [v2 12/14] drm/i915: Enable infoframes on GLK+ for HDR Uma Shankar
2018-12-21  8:53   ` Sharma, Shashank
2018-12-11 20:38 ` [v2 13/14] drm/i915:Enabled Modeset when HDR Infoframe changes Uma Shankar
2018-12-11 20:38 ` [v2 14/14] drivers/video: Constantify function argument for HDMI infoframe log Uma Shankar
2018-12-21  8:58   ` Sharma, Shashank
2019-01-08  7:29     ` Shankar, Uma

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=E7C9878FBA1C6D42A1CA3F62AEB6945F81E9B8D9@BGSMSX104.gar.corp.intel.com \
    --to=uma.shankar@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=maarten.lankhorst@intel.com \
    --cc=shashank.sharma@intel.com \
    --cc=ville.syrjala@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.