Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-21 Thread Ramalingam C
Thanks Jani. I will use free form comments in v4, meanwhile i will 
explore the required stuff for kernel-doc and add kernel-doc entries 
where ever it makes sense, in upcoming versions.


--Ram

On Thursday 17 May 2018 01:47 PM, Jani Nikula wrote:

On Thu, 17 May 2018, "C, Ramalingam"  wrote:

+/**

Drop the extra *, unless you really love it :)

ha ha. Actually I have added intentionally. But removing them across
all patches as per your suggestions. :)

/** is a syntax for KDoc, so if you want to receive automatic code
documentation you should use it and adhere to KDoc syntax

Thanks Alexander for the information. At present I am not adding the
KDoc support, if it is not compulsory.  So I will remove the /**.

It's "kernel-doc" to be pedantic. No such thing as KDoc.

If you use /** please stick to the exact kernel-doc format. The below is
not. You'll find the documentation under Documentation/doc-guide.

If you drop /** please either use free form comments or stick to the
kernel-doc format. Please don't leave behind things that look eerily
similar to kernel-doc comments but are not. Without /** you won't even
get warnings about them.

/**
  * mei_store_pairing_info - Store pairing info received from panel
  * @cldev: Pointer for mei client device
  * @data: Intel HW specific Data
  * @pairing_info: Pointer for AKE_Send_Pairing_Info
  *
  * Returns 0 on success, <0 on failure.
  */

BR,
Jani.



--Ram

+ * mei_store_pairing_info:
+ * Function to store pairing info received from panel
+ *
+ * @cldev  : Pointer for mei client device
+ * @data   : Intel HW specific Data
+ * @pairing_info   : Pointer for AKE_Send_Pairing_Info
+ *
+ * Returns 0 on Success, <0 on Failure */


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


Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-17 Thread Jani Nikula
On Thu, 17 May 2018, "C, Ramalingam"  wrote:
>> > >> +/**
>> > > Drop the extra *, unless you really love it :)
>> > ha ha. Actually I have added intentionally. But removing them across
>> > all patches as per your suggestions. :)
>> 
>> /** is a syntax for KDoc, so if you want to receive automatic code
>> documentation you should use it and adhere to KDoc syntax
>
> Thanks Alexander for the information. At present I am not adding the
> KDoc support, if it is not compulsory.  So I will remove the /**.

It's "kernel-doc" to be pedantic. No such thing as KDoc.

If you use /** please stick to the exact kernel-doc format. The below is
not. You'll find the documentation under Documentation/doc-guide.

If you drop /** please either use free form comments or stick to the
kernel-doc format. Please don't leave behind things that look eerily
similar to kernel-doc comments but are not. Without /** you won't even
get warnings about them.

/**
 * mei_store_pairing_info - Store pairing info received from panel
 * @cldev: Pointer for mei client device
 * @data: Intel HW specific Data
 * @pairing_info: Pointer for AKE_Send_Pairing_Info
 *
 * Returns 0 on success, <0 on failure.
 */

BR,
Jani.


>
> --Ram
>> > >
>> > >> + * mei_store_pairing_info:
>> > >> + * Function to store pairing info received from panel
>> > >> + *
>> > >> + * @cldev  : Pointer for mei client device
>> > >> + * @data   : Intel HW specific Data
>> > >> + * @pairing_info   : Pointer for AKE_Send_Pairing_Info
>> > >> + *
>> > >> + * Returns 0 on Success, <0 on Failure */

-- 
Jani Nikula, Intel Open Source Technology Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-17 Thread C, Ramalingam

> -Original Message-
> From: Usyskin, Alexander
> Sent: Thursday, May 17, 2018 11:29 AM
> To: C, Ramalingam <ramalinga...@intel.com>; Shankar, Uma
> <uma.shan...@intel.com>; intel-gfx@lists.freedesktop.org; dri-
> de...@lists.freedesktop.org; seanp...@chromium.org; dan...@ffwll.ch;
> ch...@chris-wilson.co.uk; jani.nik...@linux.intel.com; Winkler, Tomas
> <tomas.wink...@intel.com>
> Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
> Subject: RE: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP 
> Pairing
> info
> 
> 
> 
> > -Original Message-
> > From: C, Ramalingam
> > Sent: Wednesday, May 16, 2018 18:53
> > To: Shankar, Uma <uma.shan...@intel.com>; intel-
> > g...@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
> > seanp...@chromium.org; dan...@ffwll.ch; ch...@chris-wilson.co.uk;
> > jani.nik...@linux.intel.com; Winkler, Tomas <tomas.wink...@intel.com>;
> > Usyskin, Alexander <alexander.usys...@intel.com>
> > Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
> > Subject: Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the
> > HDCP Pairing info
> >
> >
> >
> > On Wednesday 09 May 2018 03:58 PM, Shankar, Uma wrote:
> > >
> > >> -Original Message-
> > >> From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On
> > >> Behalf Of Ramalingam C
> > >> Sent: Tuesday, April 3, 2018 7:27 PM
> > >> To: intel-gfx@lists.freedesktop.org;
> > >> dri-de...@lists.freedesktop.org; seanp...@chromium.org;
> > >> dan...@ffwll.ch; ch...@chris-wilson.co.uk;
> > >> jani.nik...@linux.intel.com; Winkler, Tomas
> > >> <tomas.wink...@intel.com>; Usyskin, Alexander
> > >> <alexander.usys...@intel.com>
> > >> Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
> > >> Subject: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP
> > >> Pairing info
> > >>
> > >> Provides Pairing info to ME to store.
> > >>
> > >> Pairing is a process to fast track the subsequent authentication
> > >> with the same HDCP sink.
> > >>
> > >> On Success, received HDCP pairing info is stored in non-volatile
> > >> memory
> > of ME.
> > >>
> > >> v2:
> > >>   Rebased.
> > >> v3:
> > >>   cldev is passed as first parameter [Tomas]
> > >>   Redundant comments and cast are removed [Tomas]
> > >>
> > >> Signed-off-by: Ramalingam C <ramalinga...@intel.com>
> > >> ---
> > >> drivers/misc/mei/hdcp/mei_hdcp.c | 61
> > >> 
> > >> include/linux/mei_hdcp.h | 10 +++
> > >> 2 files changed, 71 insertions(+)
> > >>
> > >> diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c
> > >> b/drivers/misc/mei/hdcp/mei_hdcp.c
> > >> index fa548310de7a..60afdd0cee79 100644
> > >> --- a/drivers/misc/mei/hdcp/mei_hdcp.c
> > >> +++ b/drivers/misc/mei/hdcp/mei_hdcp.c
> > >> @@ -244,6 +244,67 @@ int mei_verify_hprime(struct mei_cl_device
> > >> *cldev, struct mei_hdcp_data *data,  }
> > >> EXPORT_SYMBOL(mei_verify_hprime);
> > >>
> > >> +/**
> > > Drop the extra *, unless you really love it :)
> > ha ha. Actually I have added intentionally. But removing them across
> > all patches as per your suggestions. :)
> 
> /** is a syntax for KDoc, so if you want to receive automatic code
> documentation you should use it and adhere to KDoc syntax

Thanks Alexander for the information. At present I am not adding the KDoc  
support, if it is not compulsory.
So I will remove the /**.

--Ram
> > >
> > >> + * mei_store_pairing_info:
> > >> + *  Function to store pairing info received from panel
> > >> + *
> > >> + * @cldev   : Pointer for mei client device
> > >> + * @data: Intel HW specific Data
> > >> + * @pairing_info: Pointer for AKE_Send_Pairing_Info
> > >> + *
> > >> + * Returns 0 on Success, <0 on Failure */
> > >> +
> > >> +int mei_store_pairing_info(struct mei_cl_device *cldev,
> > >> +   struct mei_hdcp_data *data,
> > >> +   struct hdcp2_ake_send_pairing_info 
> > >> *pairing_info)
> > {
> > >> +struct wired_cmd_ake_send_pairing_info_in pairing_info_

Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-16 Thread Usyskin, Alexander


> -Original Message-
> From: C, Ramalingam
> Sent: Wednesday, May 16, 2018 18:53
> To: Shankar, Uma <uma.shan...@intel.com>; intel-
> g...@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
> seanp...@chromium.org; dan...@ffwll.ch; ch...@chris-wilson.co.uk;
> jani.nik...@linux.intel.com; Winkler, Tomas <tomas.wink...@intel.com>;
> Usyskin, Alexander <alexander.usys...@intel.com>
> Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
> Subject: Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP
> Pairing info
> 
> 
> 
> On Wednesday 09 May 2018 03:58 PM, Shankar, Uma wrote:
> >
> >> -Original Message-
> >> From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On
> >> Behalf Of Ramalingam C
> >> Sent: Tuesday, April 3, 2018 7:27 PM
> >> To: intel-gfx@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
> >> seanp...@chromium.org; dan...@ffwll.ch; ch...@chris-wilson.co.uk;
> >> jani.nik...@linux.intel.com; Winkler, Tomas
> >> <tomas.wink...@intel.com>; Usyskin, Alexander
> >> <alexander.usys...@intel.com>
> >> Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
> >> Subject: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP
> >> Pairing info
> >>
> >> Provides Pairing info to ME to store.
> >>
> >> Pairing is a process to fast track the subsequent authentication with
> >> the same HDCP sink.
> >>
> >> On Success, received HDCP pairing info is stored in non-volatile memory
> of ME.
> >>
> >> v2:
> >>   Rebased.
> >> v3:
> >>   cldev is passed as first parameter [Tomas]
> >>   Redundant comments and cast are removed [Tomas]
> >>
> >> Signed-off-by: Ramalingam C <ramalinga...@intel.com>
> >> ---
> >> drivers/misc/mei/hdcp/mei_hdcp.c | 61
> >> 
> >> include/linux/mei_hdcp.h | 10 +++
> >> 2 files changed, 71 insertions(+)
> >>
> >> diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c
> >> b/drivers/misc/mei/hdcp/mei_hdcp.c
> >> index fa548310de7a..60afdd0cee79 100644
> >> --- a/drivers/misc/mei/hdcp/mei_hdcp.c
> >> +++ b/drivers/misc/mei/hdcp/mei_hdcp.c
> >> @@ -244,6 +244,67 @@ int mei_verify_hprime(struct mei_cl_device
> >> *cldev, struct mei_hdcp_data *data,  }
> >> EXPORT_SYMBOL(mei_verify_hprime);
> >>
> >> +/**
> > Drop the extra *, unless you really love it :)
> ha ha. Actually I have added intentionally. But removing them across all
> patches as per your suggestions. :)

/** is a syntax for KDoc, so if you want to receive automatic code 
documentation you should use it and adhere to KDoc syntax
> >
> >> + * mei_store_pairing_info:
> >> + *Function to store pairing info received from panel
> >> + *
> >> + * @cldev : Pointer for mei client device
> >> + * @data  : Intel HW specific Data
> >> + * @pairing_info  : Pointer for AKE_Send_Pairing_Info
> >> + *
> >> + * Returns 0 on Success, <0 on Failure */
> >> +
> >> +int mei_store_pairing_info(struct mei_cl_device *cldev,
> >> + struct mei_hdcp_data *data,
> >> + struct hdcp2_ake_send_pairing_info *pairing_info)
> {
> >> +  struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 }
> };
> >> +  struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { {
> 0 } };
> >> +  struct device *dev;
> >> +  ssize_t byte;
> >> +
> >> +  if (!data || !pairing_info)
> >> +  return -EINVAL;
> >> +
> >> +  dev = >dev;
> >> +
> >> +  pairing_info_in.header.api_version = HDCP_API_VERSION;
> >> +  pairing_info_in.header.command_id =
> >> WIRED_AKE_SEND_PAIRING_INFO;
> >> +  pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS;
> >> +  pairing_info_in.header.buffer_len =
> >> +
> >>WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN;
> >> +
> >> +  pairing_info_in.port.integrated_port_type = data->port_type;
> >> +  pairing_info_in.port.physical_port = data->port;
> >> +
> >> +  memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,
> > Validate pairing_info->e_kh_km for NULL.
> As we discussed we need not check for null here.
> >
> >> + sizeof(pairing_info_in.e_kh_km));
> >> +
> >> +  byte = mei_cldev_send(cldev, (u8 *)_info_in,
> >> 

Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-16 Thread Ramalingam C



On Wednesday 09 May 2018 03:58 PM, Shankar, Uma wrote:



-Original Message-
From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On Behalf Of
Ramalingam C
Sent: Tuesday, April 3, 2018 7:27 PM
To: intel-gfx@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
seanp...@chromium.org; dan...@ffwll.ch; ch...@chris-wilson.co.uk;
jani.nik...@linux.intel.com; Winkler, Tomas <tomas.wink...@intel.com>;
Usyskin, Alexander <alexander.usys...@intel.com>
Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
Subject: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

Provides Pairing info to ME to store.

Pairing is a process to fast track the subsequent authentication with the same
HDCP sink.

On Success, received HDCP pairing info is stored in non-volatile memory of ME.

v2:
  Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]

Signed-off-by: Ramalingam C <ramalinga...@intel.com>
---
drivers/misc/mei/hdcp/mei_hdcp.c | 61

include/linux/mei_hdcp.h | 10 +++
2 files changed, 71 insertions(+)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c
b/drivers/misc/mei/hdcp/mei_hdcp.c
index fa548310de7a..60afdd0cee79 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -244,6 +244,67 @@ int mei_verify_hprime(struct mei_cl_device *cldev,
struct mei_hdcp_data *data,  }  EXPORT_SYMBOL(mei_verify_hprime);

+/**

Drop the extra *, unless you really love it :)
ha ha. Actually I have added intentionally. But removing them across all 
patches

as per your suggestions. :)



+ * mei_store_pairing_info:
+ * Function to store pairing info received from panel
+ *
+ * @cldev  : Pointer for mei client device
+ * @data   : Intel HW specific Data
+ * @pairing_info   : Pointer for AKE_Send_Pairing_Info
+ *
+ * Returns 0 on Success, <0 on Failure
+ */
+
+int mei_store_pairing_info(struct mei_cl_device *cldev,
+  struct mei_hdcp_data *data,
+  struct hdcp2_ake_send_pairing_info *pairing_info) {
+   struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 } };
+   struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { { 0 } };
+   struct device *dev;
+   ssize_t byte;
+
+   if (!data || !pairing_info)
+   return -EINVAL;
+
+   dev = >dev;
+
+   pairing_info_in.header.api_version = HDCP_API_VERSION;
+   pairing_info_in.header.command_id =
WIRED_AKE_SEND_PAIRING_INFO;
+   pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS;
+   pairing_info_in.header.buffer_len =
+
WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN;
+
+   pairing_info_in.port.integrated_port_type = data->port_type;
+   pairing_info_in.port.physical_port = data->port;
+
+   memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,

Validate pairing_info->e_kh_km for NULL.

As we discussed we need not check for null here.



+  sizeof(pairing_info_in.e_kh_km));
+
+   byte = mei_cldev_send(cldev, (u8 *)_info_in,
+ sizeof(pairing_info_in));
+   if (byte < 0) {
+   dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte);
+   return byte;
+   }
+
+   byte = mei_cldev_recv(cldev, (u8 *)_info_out,
+ sizeof(pairing_info_out));
+   if (byte < 0) {
+   dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte);
+   return byte;
+   }
+
+   if (pairing_info_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+   dev_dbg(dev, "ME cmd 0x%08X failed. Status: 0x%X\n",
+   WIRED_AKE_SEND_PAIRING_INFO,
+   pairing_info_out.header.status);
+   return -1;
+   }

Leave a blank line here.

sure. I will do it in all patches. Thanks.

--Ram



+   return 0;
+}
+EXPORT_SYMBOL(mei_store_pairing_info);
+
void mei_cldev_state_notify_clients(struct mei_cl_device *cldev, bool enabled)  
{
if (enabled)
diff --git a/include/linux/mei_hdcp.h b/include/linux/mei_hdcp.h index
00bfde251ba4..be16e49d8018 100644
--- a/include/linux/mei_hdcp.h
+++ b/include/linux/mei_hdcp.h
@@ -118,6 +118,9 @@ mei_verify_receiver_cert_prepare_km(struct
mei_cl_device *cldev,
size_t *msg_sz);
int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data *data,
  struct hdcp2_ake_send_hprime *rx_hprime);
