> -----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-...@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-devel@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-...@lists.freedesktop.org; > > >> dri-devel@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_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 = &cldev->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 *)&pairing_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 *)&pairing_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, { > > >> 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-...@lists.freedesktop.org > > >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel