Re: [Intel-gfx] [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info
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
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
> -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
> -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
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
>-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
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
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