Message ID | 1522763873-23041-13-git-send-email-ramalingam.c@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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:137: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:144: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:154: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:160: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_initiate_locality_check' int mei_initiate_locality_check(struct mei_cl_device *cldev, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/misc/mei/hdcp/mei_hdcp.c:35:0: include/linux/mei_hdcp.h:167:5: note: previous definition of 'mei_initiate_locality_check' was here int mei_initiate_locality_check(struct mei_cl_device *cldev, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/misc/mei/hdcp/mei_hdcp.c:374: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:128: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:380: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:132: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:132:12: warning: 'mei_cldev_unregister_notify' defined but not used [-Wunused-function] include/linux/mei_hdcp.h:128:12: warning: 'mei_cldev_register_notify' defined but not used [-Wunused-function] static int mei_cldev_register_notify(struct notifier_block *nb) ^~~~~~~~~~~~~~~~~~~~~~~~~ vim +/mei_initiate_locality_check +318 drivers/misc/mei/hdcp/mei_hdcp.c 246 247 /** 248 * mei_store_pairing_info: 249 * Function to store pairing info received from panel 250 * 251 * @cldev : Pointer for mei client device 252 * @data : Intel HW specific Data 253 * @pairing_info : Pointer for AKE_Send_Pairing_Info 254 * 255 * Returns 0 on Success, <0 on Failure 256 */ 257 > 258 int mei_store_pairing_info(struct mei_cl_device *cldev, 259 struct mei_hdcp_data *data, 260 struct hdcp2_ake_send_pairing_info *pairing_info) 261 { 262 struct wired_cmd_ake_send_pairing_info_in pairing_info_in = { { 0 } }; 263 struct wired_cmd_ake_send_pairing_info_out pairing_info_out = { { 0 } }; 264 struct device *dev; 265 ssize_t byte; 266 267 if (!data || !pairing_info) 268 return -EINVAL; 269 270 dev = &cldev->dev; 271 272 pairing_info_in.header.api_version = HDCP_API_VERSION; 273 pairing_info_in.header.command_id = WIRED_AKE_SEND_PAIRING_INFO; 274 pairing_info_in.header.status = ME_HDCP_STATUS_SUCCESS; 275 pairing_info_in.header.buffer_len = 276 WIRED_CMD_BUF_LEN_SEND_PAIRING_INFO_IN; 277 278 pairing_info_in.port.integrated_port_type = data->port_type; 279 pairing_info_in.port.physical_port = data->port; 280 281 memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km, 282 sizeof(pairing_info_in.e_kh_km)); 283 284 byte = mei_cldev_send(cldev, (u8 *)&pairing_info_in, 285 sizeof(pairing_info_in)); 286 if (byte < 0) { 287 dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte); 288 return byte; 289 } 290 291 byte = mei_cldev_recv(cldev, (u8 *)&pairing_info_out, 292 sizeof(pairing_info_out)); 293 if (byte < 0) { 294 dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte); 295 return byte; 296 } 297 298 if (pairing_info_out.header.status != ME_HDCP_STATUS_SUCCESS) { 299 dev_dbg(dev, "ME cmd 0x%08X failed. Status: 0x%X\n", 300 WIRED_AKE_SEND_PAIRING_INFO, 301 pairing_info_out.header.status); 302 return -1; 303 } 304 return 0; 305 } 306 EXPORT_SYMBOL(mei_store_pairing_info); 307 308 /** 309 * mei_initiate_locality_check: 310 * Function to prepare LC_Init. 311 * 312 * @cldev : Pointer for mei client device 313 * @data : Intel HW specific Data 314 * @hdcp2_lc_init : Pointer for storing LC_Init 315 * 316 * Returns 0 on Success, <0 on Failure 317 */ > 318 int mei_initiate_locality_check(struct mei_cl_device *cldev, 319 struct mei_hdcp_data *data, 320 struct hdcp2_lc_init *lc_init_data) 321 { 322 struct wired_cmd_init_locality_check_in lc_init_in = { { 0 } }; 323 struct wired_cmd_init_locality_check_out lc_init_out = { { 0 } }; 324 struct device *dev; 325 ssize_t byte; 326 327 if (!data || !lc_init_data) 328 return -EINVAL; 329 330 dev = &cldev->dev; 331 332 lc_init_in.header.api_version = HDCP_API_VERSION; 333 lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK; 334 lc_init_in.header.status = ME_HDCP_STATUS_SUCCESS; 335 lc_init_in.header.buffer_len = WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN; 336 337 lc_init_in.port.integrated_port_type = data->port_type; 338 lc_init_in.port.physical_port = data->port; 339 340 byte = mei_cldev_send(cldev, (u8 *)&lc_init_in, sizeof(lc_init_in)); 341 if (byte < 0) { 342 dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte); 343 return byte; 344 } 345 346 byte = mei_cldev_recv(cldev, (u8 *)&lc_init_out, sizeof(lc_init_out)); 347 if (byte < 0) { 348 dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte); 349 return byte; 350 } 351 352 if (lc_init_out.header.status != ME_HDCP_STATUS_SUCCESS) { 353 dev_dbg(dev, "ME cmd 0x%08X Failed. status: 0x%X\n", 354 WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status); 355 return -1; 356 } 357 358 lc_init_data->msg_id = HDCP_2_2_LC_INIT; 359 memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN); 360 return 0; 361 } 362 EXPORT_SYMBOL(mei_initiate_locality_check); 363 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
>-----Original Message----- >From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of >Ramalingam C >Sent: Tuesday, April 3, 2018 7:27 PM >To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; >seanpaul@chromium.org; daniel@ffwll.ch; chris@chris-wilson.co.uk; >jani.nikula@linux.intel.com; Winkler, Tomas <tomas.winkler@intel.com>; >Usyskin, Alexander <alexander.usyskin@intel.com> >Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com> >Subject: [PATCH v3 12/40] misc/mei/hdcp: Initiate Locality check > >Requests ME to start the second stage of HDCP2.2 authentication, called Locality >Check. > >On Success, ME FW will provide LC_Init message to send to hdcp sink. > >v2: > Rebased. >v3: > cldev is passed as first parameter [Tomas] > Redundant comments and cast are removed [Tomas] > >Signed-off-by: Ramalingam C <ramalingam.c@intel.com> >--- > drivers/misc/mei/hdcp/mei_hdcp.c | 56 >++++++++++++++++++++++++++++++++++++++++ > include/linux/mei_hdcp.h | 10 +++++++ > 2 files changed, 66 insertions(+) > >diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c >b/drivers/misc/mei/hdcp/mei_hdcp.c >index 60afdd0cee79..9bd7e66a91e4 100644 >--- a/drivers/misc/mei/hdcp/mei_hdcp.c >+++ b/drivers/misc/mei/hdcp/mei_hdcp.c >@@ -305,6 +305,62 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, >} EXPORT_SYMBOL(mei_store_pairing_info); > >+/** >+ * mei_initiate_locality_check: >+ * Function to prepare LC_Init. >+ * >+ * @cldev : Pointer for mei client device >+ * @data : Intel HW specific Data >+ * @hdcp2_lc_init : Pointer for storing LC_Init >+ * >+ * Returns 0 on Success, <0 on Failure >+ */ >+int mei_initiate_locality_check(struct mei_cl_device *cldev, >+ struct mei_hdcp_data *data, >+ struct hdcp2_lc_init *lc_init_data) { >+ struct wired_cmd_init_locality_check_in lc_init_in = { { 0 } }; >+ struct wired_cmd_init_locality_check_out lc_init_out = { { 0 } }; >+ struct device *dev; >+ ssize_t byte; >+ >+ if (!data || !lc_init_data) >+ return -EINVAL; >+ >+ dev = &cldev->dev; >+ >+ lc_init_in.header.api_version = HDCP_API_VERSION; >+ lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK; >+ lc_init_in.header.status = ME_HDCP_STATUS_SUCCESS; >+ lc_init_in.header.buffer_len = >+WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN; >+ >+ lc_init_in.port.integrated_port_type = data->port_type; >+ lc_init_in.port.physical_port = data->port; >+ >+ byte = mei_cldev_send(cldev, (u8 *)&lc_init_in, sizeof(lc_init_in)); >+ if (byte < 0) { >+ dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte); >+ return byte; >+ } >+ >+ byte = mei_cldev_recv(cldev, (u8 *)&lc_init_out, sizeof(lc_init_out)); >+ if (byte < 0) { >+ dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte); >+ return byte; >+ } >+ >+ if (lc_init_out.header.status != ME_HDCP_STATUS_SUCCESS) { >+ dev_dbg(dev, "ME cmd 0x%08X Failed. status: 0x%X\n", >+ WIRED_INIT_LOCALITY_CHECK, >lc_init_out.header.status); >+ return -1; >+ } >+ >+ lc_init_data->msg_id = HDCP_2_2_LC_INIT; >+ memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN); Check for validity of lc_init_data->r_n. Also, leave a blank line. >+ return 0; >+} >+EXPORT_SYMBOL(mei_initiate_locality_check); >+ > 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 >be16e49d8018..d9c4cac0b276 100644 >--- a/include/linux/mei_hdcp.h >+++ b/include/linux/mei_hdcp.h >@@ -121,6 +121,9 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct >mei_hdcp_data *data, int mei_store_pairing_info(struct mei_cl_device *cldev, > struct mei_hdcp_data *data, > struct hdcp2_ake_send_pairing_info *pairing_info); >+int mei_initiate_locality_check(struct mei_cl_device *cldev, >+ struct mei_hdcp_data *data, >+ struct hdcp2_lc_init *lc_init_data); > #else > static int mei_cldev_register_notify(struct notifier_block *nb) { @@ -160,5 >+163,12 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, { > return -ENODEV; > } >+static inline >+int mei_initiate_locality_check(struct mei_cl_device *cldev, >+ struct mei_hdcp_data *data, >+ struct hdcp2_lc_init *lc_init_data) { >+ return -ENODEV; >+} > #endif /* defined (CONFIG_INTEL_MEI_HDCP) */ #endif /* defined >(_LINUX_MEI_HDCP_H) */ >-- >2.7.4 > >_______________________________________________ >dri-devel mailing list >dri-devel@lists.freedesktop.org >https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Wednesday 09 May 2018 04:01 PM, Shankar, Uma wrote: > >> -----Original Message----- >> From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of >> Ramalingam C >> Sent: Tuesday, April 3, 2018 7:27 PM >> To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; >> seanpaul@chromium.org; daniel@ffwll.ch; chris@chris-wilson.co.uk; >> jani.nikula@linux.intel.com; Winkler, Tomas <tomas.winkler@intel.com>; >> Usyskin, Alexander <alexander.usyskin@intel.com> >> Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com> >> Subject: [PATCH v3 12/40] misc/mei/hdcp: Initiate Locality check >> >> Requests ME to start the second stage of HDCP2.2 authentication, called Locality >> Check. >> >> On Success, ME FW will provide LC_Init message to send to hdcp sink. >> >> v2: >> Rebased. >> v3: >> cldev is passed as first parameter [Tomas] >> Redundant comments and cast are removed [Tomas] >> >> Signed-off-by: Ramalingam C <ramalingam.c@intel.com> >> --- >> drivers/misc/mei/hdcp/mei_hdcp.c | 56 >> ++++++++++++++++++++++++++++++++++++++++ >> include/linux/mei_hdcp.h | 10 +++++++ >> 2 files changed, 66 insertions(+) >> >> diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c >> b/drivers/misc/mei/hdcp/mei_hdcp.c >> index 60afdd0cee79..9bd7e66a91e4 100644 >> --- a/drivers/misc/mei/hdcp/mei_hdcp.c >> +++ b/drivers/misc/mei/hdcp/mei_hdcp.c >> @@ -305,6 +305,62 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, >> } EXPORT_SYMBOL(mei_store_pairing_info); >> >> +/** >> + * mei_initiate_locality_check: >> + * Function to prepare LC_Init. >> + * >> + * @cldev : Pointer for mei client device >> + * @data : Intel HW specific Data >> + * @hdcp2_lc_init : Pointer for storing LC_Init >> + * >> + * Returns 0 on Success, <0 on Failure >> + */ >> +int mei_initiate_locality_check(struct mei_cl_device *cldev, >> + struct mei_hdcp_data *data, >> + struct hdcp2_lc_init *lc_init_data) { >> + struct wired_cmd_init_locality_check_in lc_init_in = { { 0 } }; >> + struct wired_cmd_init_locality_check_out lc_init_out = { { 0 } }; >> + struct device *dev; >> + ssize_t byte; >> + >> + if (!data || !lc_init_data) >> + return -EINVAL; >> + >> + dev = &cldev->dev; >> + >> + lc_init_in.header.api_version = HDCP_API_VERSION; >> + lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK; >> + lc_init_in.header.status = ME_HDCP_STATUS_SUCCESS; >> + lc_init_in.header.buffer_len = >> +WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN; >> + >> + lc_init_in.port.integrated_port_type = data->port_type; >> + lc_init_in.port.physical_port = data->port; >> + >> + byte = mei_cldev_send(cldev, (u8 *)&lc_init_in, sizeof(lc_init_in)); >> + if (byte < 0) { >> + dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte); >> + return byte; >> + } >> + >> + byte = mei_cldev_recv(cldev, (u8 *)&lc_init_out, sizeof(lc_init_out)); >> + if (byte < 0) { >> + dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte); >> + return byte; >> + } >> + >> + if (lc_init_out.header.status != ME_HDCP_STATUS_SUCCESS) { >> + dev_dbg(dev, "ME cmd 0x%08X Failed. status: 0x%X\n", >> + WIRED_INIT_LOCALITY_CHECK, >> lc_init_out.header.status); >> + return -1; >> + } >> + >> + lc_init_data->msg_id = HDCP_2_2_LC_INIT; >> + memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN); > Check for validity of lc_init_data->r_n. > Also, leave a blank line. ok --Ram > >> + return 0; >> +} >> +EXPORT_SYMBOL(mei_initiate_locality_check); >> + >> 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 >> be16e49d8018..d9c4cac0b276 100644 >> --- a/include/linux/mei_hdcp.h >> +++ b/include/linux/mei_hdcp.h >> @@ -121,6 +121,9 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct >> mei_hdcp_data *data, int mei_store_pairing_info(struct mei_cl_device *cldev, >> struct mei_hdcp_data *data, >> struct hdcp2_ake_send_pairing_info *pairing_info); >> +int mei_initiate_locality_check(struct mei_cl_device *cldev, >> + struct mei_hdcp_data *data, >> + struct hdcp2_lc_init *lc_init_data); >> #else >> static int mei_cldev_register_notify(struct notifier_block *nb) { @@ -160,5 >> +163,12 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, { >> return -ENODEV; >> } >> +static inline >> +int mei_initiate_locality_check(struct mei_cl_device *cldev, >> + struct mei_hdcp_data *data, >> + struct hdcp2_lc_init *lc_init_data) { >> + return -ENODEV; >> +} >> #endif /* defined (CONFIG_INTEL_MEI_HDCP) */ #endif /* defined >> (_LINUX_MEI_HDCP_H) */ >> -- >> 2.7.4 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c index 60afdd0cee79..9bd7e66a91e4 100644 --- a/drivers/misc/mei/hdcp/mei_hdcp.c +++ b/drivers/misc/mei/hdcp/mei_hdcp.c @@ -305,6 +305,62 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, } EXPORT_SYMBOL(mei_store_pairing_info); +/** + * mei_initiate_locality_check: + * Function to prepare LC_Init. + * + * @cldev : Pointer for mei client device + * @data : Intel HW specific Data + * @hdcp2_lc_init : Pointer for storing LC_Init + * + * Returns 0 on Success, <0 on Failure + */ +int mei_initiate_locality_check(struct mei_cl_device *cldev, + struct mei_hdcp_data *data, + struct hdcp2_lc_init *lc_init_data) +{ + struct wired_cmd_init_locality_check_in lc_init_in = { { 0 } }; + struct wired_cmd_init_locality_check_out lc_init_out = { { 0 } }; + struct device *dev; + ssize_t byte; + + if (!data || !lc_init_data) + return -EINVAL; + + dev = &cldev->dev; + + lc_init_in.header.api_version = HDCP_API_VERSION; + lc_init_in.header.command_id = WIRED_INIT_LOCALITY_CHECK; + lc_init_in.header.status = ME_HDCP_STATUS_SUCCESS; + lc_init_in.header.buffer_len = WIRED_CMD_BUF_LEN_INIT_LOCALITY_CHECK_IN; + + lc_init_in.port.integrated_port_type = data->port_type; + lc_init_in.port.physical_port = data->port; + + byte = mei_cldev_send(cldev, (u8 *)&lc_init_in, sizeof(lc_init_in)); + if (byte < 0) { + dev_dbg(dev, "mei_cldev_send failed. %d\n", (int)byte); + return byte; + } + + byte = mei_cldev_recv(cldev, (u8 *)&lc_init_out, sizeof(lc_init_out)); + if (byte < 0) { + dev_dbg(dev, "mei_cldev_recv failed. %d\n", (int)byte); + return byte; + } + + if (lc_init_out.header.status != ME_HDCP_STATUS_SUCCESS) { + dev_dbg(dev, "ME cmd 0x%08X Failed. status: 0x%X\n", + WIRED_INIT_LOCALITY_CHECK, lc_init_out.header.status); + return -1; + } + + lc_init_data->msg_id = HDCP_2_2_LC_INIT; + memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN); + return 0; +} +EXPORT_SYMBOL(mei_initiate_locality_check); + 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 be16e49d8018..d9c4cac0b276 100644 --- a/include/linux/mei_hdcp.h +++ b/include/linux/mei_hdcp.h @@ -121,6 +121,9 @@ int mei_verify_hprime(struct mei_cl_device *cldev, struct mei_hdcp_data *data, int mei_store_pairing_info(struct mei_cl_device *cldev, struct mei_hdcp_data *data, struct hdcp2_ake_send_pairing_info *pairing_info); +int mei_initiate_locality_check(struct mei_cl_device *cldev, + struct mei_hdcp_data *data, + struct hdcp2_lc_init *lc_init_data); #else static int mei_cldev_register_notify(struct notifier_block *nb) { @@ -160,5 +163,12 @@ int mei_store_pairing_info(struct mei_cl_device *cldev, { return -ENODEV; } +static inline +int mei_initiate_locality_check(struct mei_cl_device *cldev, + struct mei_hdcp_data *data, + struct hdcp2_lc_init *lc_init_data) +{ + return -ENODEV; +} #endif /* defined (CONFIG_INTEL_MEI_HDCP) */ #endif /* defined (_LINUX_MEI_HDCP_H) */
Requests ME to start the second stage of HDCP2.2 authentication, called Locality Check. On Success, ME FW will provide LC_Init message to send to hdcp sink. v2: Rebased. v3: cldev is passed as first parameter [Tomas] Redundant comments and cast are removed [Tomas] Signed-off-by: Ramalingam C <ramalingam.c@intel.com> --- drivers/misc/mei/hdcp/mei_hdcp.c | 56 ++++++++++++++++++++++++++++++++++++++++ include/linux/mei_hdcp.h | 10 +++++++ 2 files changed, 66 insertions(+)