+int mei_store_pairing_info(struct mei_cl_device *cldev,
+  struct mei_hdcp_data *data,
+  struct hdcp2_ake_send_pairing_info *pairing_info);
#else
static int mei_cldev_register_notify(struct notifier_block *nb)  { @@ -150,5
+153,12 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct
mei_hdcp_data *data, 

Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-05-09 Thread Shankar, Uma


>-Original Message-
>From: Intel-gfx [mailto:intel-gfx-boun...@lists.freedesktop.org] On Behalf Of
>Ramalingam C
>Sent: Tuesday, April 3, 2018 7:27 PM
>To: intel-gfx@lists.freedesktop.org; dri-de...@lists.freedesktop.org;
>seanp...@chromium.org; dan...@ffwll.ch; ch...@chris-wilson.co.uk;
>jani.nik...@linux.intel.com; Winkler, Tomas <tomas.wink...@intel.com>;
>Usyskin, Alexander <alexander.usys...@intel.com>
>Cc: Vivi, Rodrigo <rodrigo.v...@intel.com>
>Subject: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing 
>info
>
>Provides Pairing info to ME to store.
>
>Pairing is a process to fast track the subsequent authentication with the same
>HDCP sink.
>
>On Success, received HDCP pairing info is stored in non-volatile memory of ME.
>
>v2:
>  Rebased.
>v3:
>  cldev is passed as first parameter [Tomas]
>  Redundant comments and cast are removed [Tomas]
>
>Signed-off-by: Ramalingam C <ramalinga...@intel.com>
>---
> drivers/misc/mei/hdcp/mei_hdcp.c | 61
>
> include/linux/mei_hdcp.h | 10 +++
> 2 files changed, 71 insertions(+)
>
>diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c
>b/drivers/misc/mei/hdcp/mei_hdcp.c
>index fa548310de7a..60afdd0cee79 100644
>--- a/drivers/misc/mei/hdcp/mei_hdcp.c
>+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
>@@ -244,6 +244,67 @@ int mei_verify_hprime(struct mei_cl_device *cldev,
>struct mei_hdcp_data *data,  }  EXPORT_SYMBOL(mei_verify_hprime);
>
>+/**

Drop the extra *, unless you really love it :)

>+ * mei_store_pairing_info:
>+ *Function to store pairing info received from panel
>+ *
>+ * @cldev : Pointer for mei client device
>+ * @data  : Intel HW specific Data
>+ * @pairing_info  : Pointer for AKE_Send_Pairing_Info
>+ *
>+ * Returns 0 on Success, <0 on Failure
>+ */
>+
>+int mei_store_pairing_info(struct mei_cl_device *cldev,
>+ struct mei_hdcp_data *data,
>+ struct hdcp2_ake_send_pairing_info *pairing_info) {
>+  struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 } };
>+  struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { { 0 } };
>+  struct device *dev;
>+  ssize_t byte;
>+
>+  if (!data || !pairing_info)
>+  return -EINVAL;
>+
>+  dev = >dev;
>+
>+  pairing_info_in.header.api_version = HDCP_API_VERSION;
>+  pairing_info_in.header.command_id =
>WIRED_AKE_SEND_PAIRING_INFO;
>+  pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS;
>+  pairing_info_in.header.buffer_len =
>+
>   WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN;
>+
>+  pairing_info_in.port.integrated_port_type = data->port_type;
>+  pairing_info_in.port.physical_port = data->port;
>+
>+  memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,

Validate pairing_info->e_kh_km for NULL.

>+ sizeof(pairing_info_in.e_kh_km));
>+
>+  byte = mei_cldev_send(cldev, (u8 *)_info_in,
>+sizeof(pairing_info_in));
>+  if (byte < 0) {
>+  dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte);
>+  return byte;
>+  }
>+
>+  byte = mei_cldev_recv(cldev, (u8 *)_info_out,
>+sizeof(pairing_info_out));
>+  if (byte < 0) {
>+  dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte);
>+  return byte;
>+  }
>+
>+  if (pairing_info_out.header.status != ME_HDCP_STATUS_SUCCESS) {
>+  dev_dbg(dev, "ME cmd 0x%08X failed. Status: 0x%X\n",
>+  WIRED_AKE_SEND_PAIRING_INFO,
>+  pairing_info_out.header.status);
>+  return -1;
>+  }

Leave a blank line here.

>+  return 0;
>+}
>+EXPORT_SYMBOL(mei_store_pairing_info);
>+
> void mei_cldev_state_notify_clients(struct mei_cl_device *cldev, bool 
> enabled)  {
>   if (enabled)
>diff --git a/include/linux/mei_hdcp.h b/include/linux/mei_hdcp.h index
>00bfde251ba4..be16e49d8018 100644
>--- a/include/linux/mei_hdcp.h
>+++ b/include/linux/mei_hdcp.h
>@@ -118,6 +118,9 @@ mei_verify_receiver_cert_prepare_km(struct
>mei_cl_device *cldev,
>   size_t *msg_sz);
> int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data *data,
> struct hdcp2_ake_send_hprime *rx_hprime);
>+int mei_store_pairing_info(struct mei_cl_device *cldev,
>+ struct mei_hdcp_data *data,
>+ struct hdcp2_ake_send_pairing_info *pairing_info);
> #else

Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-04-03 Thread kbuild test robot
Hi Ramalingam,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on next-20180403]
[cannot apply to v4.16]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Ramalingam-C/drm-i915-Implement-HDCP2-2/20180404-031743
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/misc/mei/hdcp/mei_hdcp.c:52:5: error: redefinition of 
'mei_initiate_hdcp2_session'
int mei_initiate_hdcp2_session(struct mei_cl_device *cldev,
^~
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:134:5: note: previous definition of 
'mei_initiate_hdcp2_session' was here
int mei_initiate_hdcp2_session(struct mei_cl_device *cldev,
^~
   drivers/misc/mei/hdcp/mei_hdcp.c:122:1: error: redefinition of 
'mei_verify_receiver_cert_prepare_km'
mei_verify_receiver_cert_prepare_km(struct mei_cl_device *cldev,
^~~
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:141:1: note: previous definition of 
'mei_verify_receiver_cert_prepare_km' was here
mei_verify_receiver_cert_prepare_km(struct mei_cl_device *cldev,
^~~
   drivers/misc/mei/hdcp/mei_hdcp.c:200:5: error: redefinition of 
'mei_verify_hprime'
int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data 
*data,
^
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:151:5: note: previous definition of 
'mei_verify_hprime' was here
int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data 
*data,
^
>> drivers/misc/mei/hdcp/mei_hdcp.c:258:5: error: redefinition of 
>> 'mei_store_pairing_info'
int mei_store_pairing_info(struct mei_cl_device *cldev,
^~
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:157:5: note: previous definition of 
'mei_store_pairing_info' was here
int mei_store_pairing_info(struct mei_cl_device *cldev,
^~
   drivers/misc/mei/hdcp/mei_hdcp.c:318:5: error: redefinition of 
'mei_cldev_register_notify'
int mei_cldev_register_notify(struct notifier_block *nb)
^
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:125:12: note: previous definition of 
'mei_cldev_register_notify' was here
static int mei_cldev_register_notify(struct notifier_block *nb)
   ^
   drivers/misc/mei/hdcp/mei_hdcp.c:324:5: error: redefinition of 
'mei_cldev_unregister_notify'
int mei_cldev_unregister_notify(struct notifier_block *nb)
^~~
   In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0:
   include/linux/mei_hdcp.h:129:12: note: previous definition of 
'mei_cldev_unregister_notify' was here
static int mei_cldev_unregister_notify(struct notifier_block *nb)
   ^~~
   include/linux/mei_hdcp.h:129:12: warning: 'mei_cldev_unregister_notify' 
defined but not used [-Wunused-function]
   include/linux/mei_hdcp.h:125:12: warning: 'mei_cldev_register_notify' 
defined but not used [-Wunused-function]
static int mei_cldev_register_notify(struct notifier_block *nb)
   ^

vim +/mei_store_pairing_info +258 drivers/misc/mei/hdcp/mei_hdcp.c

   188  
   189  /**
   190   * mei_verify_hprime:
   191   *  Function to verify AKE_Send_H_prime received
   192   *
   193   * @cldev   : Pointer for mei client device
   194   * @data: Intel HW specific Data
   195   * @rx_hprime   : Pointer for AKE_Send_H_prime
   196   * @hprime_sz   : Input buffer size
   197   *
   198   * Returns 0 on Success, <0 on Failure
   199   */
 > 200  int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data 
 > *data,
   201struct hdcp2_ake_send_hprime *rx_hprime)
   202  {
   203  struct wired_cmd_ake_send_hprime_in send_hprime_in = { { 0 } };
   204  struct wired_cmd_ake_send_hprime_out send_hprime_out = { { 0 } 
};
   205  struct device *dev;
   206  ssize_t byte;
   207  
   208  if (!data || !rx_hprime)
   209  return -EINVAL;
   210  
   211  dev = >dev;
   212  
   213  send_hprime_in.header.api_version = HDCP_API_VERSION;
   214  send_hprime_in.header.command_id = 

[Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info

2018-04-03 Thread Ramalingam C
Provides Pairing info to ME to store.

Pairing is a process to fast track the subsequent authentication
with the same HDCP sink.

On Success, received HDCP pairing info is stored in non-volatile
memory of ME.

v2:
  Rebased.
v3:
  cldev is passed as first parameter [Tomas]
  Redundant comments and cast are removed [Tomas]

Signed-off-by: Ramalingam C 
---
 drivers/misc/mei/hdcp/mei_hdcp.c | 61 
 include/linux/mei_hdcp.h | 10 +++
 2 files changed, 71 insertions(+)

diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
index fa548310de7a..60afdd0cee79 100644
--- a/drivers/misc/mei/hdcp/mei_hdcp.c
+++ b/drivers/misc/mei/hdcp/mei_hdcp.c
@@ -244,6 +244,67 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct 
mei_hdcp_data *data,
 }
 EXPORT_SYMBOL(mei_verify_hprime);
 
+/**
+ * mei_store_pairing_info:
+ * Function to store pairing info received from panel
+ *
+ * @cldev  : Pointer for mei client device
+ * @data   : Intel HW specific Data
+ * @pairing_info   : Pointer for AKE_Send_Pairing_Info
+ *
+ * Returns 0 on Success, <0 on Failure
+ */
+
+int mei_store_pairing_info(struct mei_cl_device *cldev,
+  struct mei_hdcp_data *data,
+  struct hdcp2_ake_send_pairing_info *pairing_info)
+{
+   struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 } };
+   struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { { 0 } };
+   struct device *dev;
+   ssize_t byte;
+
+   if (!data || !pairing_info)
+   return -EINVAL;
+
+   dev = >dev;
+
+   pairing_info_in.header.api_version = HDCP_API_VERSION;
+   pairing_info_in.header.command_id = WIRED_AKE_SEND_PAIRING_INFO;
+   pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS;
+   pairing_info_in.header.buffer_len =
+   WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN;
+
+   pairing_info_in.port.integrated_port_type = data->port_type;
+   pairing_info_in.port.physical_port = data->port;
+
+   memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km,
+  sizeof(pairing_info_in.e_kh_km));
+
+   byte = mei_cldev_send(cldev, (u8 *)_info_in,
+ sizeof(pairing_info_in));
+   if (byte < 0) {
+   dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte);
+   return byte;
+   }
+
+   byte = mei_cldev_recv(cldev, (u8 *)_info_out,
+ sizeof(pairing_info_out));
+   if (byte < 0) {
+   dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte);
+   return byte;
+   }
+
+   if (pairing_info_out.header.status != ME_HDCP_STATUS_SUCCESS) {
+   dev_dbg(dev, "ME cmd 0x%08X failed. Status: 0x%X\n",
+   WIRED_AKE_SEND_PAIRING_INFO,
+   pairing_info_out.header.status);
+   return -1;
+   }
+   return 0;
+}
+EXPORT_SYMBOL(mei_store_pairing_info);
+
 void mei_cldev_state_notify_clients(struct mei_cl_device *cldev, bool enabled)
 {
if (enabled)
diff --git a/include/linux/mei_hdcp.h b/include/linux/mei_hdcp.h
index 00bfde251ba4..be16e49d8018 100644
--- a/include/linux/mei_hdcp.h
+++ b/include/linux/mei_hdcp.h
@@ -118,6 +118,9 @@ mei_verify_receiver_cert_prepare_km(struct mei_cl_device 
*cldev,
size_t *msg_sz);
 int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data *data,
  struct hdcp2_ake_send_hprime *rx_hprime);
+int mei_store_pairing_info(struct mei_cl_device *cldev,
+  struct mei_hdcp_data *data,
+  struct hdcp2_ake_send_pairing_info *pairing_info);
 #else
 static int mei_cldev_register_notify(struct notifier_block *nb)
 {
@@ -150,5 +153,12 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct 
mei_hdcp_data *data,
 {
return -ENODEV;
 }
+static inline
+int mei_store_pairing_info(struct mei_cl_device *cldev,
+  struct mei_hdcp_data *data,
+  struct hdcp2_ake_send_pairing_info *pairing_info)
+{
+   return -ENODEV;
+}
 #endif /* defined (CONFIG_INTEL_MEI_HDCP) */
 #endif /* defined (_LINUX_MEI_HDCP_H) */
-- 
2.7.4

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