RE: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg definitions

2018-07-11 Thread C, Ramalingam
> -Original Message-
> From: Sean Paul [mailto:seanp...@chromium.org]
> Sent: Thursday, July 12, 2018 12:38 AM
> To: C, Ramalingam 
> Cc: Sean Paul ; intel-...@lists.freedesktop.org; dri-
> de...@lists.freedesktop.org; dan...@ffwll.ch; Winkler, Tomas
> ; Usyskin, Alexander
> ; Shankar, Uma 
> Subject: Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg
> definitions
> 
> On Wed, Jul 11, 2018 at 05:57:08PM +, C, Ramalingam wrote:
> > Thanks seanpaul for the reviews.
> >
> > > -Original Message-
> > > From: Sean Paul [mailto:seanp...@chromium.org]
> > > Sent: Tuesday, July 10, 2018 1:51 AM
> > > To: C, Ramalingam 
> > > Cc: intel-...@lists.freedesktop.org;
> > > dri-devel@lists.freedesktop.org; dan...@ffwll.ch; Winkler, Tomas
> > > ; Usyskin, Alexander
> > > ; Shankar, Uma 
> > > Subject: Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2
> > > authentication msg definitions
> > >
> > > On Wed, Jun 27, 2018 at 02:09:50PM +0530, Ramalingam C wrote:
> > > > This patch defines the hdcp2.2 protocol messages for authentication.
> > > >
> > > > v2:
> > > >   bit_fields are removed. Instead bitmasking used. [Tomas and Jani]
> > > >   prefix HDCP_2_2_ is added to the macros. [Tomas]
> > > > v3:
> > > >   No Changes.
> > > > v4:
> > > >   Style and spellings are fixed [Uma]
> > > > v5:
> > > >   Fix for macros.
> > > >
> > > > Signed-off-by: Ramalingam C 
> > > > ---
> > > >  include/drm/drm_hdcp.h | 179
> > > > +
> > > >  1 file changed, 179 insertions(+)
> > > >
> > > > diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index
> > > > 98e63d870139..3e963c5d04b2 100644
> > > > --- a/include/drm/drm_hdcp.h
> > > > +++ b/include/drm/drm_hdcp.h
> > > > @@ -38,4 +38,183 @@
> > > >  #define DRM_HDCP_DDC_BSTATUS   0x41
> > > >  #define DRM_HDCP_DDC_KSV_FIFO  0x43
> > > >
> > > > +#define DRM_HDCP_1_4_SRM_ID0x8
> > > > +#define DRM_HDCP_1_4_VRL_LENGTH_SIZE   3
> > > > +#define DRM_HDCP_1_4_DCP_SIG_SIZE  40
> > >
> > > These don't seem to be related to the patch?
> > >
> > > > +
> > > > +/* Protocol message definition for HDCP2.2 specification */
> > > > +#define HDCP_STREAM_TYPE0  0x00
> > > > +#define HDCP_STREAM_TYPE1  0x01
> > >
> > > Why not HDCP_2_2 prefix?
> > Though they are introduced at HDCP2.2, this is classification of the 
> > streams.
> > And Type 0 can be transmitted on HDCP1.4.
> > So keeping it as generic name with no version mentioned.
> 
> Ok, I guess it's the comment that was throwing me off. Perhaps you could
> improve it to:
> 
> /*
>  * Protected video streams are classified into 2 types:
>  * - Type0: Can be transmitted with HDCP 1.4+
>  * - Type1: Can be transmitted with HDCP 2.2+  */
> 
> /snip
Sure I will fix this.

Thanks,
Ram.

> 
> > > > +} __packed;
> > >
> > > Perhaps this has already been asked and answered, but do all of
> > > these need to be __packed? This is kind of the problem with adding a
> > > bunch of unused structures to a patch, it's hard to see what their
> > > usage is. In future, these should probably be introduced when they're 
> > > being
> used.
> >
> > These are the HDCP2.2 message defined at HDCP2.2 spec. And they needs
> > to be __packed just to have exact size mentioned by spec.
> >
> > Like how we have HDCP1.4 and 2.2 macros defined as per the HDCP spec
> > definitions, defined the HDCP2.2 messages together here.
> 
> Thanks for the explanation.
> 
> Sean
> 
> >
> > Thanks,
> > Ram.
> > >
> > > Sean
> > >
> > > > +
> > > >  #endif
> > > > --
> > > > 2.7.4
> > > >
> > > > ___
> > > > Intel-gfx mailing list
> > > > intel-...@lists.freedesktop.org
> > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > >
> > > --
> > > Sean Paul, Software Engineer, Google / Chromium OS
> 
> --
> Sean Paul, Software Engineer, Google / Chromium OS
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg definitions

2018-07-11 Thread Sean Paul
On Wed, Jul 11, 2018 at 05:57:08PM +, C, Ramalingam wrote:
> Thanks seanpaul for the reviews.
> 
> > -Original Message-
> > From: Sean Paul [mailto:seanp...@chromium.org]
> > Sent: Tuesday, July 10, 2018 1:51 AM
> > To: C, Ramalingam 
> > Cc: intel-...@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> > dan...@ffwll.ch; Winkler, Tomas ; Usyskin,
> > Alexander ; Shankar, Uma
> > 
> > Subject: Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg
> > definitions
> > 
> > On Wed, Jun 27, 2018 at 02:09:50PM +0530, Ramalingam C wrote:
> > > This patch defines the hdcp2.2 protocol messages for authentication.
> > >
> > > v2:
> > >   bit_fields are removed. Instead bitmasking used. [Tomas and Jani]
> > >   prefix HDCP_2_2_ is added to the macros. [Tomas]
> > > v3:
> > >   No Changes.
> > > v4:
> > >   Style and spellings are fixed [Uma]
> > > v5:
> > >   Fix for macros.
> > >
> > > Signed-off-by: Ramalingam C 
> > > ---
> > >  include/drm/drm_hdcp.h | 179
> > > +
> > >  1 file changed, 179 insertions(+)
> > >
> > > diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index
> > > 98e63d870139..3e963c5d04b2 100644
> > > --- a/include/drm/drm_hdcp.h
> > > +++ b/include/drm/drm_hdcp.h
> > > @@ -38,4 +38,183 @@
> > >  #define DRM_HDCP_DDC_BSTATUS 0x41
> > >  #define DRM_HDCP_DDC_KSV_FIFO0x43
> > >
> > > +#define DRM_HDCP_1_4_SRM_ID  0x8
> > > +#define DRM_HDCP_1_4_VRL_LENGTH_SIZE 3
> > > +#define DRM_HDCP_1_4_DCP_SIG_SIZE40
> > 
> > These don't seem to be related to the patch?
> > 
> > > +
> > > +/* Protocol message definition for HDCP2.2 specification */
> > > +#define HDCP_STREAM_TYPE00x00
> > > +#define HDCP_STREAM_TYPE10x01
> > 
> > Why not HDCP_2_2 prefix?
> Though they are introduced at HDCP2.2, this is classification of the streams.
> And Type 0 can be transmitted on HDCP1.4.
> So keeping it as generic name with no version mentioned.

Ok, I guess it's the comment that was throwing me off. Perhaps you could improve
it to:

/*
 * Protected video streams are classified into 2 types:
 * - Type0: Can be transmitted with HDCP 1.4+
 * - Type1: Can be transmitted with HDCP 2.2+
 */

/snip

> > > +} __packed;
> > 
> > Perhaps this has already been asked and answered, but do all of these need 
> > to
> > be __packed? This is kind of the problem with adding a bunch of unused
> > structures to a patch, it's hard to see what their usage is. In future, 
> > these should
> > probably be introduced when they're being used.
> 
> These are the HDCP2.2 message defined at HDCP2.2 spec. And they needs to be
> __packed just to have exact size mentioned by spec.
> 
> Like how we have HDCP1.4 and 2.2 macros defined as per the HDCP spec 
> definitions,
> defined the HDCP2.2 messages together here.

Thanks for the explanation.

Sean

> 
> Thanks,
> Ram.
> > 
> > Sean
> > 
> > > +
> > >  #endif
> > > --
> > > 2.7.4
> > >
> > > ___
> > > Intel-gfx mailing list
> > > intel-...@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> > 
> > --
> > Sean Paul, Software Engineer, Google / Chromium OS

