dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Sharma, Shashank" <shashank.sharma@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: Jose Abreu <jose.abreu@synopsys.com>,
	intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 03/11] drm: parse ycbcr 420 vdb block
Date: Tue, 9 May 2017 14:04:55 +0530	[thread overview]
Message-ID: <1f62f34e-d2d8-6e03-6429-bb8626d99d9a@intel.com> (raw)
In-Reply-To: <20170508170934.GT12629@intel.com>

Regards

Shashank


On 5/8/2017 10:39 PM, Ville Syrjälä wrote:
> On Mon, May 08, 2017 at 10:11:53PM +0530, Sharma, Shashank wrote:
>> Regards
>>
>> Shashank
>>
>>
>> On 5/8/2017 9:54 PM, Ville Syrjälä wrote:
>>> On Fri, Apr 07, 2017 at 07:39:20PM +0300, Shashank Sharma wrote:
>>>> From: Jose Abreu <jose.abreu@synopsys.com>
>>>>
>>>> HDMI 2.0 spec adds support for ycbcr420 subsampled output.
>>>> CEA-861-F adds two new blocks in EDID, to provide information about
>>>> sink's support for ycbcr420 output.
>>>>
>>>> These new blocks are:
>>>> - ycbcr420 video data (vdb) block: video modes which can be supported
>>>>     only in ycbcr420 output mode.
>>>> - ycbcr420 video capability data (vcb) block: video modes which can be
>>>>     support in ycbcr420 output mode also (along with RGB, YCBCR 444/422 etc)
>>>>
>>>> This patch adds parsing and handling of ycbcr420-vdb in the DRM
>>>> layer.
>>>>
>>>> This patch is a modified version of Jose's RFC patch:
>>>> https://patchwork.kernel.org/patch/9492327/
>>>> so the authorship is maintained.
>>>>
>>>> Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
>>>> Signed-off-by: Jose Abreu <joabreu@synopsys.com>
>>>> Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
>>>> ---
>>>>    drivers/gpu/drm/drm_edid.c  | 54 +++++++++++++++++++++++++++++++++++++++++++--
>>>>    drivers/gpu/drm/drm_modes.c | 10 +++++++--
>>>>    include/drm/drm_connector.h |  1 +
>>>>    include/uapi/drm/drm_mode.h |  6 +++++
>>>>    4 files changed, 67 insertions(+), 4 deletions(-)
>>> <snip>
>>>> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
>>>> index 4eeda12..cef76b2 100644
>>>> --- a/include/drm/drm_connector.h
>>>> +++ b/include/drm/drm_connector.h
>>>> @@ -199,6 +199,7 @@ struct drm_display_info {
>>>>    #define DRM_COLOR_FORMAT_RGB444		(1<<0)
>>>>    #define DRM_COLOR_FORMAT_YCRCB444	(1<<1)
>>>>    #define DRM_COLOR_FORMAT_YCRCB422	(1<<2)
>>>> +#define DRM_COLOR_FORMAT_YCRCB420	(1<<2)
>>>>    
>>>>    	/**
>>>>    	 * @color_formats: HDMI Color formats, selects between RGB and YCrCb
>>>> diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
>>>> index 8c67fc0..1e74d8e 100644
>>>> --- a/include/uapi/drm/drm_mode.h
>>>> +++ b/include/uapi/drm/drm_mode.h
>>>> @@ -84,6 +84,12 @@ extern "C" {
>>>>    #define  DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH	(6<<14)
>>>>    #define  DRM_MODE_FLAG_3D_TOP_AND_BOTTOM	(7<<14)
>>>>    #define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF	(8<<14)
>>>> +/*
>>>> + * HDMI 2.0
>>>> + */
>>>> +#define DRM_MODE_FLAG_420_MASK			(0x03<<23)
>>>> +#define  DRM_MODE_FLAG_420			(1<<23)
>>>> +#define  DRM_MODE_FLAG_420_ONLY			(1<<24)
>>> Adding those would again break the uabi. We can't add new mode flags
>>> without some kind of client cap.
>>> But I think we agreed that new user
>>> space visible mode flags aren't needed, and instad we can keep it all
>>> internal?
>> Yep you are right, we had decided to keep it internal, and this whole
>> patch series is implemented in such a way only, to control everything
>> through the HDMI output property itself.
>> But may be I slightly misunderstood that we shouldn't add the flags bits
>> all together, and I added this flag to differentiate between YCBCR420
>> and notmal modes.
>> Can you please suggest me on:
>> - how to differentiate a YCBCR420 mode with normal mode ? I still need
>> to add a flag, but not expose it into uapi layer.
> I guess we can just tack on a few new bools to the end of
> drm_display_mode. And then when we get the mode passed in by the user
> we'll have to check whether that mode matches any CEA mode and
> then look up the correct YCbCr 4:2:0 mode for it.
seems good to me, I can add a is_ycbcr420 flag, and we need not to 
bother about converting it to drm_mode_modeinfo as we are keeping it 
internal.
>
> Hmm. Actually, that probably means that it isn't sufficient to
> actually store this information on the modes we have on the connector's
> mode list, because that list has been filtered and so may not actually
> have all the modes that were declared in the EDID.
I dint get this point,  Why do you think its not sufficient ? Do we need 
to care about the modes which are getting rejected from the driver ?
I guess they cant be applied anyways.  Do you think we will miss some of 
the YCBCR modes due to mode filtering ?
> So I'm thinking we
> should perhaps make the bitmap parsed from the Y402CMDB index the
> full CEA mode list. That we can just lookup the matching VIC for
> the user provided mode and check whether the bit for that VIC
> indicates 4:2:0 support. And maybe we can handle Y420VDB in exactly
> the same way (ie. just a second bitmap). That would have the additional
> nice feature that the maximum length of those bitmaps is well defined
> (at most 256 VICs).
>
We can do this, but do we really need 2 bitmaps ? A YCBCR420 support is 
same whether its coming from VCB or VDB, we just need a ORing of these 
supports.
Even in the current implementation, I have been using only the 
YCBCR420_MASK to identify support.

- Shashank
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-05-09  8:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07 16:39 [PATCH 00/11] HDMI YCBCR output handling in DRM layer Shashank Sharma
2017-04-07 16:39 ` [PATCH 01/11] drm: Add HDMI 2.0 VIC support for AVI info-frames Shashank Sharma
2017-04-10  9:47   ` Andrzej Hajda
2017-04-19 16:02     ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 02/11] drm/edid: Complete CEA modedb(VIC 1-107) Shashank Sharma
2017-05-08 16:22   ` Ville Syrjälä
2017-05-08 16:44     ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 03/11] drm: parse ycbcr 420 vdb block Shashank Sharma
2017-05-08 16:24   ` Ville Syrjälä
2017-05-08 16:41     ` Sharma, Shashank
2017-05-08 17:09       ` Ville Syrjälä
2017-05-09  8:34         ` Sharma, Shashank [this message]
2017-05-09 15:28           ` Ville Syrjälä
2017-05-10  5:01             ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 04/11] drm: parse ycbcr420 vcb block Shashank Sharma
2017-04-08 15:14   ` kbuild test robot
2017-04-08 17:43   ` Emil Velikov
2017-04-19 16:04     ` Sharma, Shashank
2017-05-08 16:58   ` Ville Syrjälä
2017-05-09  8:19     ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 05/11] drm: parse ycbcr 420 deep color information Shashank Sharma
2017-04-08 18:29   ` kbuild test robot
2017-04-07 16:39 ` [PATCH 06/11] drm: create hdmi output property Shashank Sharma
2017-04-08 20:53   ` kbuild test robot
2017-04-12  9:58   ` Jose Abreu
2017-04-19 15:50     ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 07/11] drm: set output colorspace in AVI infoframe Shashank Sharma
2017-04-12  9:49   ` Jose Abreu
2017-04-19 15:55     ` Sharma, Shashank
2017-04-07 16:39 ` [PATCH 08/11] drm/i915: handle ycbcr outputs Shashank Sharma
2017-04-07 16:39 ` [PATCH 09/11] drm/i915: handle csc for ycbcr HDMI output Shashank Sharma
2017-04-07 16:39 ` [PATCH 10/11] drm/i915: prepare ycbcr420 modeset Shashank Sharma
2017-04-07 16:39 ` [PATCH 11/11] drm/i915: set colorspace for ycbcr outputs Shashank Sharma

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=1f62f34e-d2d8-6e03-6429-bb8626d99d9a@intel.com \
    --to=shashank.sharma@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.abreu@synopsys.com \
    --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