Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Ramalingam C <ramalingam.c@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
	intel-gfx <intel-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [RFC v1 01/20] drm/hdcp: HDCP bitmask property for connectors
Date: Fri, 14 Jul 2017 16:10:32 +0530	[thread overview]
Message-ID: <cdd6abc8-31a2-caa5-691a-1e29f4bc311d@intel.com> (raw)
In-Reply-To: <20170713190203.nb7sj6e3ge5oqklj@phenom.ffwll.local>



On Friday 14 July 2017 12:32 AM, Daniel Vetter wrote:
> On Thu, Jul 13, 2017 at 06:29:33PM +0530, Ramalingam C wrote:
>>
>> On Thursday 13 July 2017 04:06 PM, Daniel Vetter wrote:
>>> On Thu, Jul 13, 2017 at 12:15 PM, Ramalingam C <ramalingam.c@intel.com> wrote:
>>>> On Thursday 13 July 2017 02:15 PM, Daniel Vetter wrote:
>>>>
>>>> On Thu, Jul 13, 2017 at 8:54 AM, Ramalingam C <ramalingam.c@intel.com>
>>>> wrote:
>>>>
>>>> On Thursday 13 July 2017 11:39 AM, Daniel Vetter wrote:
>>>>
>>>> On Wed, Jul 12, 2017 at 9:10 PM, Sean Paul <seanpaul@chromium.org> wrote:
>>>>
>>>> Why all these intermediate steps and different failure modes? Either hdcp
>>>> works, or it doesnt (and we can split up with the type 0 or type 1 if
>>>> needed), but I don't know what userspace would do with all the other
>>>> stuff?
>>>>
>>>> enum values  HDCP_ENABLE, HDCP_ENABLE_TYPE1 and HDCP_DISABLE along with
>>>> kobj-uevent
>>>> for HDCP state change, could do the bare minimal HDCP1.4 and HDCP2.2
>>>> configuration.
>>>>
>>>> And without Type info it is not possible for HDCP2.2.
>>>>
>>>> I've had requests from chrome team to expose HDCP version, so I don't think
>>>> this
>>>> is too contentious.
>>>>
>>>> I think it'd still be easier if we start out with the current content
>>>> protection props that CrOS is using, and then figure out how to layer
>>>> the exact version/standard on top? One thing at a time and all that.
>>>> -Daniel
>>>>
>>>> I understand the approach.
>>>>
>>>> But Only problem is current upstreaming effort is for HDCP2.2 support at DRM
>>>> with a design which can
>>>> easily accommodate other versions too. So we  need to stretch current CrOS
>>>> property a bit with
>>>> ENABLE_TYPE1 and UNSUPPORTED etc. Hope that should be fine for all.
>>>>
>>>> Yeah, but if we just go with enable (without specifying the type) we
>>>> could still enable the highest hdcp level (so 2.2 for our case). At
>>>> least I don't see a reason why we need to already have the
>>>> enable_type1 thing. Can you pls explain why you think this is
>>>> necessary?
>>>>
>>>> There seems to be a need to force type1, but I think it's easier to do
>>>> that as an extension. Of course we need to keep it in mind meanwhile.
>>>>
>>>> Background for this need of Type info in HDCP2.2 implementation is as
>>>> follows:
>>> Aside: You're quoting is broken for inline quoting. Either fix the
>>> quoting or top-quote (there's no difference between your text and
>>> mine, mine should be indented with > or | or similar).
>> Sorry for the inconvenience. Hope now it is fine. Just reset the settings on
>> thunderbird
> Yes, looks good now.
>
>>>> HDCP2.2 Spec classify the protected content as Type 0 and Type 1. For
>>>> Example lets say
>>>> - A HDCP2.2 Src is connected to HDCP repeater
>>>> - that repeater is connected to a HDCP2.2 panel
>>>> - that same repeater is also connected to a HDCP1.4 panel.
>>>>
>>>> In this topology, as part of Repeater authentication:
>>>> - HDCP2.2 Source will mention the Content Type to HDCP2.2 Repeater
>>>> - Repeater can transmit this Type 1 content to HDCP2.2 compliant sink only
>>>> (which is HDCP 2.2 panel here).
>>>> - Repeater can transmit any type0 content to any other devices (like HDCP1.4
>>>> panel here).
>>>> - Device with no HDCP support will get Neither of Type 0 or Type 1.
>>>>
>>>> So if we implement HDCP2.2 with HDCP_ENABLE state alone there is no way for
>>>> Userspace
>>>> to request for HDCP2.2 protection only. In this case we wont know the
>>>> content type classification.
>>> Yes, that is the case, but also the point of gradual enabling. Atm
>>> (with the current CrOS usersapce) userspace can ask for "pls give me
>>> content protection, I don't care what level/type". That itself is
>>> already useful, and a good step forward. Allowing to ask for a
>>> specific type is something on top.
>> Ok. When i think over it, that sounds as a  good idea to go gradually for
>> enabling HDCP2.2.
>>>> Even if we force Content type to Type1, in above topology Type 0 content
>>>> that could be rendered to
>>>> HDCP1.4 compliant panel wont be rendered as that has been forcibly
>>>> classified as Type 1 by KMD.
>>> Why? HDCP_ENABLE would just give you the "best" HDCP, so we'd fall
>>> back to type 0 (if that's available).
>> I think i misinterpreted. We could enable the HDCP2.2(if supported on panel)
>> for the Type 0 content. No issue on that
>>>> Forcing type 1 content to Type 0 will break the association of type1 content
>>>> to HDCP2.2 devices only.
>>> I didn't propose to force type1 everywhere. Why do you think this is needed.
>>>> More than that Devices with our indented DRM HDCP2.2 support wont pass the
>>>> HDCP2.2 compliance.
>>>> Considering we could extend the CrOS Userspace for HDCP2.2, I would prefer
>>>> to go ahead with
>>>> HDCP_ENABLE_TYPE1 along with HDCP_ENABLE.
>>> Yes, it's only hdcp1.4, and getting to full hdcp2.2 will take more
>>> work. You can do all of that in one go, but my experience with
>>> upstreaming new uabi is that usually that's not the most effective way
>>> to go about things. But in the end, that's your choice.
>> Agreed. We will go gradually about enabling HDCP2.2.
>>      1. Enable HDCP2.2 for HDCP_ENABLE with Content type as 0.
>>      2. Enable HDCP2.2 for Type 1 content with Enum value HDCP_ENABLE_TYPE1
>>      3. Making HDCP2.2 support as HDCP2.2 spec compliant.
>>
>> But I think i will just add another enum value HDCP_UNSUPPORTED to mark the
>> no HDCP supported on the setup.
>> I hope that is fine.
> Makes sense.
>
> btw I chatted with Shashi today, I think it'd be good if we could have a
> chat next week about some of the design patterns for the implementation. I
> can give you some pointers for kernel best practices (so you understand
> why things are done a bit different).
>
> But I think first priority is to get agreement on the new uapi and make
> sure it works for CrOS, we can polish the implementation in following
> rounds.
>
> Thanks, Daniel
Sure daniel. Now I have prepared v2 of this patch alone. Please have 
review that too.
Based on feedbacks I will spin other patches of this series.

--Ram

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

  reply	other threads:[~2017-07-14 10:40 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-12  8:28 [RFC v1 00/20] DRM Interfaces for HDCP support Ramalingam C
2017-07-12  8:28 ` [RFC v1 01/20] drm/hdcp: HDCP bitmask property for connectors Ramalingam C
2017-07-12  9:54   ` Daniel Vetter
2017-07-12 14:56     ` [Intel-gfx] " Ramalingam C
2017-07-12 19:10       ` Sean Paul
2017-07-13  6:09         ` Daniel Vetter
2017-07-13  6:54           ` Ramalingam C
2017-07-13  8:45             ` Daniel Vetter
2017-07-13 10:15               ` [Intel-gfx] " Ramalingam C
2017-07-13 10:36                 ` Daniel Vetter
2017-07-13 12:59                   ` Ramalingam C
2017-07-13 19:02                     ` [Intel-gfx] " Daniel Vetter
2017-07-14 10:40                       ` Ramalingam C [this message]
2017-07-14 11:21                         ` [RFC v2] drm/hdcp: drm enum property for HDCP State Ramalingam C
2017-07-14 13:55                           ` Sean Paul
2017-07-21 13:02                             ` Ramalingam C
2017-07-24 13:23                               ` Sean Paul
2017-07-24 13:34                                 ` Ramalingam C
2017-07-24 18:12                                 ` [RFC v3] drm/hdcp: drm enum property for CP State Ramalingam C
2017-07-25 12:34                                   ` Sean Paul
2017-07-26  9:54                                     ` Ramalingam C
2017-07-26 14:52                                       ` Sean Paul
2017-07-26 16:51                                         ` C, Ramalingam
2017-07-26 17:54                                           ` Sean Paul
2017-08-02 15:32                                             ` Ramalingam C
2017-08-02 15:53                                               ` [RFC v4] " Ramalingam C
2017-08-05 15:51                                                 ` Ramalingam C
2017-08-07  5:32                                                   ` Ramalingam C
2017-07-13  6:36         ` [Intel-gfx] [RFC v1 01/20] drm/hdcp: HDCP bitmask property for connectors Ramalingam C
2017-07-12  8:28 ` [RFC v1 02/20] drm/hdcp: HDCP SRM blob " Ramalingam C
2017-07-12  8:28 ` [RFC v1 03/20] drm/sysfs: Generate drm uevent with custom string Ramalingam C
2017-07-12  8:28 ` [RFC v1 04/20] drm/hdcp: Struct drm_hdcp for connector's hdcp state Ramalingam C
2017-07-12  8:28 ` [RFC v1 05/20] drm/hdcp: HDCP status code for DRM HDCP stack Ramalingam C
2017-07-12  8:28 ` [RFC v1 06/20] drm/hdcp: display driver callback funcs defined Ramalingam C
2017-07-12  8:28 ` [RFC v1 07/20] drm/hdcp: Initialization of DRM hdcp stack Ramalingam C
2017-07-12  8:28 ` [RFC v1 08/20] drm/hdcp: Add KBuild for DRM HDCP support Ramalingam C
2017-07-12  8:28 ` [RFC v1 09/20] drm/hdcp: Generic enable, disable and late_init Ramalingam C
2017-07-12  8:28 ` [RFC v1 10/20] drm/hdcp: Handler for connector state change Ramalingam C
2017-07-12  8:28 ` [RFC v1 11/20] drm/hdcp: Registering " Ramalingam C
2017-07-12  8:28 ` [RFC v1 12/20] drm/hdcp: Atomic set and get property for hdcp Ramalingam C
2017-07-12  8:28 ` [RFC v1 13/20] drm/hdcp: Updating DRM Property val with HDCP state Ramalingam C
2017-07-12  8:28 ` [RFC v1 14/20] drm/hdcp2.2: HDCP2.2 protocol msg definitions Ramalingam C
2017-07-12  8:28 ` [RFC v1 15/20] drm/hdcp2.2: Display driver service functions Ramalingam C
2017-07-12  8:29 ` [RFC v1 16/20] drm/hdcp2.2: HDCP2.2 Initialization Ramalingam C
2017-07-12  8:29 ` [RFC v1 17/20] drm/hdcp2.2: Definitions of HDMI HDCP2.2 registers Ramalingam C
2017-07-12  8:29 ` [RFC v1 18/20] drm/hdcp2.2: Late_init: Capability probing on panel Ramalingam C
2017-07-12  8:29 ` [RFC v1 19/20] drm/hdcp2.2: HDCP2.2 enable as a asynchronous work Ramalingam C
2017-07-12  8:29 ` [RFC v1 20/20] drm/hdcp2.2: HDCP2.2 disable " Ramalingam C
2017-07-12  8:35 ` ✗ Fi.CI.BAT: failure for DRM Interfaces for HDCP support Patchwork
2017-07-14 11:26 ` ✗ Fi.CI.BAT: failure for DRM Interfaces for HDCP support (rev2) 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=cdd6abc8-31a2-caa5-691a-1e29f4bc311d@intel.com \
    --to=ramalingam.c@intel.com \
    --cc=daniel.vetter@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    /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