-- 
Sean Paul, Software Engineer, Google / Chromium OS
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


RE: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg definitions

2018-07-11 Thread C, Ramalingam
Thanks seanpaul for the reviews.

> -Original Message-
> From: Sean Paul [mailto:seanp...@chromium.org]
> Sent: Tuesday, July 10, 2018 1:51 AM
> To: C, Ramalingam 
> Cc: intel-...@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
> dan...@ffwll.ch; Winkler, Tomas ; Usyskin,
> Alexander ; Shankar, Uma
> 
> Subject: Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg
> definitions
> 
> On Wed, Jun 27, 2018 at 02:09:50PM +0530, Ramalingam C wrote:
> > This patch defines the hdcp2.2 protocol messages for authentication.
> >
> > v2:
> >   bit_fields are removed. Instead bitmasking used. [Tomas and Jani]
> >   prefix HDCP_2_2_ is added to the macros. [Tomas]
> > v3:
> >   No Changes.
> > v4:
> >   Style and spellings are fixed [Uma]
> > v5:
> >   Fix for macros.
> >
> > Signed-off-by: Ramalingam C 
> > ---
> >  include/drm/drm_hdcp.h | 179
> > +
> >  1 file changed, 179 insertions(+)
> >
> > diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h index
> > 98e63d870139..3e963c5d04b2 100644
> > --- a/include/drm/drm_hdcp.h
> > +++ b/include/drm/drm_hdcp.h
> > @@ -38,4 +38,183 @@
> >  #define DRM_HDCP_DDC_BSTATUS   0x41
> >  #define DRM_HDCP_DDC_KSV_FIFO  0x43
> >
> > +#define DRM_HDCP_1_4_SRM_ID0x8
> > +#define DRM_HDCP_1_4_VRL_LENGTH_SIZE   3
> > +#define DRM_HDCP_1_4_DCP_SIG_SIZE  40
> 
> These don't seem to be related to the patch?
> 
> > +
> > +/* Protocol message definition for HDCP2.2 specification */
> > +#define HDCP_STREAM_TYPE0  0x00
> > +#define HDCP_STREAM_TYPE1  0x01
> 
> Why not HDCP_2_2 prefix?
Though they are introduced at HDCP2.2, this is classification of the streams.
And Type 0 can be transmitted on HDCP1.4.
So keeping it as generic name with no version mentioned.
> 
> > +
> > +/* HDCP2.2 Msg IDs */
> > +#define HDCP_2_2_NULL_MSG  1
> > +#define HDCP_2_2_AKE_INIT  2
> > +#define HDCP_2_2_AKE_SEND_CERT 3
> > +#define HDCP_2_2_AKE_NO_STORED_KM  4
> > +#define HDCP_2_2_AKE_STORED_KM 5
> > +#define HDCP_2_2_AKE_SEND_HPRIME   7
> > +#define HDCP_2_2_AKE_SEND_PAIRING_INFO 8
> > +#define HDCP_2_2_LC_INIT   9
> > +#define HDCP_2_2_LC_SEND_LPRIME10
> > +#define HDCP_2_2_SKE_SEND_EKS  11
> > +#define HDCP_2_2_REP_SEND_RECVID_LIST  12
> > +#define HDCP_2_2_REP_SEND_ACK  15
> > +#define HDCP_2_2_REP_STREAM_MANAGE 16
> > +#define HDCP_2_2_REP_STREAM_READY  17
> > +#define HDCP_2_2_ERRATA_DP_STREAM_TYPE 50
> > +
> > +#define HDCP_2_2_RTX_LEN   8
> > +#define HDCP_2_2_RRX_LEN   8
> > +
> > +#define HDCP_2_2_K_PUB_RX_MOD_N_LEN128
> > +#define HDCP_2_2_K_PUB_RX_EXP_E_LEN3
> > +#define HDCP_2_2_K_PUB_RX_LEN
>   (HDCP_2_2_K_PUB_RX_MOD_N_LEN + \
> > +
> HDCP_2_2_K_PUB_RX_EXP_E_LEN)
> > +
> > +#define HDCP_2_2_DCP_LLC_SIG_LEN   384
> > +
> > +#define HDCP_2_2_E_KPUB_KM_LEN 128
> > +#define HDCP_2_2_E_KH_KM_M_LEN (16 + 16)
> > +#define HDCP_2_2_H_PRIME_LEN   32
> > +#define HDCP_2_2_E_KH_KM_LEN   16
> > +#define HDCP_2_2_RN_LEN8
> > +#define HDCP_2_2_L_PRIME_LEN   32
> > +#define HDCP_2_2_E_DKEY_KS_LEN 16
> > +#define HDCP_2_2_RIV_LEN   8
> > +#define HDCP_2_2_SEQ_NUM_LEN   3
> > +#define HDCP_2_2_LPRIME_HALF_LEN
>   (HDCP_2_2_L_PRIME_LEN / 2)
> > +#define HDCP_2_2_RECEIVER_ID_LEN   DRM_HDCP_KSV_LEN
> > +#define HDCP_2_2_MAX_DEVICE_COUNT  31
> > +#define HDCP_2_2_RECEIVER_IDS_MAX_LEN
>   (HDCP_2_2_RECEIVER_ID_LEN * \
> > +
> HDCP_2_2_MAX_DEVICE_COUNT)
> > +#define HDCP_2_2_MPRIME_LEN32
> > +
> > +/* Following Macros take a byte at a time for bit(s) masking */
> > +/*
> > + * TODO: This has to be changed for DP MST, as multiple stream on
> > + * same port is possible.
> > + * For HDCP2.2 on HDMI and DP SST this value is always 1.
> > + */
> > +#define HDCP_2_2_MAX_CONTENT_STREAMS_CNT   1
> > +#define HDCP_2_2_TXCAP_MASK_LEN

Re: [Intel-gfx] [PATCH v5 01/40] drm: hdcp2.2 authentication msg definitions

2018-07-09 Thread Sean Paul
On Wed, Jun 27, 2018 at 02:09:50PM +0530, Ramalingam C wrote:
> This patch defines the hdcp2.2 protocol messages for authentication.
> 
> v2:
>   bit_fields are removed. Instead bitmasking used. [Tomas and Jani]
>   prefix HDCP_2_2_ is added to the macros. [Tomas]
> v3:
>   No Changes.
> v4:
>   Style and spellings are fixed [Uma]
> v5:
>   Fix for macros.
> 
> Signed-off-by: Ramalingam C 
> ---
>  include/drm/drm_hdcp.h | 179 
> +
>  1 file changed, 179 insertions(+)
> 
> diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
> index 98e63d870139..3e963c5d04b2 100644
> --- a/include/drm/drm_hdcp.h
> +++ b/include/drm/drm_hdcp.h
> @@ -38,4 +38,183 @@
>  #define DRM_HDCP_DDC_BSTATUS 0x41
>  #define DRM_HDCP_DDC_KSV_FIFO0x43
>  
> +#define DRM_HDCP_1_4_SRM_ID  0x8
> +#define DRM_HDCP_1_4_VRL_LENGTH_SIZE 3
> +#define DRM_HDCP_1_4_DCP_SIG_SIZE40

These don't seem to be related to the patch? 

> +
> +/* Protocol message definition for HDCP2.2 specification */
> +#define HDCP_STREAM_TYPE00x00
> +#define HDCP_STREAM_TYPE10x01

Why not HDCP_2_2 prefix?

> +
> +/* HDCP2.2 Msg IDs */
> +#define HDCP_2_2_NULL_MSG1
> +#define HDCP_2_2_AKE_INIT2
> +#define HDCP_2_2_AKE_SEND_CERT   3
> +#define HDCP_2_2_AKE_NO_STORED_KM4
> +#define HDCP_2_2_AKE_STORED_KM   5
> +#define HDCP_2_2_AKE_SEND_HPRIME 7
> +#define HDCP_2_2_AKE_SEND_PAIRING_INFO   8
> +#define HDCP_2_2_LC_INIT 9
> +#define HDCP_2_2_LC_SEND_LPRIME  10
> +#define HDCP_2_2_SKE_SEND_EKS11
> +#define HDCP_2_2_REP_SEND_RECVID_LIST12
> +#define HDCP_2_2_REP_SEND_ACK15
> +#define HDCP_2_2_REP_STREAM_MANAGE   16
> +#define HDCP_2_2_REP_STREAM_READY17
> +#define HDCP_2_2_ERRATA_DP_STREAM_TYPE   50
> +
> +#define HDCP_2_2_RTX_LEN 8
> +#define HDCP_2_2_RRX_LEN 8
> +
> +#define HDCP_2_2_K_PUB_RX_MOD_N_LEN  128
> +#define HDCP_2_2_K_PUB_RX_EXP_E_LEN  3
> +#define HDCP_2_2_K_PUB_RX_LEN
> (HDCP_2_2_K_PUB_RX_MOD_N_LEN + \
> +  HDCP_2_2_K_PUB_RX_EXP_E_LEN)
> +
> +#define HDCP_2_2_DCP_LLC_SIG_LEN 384
> +
> +#define HDCP_2_2_E_KPUB_KM_LEN   128
> +#define HDCP_2_2_E_KH_KM_M_LEN   (16 + 16)
> +#define HDCP_2_2_H_PRIME_LEN 32
> +#define HDCP_2_2_E_KH_KM_LEN 16
> +#define HDCP_2_2_RN_LEN  8
> +#define HDCP_2_2_L_PRIME_LEN 32
> +#define HDCP_2_2_E_DKEY_KS_LEN   16
> +#define HDCP_2_2_RIV_LEN 8
> +#define HDCP_2_2_SEQ_NUM_LEN 3
> +#define HDCP_2_2_LPRIME_HALF_LEN (HDCP_2_2_L_PRIME_LEN / 2)
> +#define HDCP_2_2_RECEIVER_ID_LEN DRM_HDCP_KSV_LEN
> +#define HDCP_2_2_MAX_DEVICE_COUNT31
> +#define HDCP_2_2_RECEIVER_IDS_MAX_LEN
> (HDCP_2_2_RECEIVER_ID_LEN * \
> +  HDCP_2_2_MAX_DEVICE_COUNT)
> +#define HDCP_2_2_MPRIME_LEN  32
> +
> +/* Following Macros take a byte at a time for bit(s) masking */
> +/*
> + * TODO: This has to be changed for DP MST, as multiple stream on
> + * same port is possible.
> + * For HDCP2.2 on HDMI and DP SST this value is always 1.
> + */
> +#define HDCP_2_2_MAX_CONTENT_STREAMS_CNT 1
> +#define HDCP_2_2_TXCAP_MASK_LEN  2
> +#define HDCP_2_2_RXCAPS_LEN  3
> +#define HDCP_2_2_RX_REPEATER(x)  ((x) & BIT(0))
> +#define HDCP_2_2_DP_HDCP_CAPABLE(x)  ((x) & BIT(1))
> +#define HDCP_2_2_RXINFO_LEN  2
> +
> +/* HDCP1.x compliant device in downstream */
> +#define HDCP_2_2_HDCP1_DEVICE_CONNECTED(x)   ((x) & BIT(0))
> +
> +/* HDCP2.0 Compliant repeater in downstream */
> +#define HDCP_2_2_HDCP_2_0_REP_CONNECTED(x)   ((x) & BIT(1))
> +#define HDCP_2_2_MAX_CASCADE_EXCEEDED(x) ((x) & BIT(2))
> +#define HDCP_2_2_MAX_DEVS_EXCEEDED(x)((x) & BIT(3))
> +#define HDCP_2_2_DEV_COUNT_LO(x) (((x) & (0xF << 4)) >> 4)
> +#define HDCP_2_2_DEV_COUNT_HI(x) ((x) & BIT(0))
> +#define HDCP_2_2_DEPTH(x)(((x) & (0x7 << 1)) >> 1)
> +
> +struct hdcp2_cert_rx {
> + uint8_t receiver_id[HDCP_2_2_RECEIVER_ID_LEN];
> + uint8_t kpub_rx[HDCP_2_2_K_PUB_RX_LEN];
> + uint8_t reserved[2];
> + uint8_t dcp_signature[HDCP_2_2_DCP_LLC_SIG_LEN];
> +} __packed;
> +
> +struct hdcp2_streamid_type {
> + uint8_t stream_id;
> + uint8_t stream_type;
> +} __packed;
> +
> +/*
> + * The TxCaps field specified in the HDCP HDMI, DP specs