Lines Matching +full:port +full:- +full:specific
1 // SPDX-License-Identifier: GPL-2.0
31 * mei_hdcp_initiate_session() - Initiate a Wired HDCP2.2 Tx Session in ME FW
33 * @data: Intel HW specific hdcp data
49 return -EINVAL; in mei_hdcp_initiate_session()
59 session_init_in.port.integrated_port_type = data->port_type; in mei_hdcp_initiate_session()
60 session_init_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_initiate_session()
61 session_init_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_initiate_session()
62 session_init_in.protocol = data->protocol; in mei_hdcp_initiate_session()
82 return -EIO; in mei_hdcp_initiate_session()
85 ake_data->msg_id = HDCP_2_2_AKE_INIT; in mei_hdcp_initiate_session()
86 ake_data->tx_caps = session_init_out.tx_caps; in mei_hdcp_initiate_session()
87 memcpy(ake_data->r_tx, session_init_out.r_tx, HDCP_2_2_RTX_LEN); in mei_hdcp_initiate_session()
93 * mei_hdcp_verify_receiver_cert_prepare_km() - Verify the Receiver Certificate
96 * @data: Intel HW specific hdcp data
119 return -EINVAL; in mei_hdcp_verify_receiver_cert_prepare_km()
129 verify_rxcert_in.port.integrated_port_type = data->port_type; in mei_hdcp_verify_receiver_cert_prepare_km()
130 verify_rxcert_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_verify_receiver_cert_prepare_km()
131 verify_rxcert_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_verify_receiver_cert_prepare_km()
133 verify_rxcert_in.cert_rx = rx_cert->cert_rx; in mei_hdcp_verify_receiver_cert_prepare_km()
134 memcpy(verify_rxcert_in.r_rx, &rx_cert->r_rx, HDCP_2_2_RRX_LEN); in mei_hdcp_verify_receiver_cert_prepare_km()
135 memcpy(verify_rxcert_in.rx_caps, rx_cert->rx_caps, HDCP_2_2_RXCAPS_LEN); in mei_hdcp_verify_receiver_cert_prepare_km()
155 return -EIO; in mei_hdcp_verify_receiver_cert_prepare_km()
160 ek_pub_km->msg_id = HDCP_2_2_AKE_STORED_KM; in mei_hdcp_verify_receiver_cert_prepare_km()
163 ek_pub_km->msg_id = HDCP_2_2_AKE_NO_STORED_KM; in mei_hdcp_verify_receiver_cert_prepare_km()
167 memcpy(ek_pub_km->e_kpub_km, &verify_rxcert_out.ekm_buff, in mei_hdcp_verify_receiver_cert_prepare_km()
174 * mei_hdcp_verify_hprime() - Verify AKE_Send_H_prime at ME FW.
176 * @data: Intel HW specific hdcp data
191 return -EINVAL; in mei_hdcp_verify_hprime()
200 send_hprime_in.port.integrated_port_type = data->port_type; in mei_hdcp_verify_hprime()
201 send_hprime_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_verify_hprime()
202 send_hprime_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_verify_hprime()
204 memcpy(send_hprime_in.h_prime, rx_hprime->h_prime, in mei_hdcp_verify_hprime()
224 return -EIO; in mei_hdcp_verify_hprime()
231 * mei_hdcp_store_pairing_info() - Store pairing info received at ME FW
233 * @data: Intel HW specific hdcp data
248 return -EINVAL; in mei_hdcp_store_pairing_info()
258 pairing_info_in.port.integrated_port_type = data->port_type; in mei_hdcp_store_pairing_info()
259 pairing_info_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_store_pairing_info()
260 pairing_info_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_store_pairing_info()
262 memcpy(pairing_info_in.e_kh_km, pairing_info->e_kh_km, in mei_hdcp_store_pairing_info()
283 return -EIO; in mei_hdcp_store_pairing_info()
290 * mei_hdcp_initiate_locality_check() - Prepare LC_Init
292 * @data: Intel HW specific hdcp data
308 return -EINVAL; in mei_hdcp_initiate_locality_check()
317 lc_init_in.port.integrated_port_type = data->port_type; in mei_hdcp_initiate_locality_check()
318 lc_init_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_initiate_locality_check()
319 lc_init_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_initiate_locality_check()
336 return -EIO; in mei_hdcp_initiate_locality_check()
339 lc_init_data->msg_id = HDCP_2_2_LC_INIT; in mei_hdcp_initiate_locality_check()
340 memcpy(lc_init_data->r_n, lc_init_out.r_n, HDCP_2_2_RN_LEN); in mei_hdcp_initiate_locality_check()
346 * mei_hdcp_verify_lprime() - Verify lprime.
348 * @data: Intel HW specific hdcp data
363 return -EINVAL; in mei_hdcp_verify_lprime()
373 verify_lprime_in.port.integrated_port_type = data->port_type; in mei_hdcp_verify_lprime()
374 verify_lprime_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_verify_lprime()
375 verify_lprime_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_verify_lprime()
377 memcpy(verify_lprime_in.l_prime, rx_lprime->l_prime, in mei_hdcp_verify_lprime()
398 return -EIO; in mei_hdcp_verify_lprime()
405 * mei_hdcp_get_session_key() - Prepare SKE_Send_Eks.
407 * @data: Intel HW specific hdcp data
422 return -EINVAL; in mei_hdcp_get_session_key()
431 get_skey_in.port.integrated_port_type = data->port_type; in mei_hdcp_get_session_key()
432 get_skey_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_get_session_key()
433 get_skey_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_get_session_key()
451 return -EIO; in mei_hdcp_get_session_key()
454 ske_data->msg_id = HDCP_2_2_SKE_SEND_EKS; in mei_hdcp_get_session_key()
455 memcpy(ske_data->e_dkey_ks, get_skey_out.e_dkey_ks, in mei_hdcp_get_session_key()
457 memcpy(ske_data->riv, get_skey_out.r_iv, HDCP_2_2_RIV_LEN); in mei_hdcp_get_session_key()
463 * mei_hdcp_repeater_check_flow_prepare_ack() - Validate the Downstream topology
466 * @data: Intel HW specific hdcp data
486 return -EINVAL; in mei_hdcp_repeater_check_flow_prepare_ack()
496 verify_repeater_in.port.integrated_port_type = data->port_type; in mei_hdcp_repeater_check_flow_prepare_ack()
497 verify_repeater_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_repeater_check_flow_prepare_ack()
498 verify_repeater_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_repeater_check_flow_prepare_ack()
500 memcpy(verify_repeater_in.rx_info, rep_topology->rx_info, in mei_hdcp_repeater_check_flow_prepare_ack()
502 memcpy(verify_repeater_in.seq_num_v, rep_topology->seq_num_v, in mei_hdcp_repeater_check_flow_prepare_ack()
504 memcpy(verify_repeater_in.v_prime, rep_topology->v_prime, in mei_hdcp_repeater_check_flow_prepare_ack()
506 memcpy(verify_repeater_in.receiver_ids, rep_topology->receiver_ids, in mei_hdcp_repeater_check_flow_prepare_ack()
527 return -EIO; in mei_hdcp_repeater_check_flow_prepare_ack()
530 memcpy(rep_send_ack->v, verify_repeater_out.v, in mei_hdcp_repeater_check_flow_prepare_ack()
532 rep_send_ack->msg_id = HDCP_2_2_REP_SEND_ACK; in mei_hdcp_repeater_check_flow_prepare_ack()
538 * mei_hdcp_verify_mprime() - Verify mprime.
540 * @data: Intel HW specific hdcp data
557 return -EINVAL; in mei_hdcp_verify_mprime()
561 cmd_size = struct_size(verify_mprime_in, streams, data->k); in mei_hdcp_verify_mprime()
563 return -EINVAL; in mei_hdcp_verify_mprime()
567 return -ENOMEM; in mei_hdcp_verify_mprime()
569 verify_mprime_in->header.api_version = HDCP_API_VERSION; in mei_hdcp_verify_mprime()
570 verify_mprime_in->header.command_id = WIRED_REPEATER_AUTH_STREAM_REQ; in mei_hdcp_verify_mprime()
571 verify_mprime_in->header.status = ME_HDCP_STATUS_SUCCESS; in mei_hdcp_verify_mprime()
572 verify_mprime_in->header.buffer_len = cmd_size - sizeof(verify_mprime_in->header); in mei_hdcp_verify_mprime()
574 verify_mprime_in->port.integrated_port_type = data->port_type; in mei_hdcp_verify_mprime()
575 verify_mprime_in->port.physical_port = (u8)data->fw_ddi; in mei_hdcp_verify_mprime()
576 verify_mprime_in->port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_verify_mprime()
578 memcpy(verify_mprime_in->m_prime, stream_ready->m_prime, HDCP_2_2_MPRIME_LEN); in mei_hdcp_verify_mprime()
579 drm_hdcp_cpu_to_be24(verify_mprime_in->seq_num_m, data->seq_num_m); in mei_hdcp_verify_mprime()
581 memcpy(verify_mprime_in->streams, data->streams, in mei_hdcp_verify_mprime()
582 array_size(data->k, sizeof(*data->streams))); in mei_hdcp_verify_mprime()
584 verify_mprime_in->k = cpu_to_be16(data->k); in mei_hdcp_verify_mprime()
604 return -EIO; in mei_hdcp_verify_mprime()
611 * mei_hdcp_enable_authentication() - Mark a port as authenticated
614 * @data: Intel HW specific hdcp data
627 return -EINVAL; in mei_hdcp_enable_authentication()
636 enable_auth_in.port.integrated_port_type = data->port_type; in mei_hdcp_enable_authentication()
637 enable_auth_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_enable_authentication()
638 enable_auth_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_enable_authentication()
639 enable_auth_in.stream_type = data->streams[0].stream_type; in mei_hdcp_enable_authentication()
658 return -EIO; in mei_hdcp_enable_authentication()
665 * mei_hdcp_close_session() - Close the Wired HDCP Tx session of ME FW per port.
666 * This also disables the authenticated state of the port.
668 * @data: Intel HW specific hdcp data
681 return -EINVAL; in mei_hdcp_close_session()
691 session_close_in.port.integrated_port_type = data->port_type; in mei_hdcp_close_session()
692 session_close_in.port.physical_port = (u8)data->fw_ddi; in mei_hdcp_close_session()
693 session_close_in.port.attached_transcoder = (u8)data->fw_tc; in mei_hdcp_close_session()
712 return -EIO; in mei_hdcp_close_session()
743 comp_master->ops = &mei_hdcp_ops; in mei_component_master_bind()
744 comp_master->mei_dev = dev; in mei_component_master_bind()
768 * mei_hdcp_component_match - compare function for matching mei hdcp.
779 * * 1 - if components match
780 * * 0 - otherwise
787 if (!dev->driver || strcmp(dev->driver->name, "i915") || in mei_hdcp_component_match()
791 base = base->parent; in mei_hdcp_component_match()
795 base = base->parent; in mei_hdcp_component_match()
796 dev = dev->parent; in mei_hdcp_component_match()
810 dev_err(&cldev->dev, "mei_cldev_enable Failed. %d\n", ret); in mei_hdcp_probe()
816 ret = -ENOMEM; in mei_hdcp_probe()
821 component_match_add_typed(&cldev->dev, &master_match, in mei_hdcp_probe()
822 mei_hdcp_component_match, &cldev->dev); in mei_hdcp_probe()
824 ret = -ENOMEM; in mei_hdcp_probe()
829 ret = component_master_add_with_match(&cldev->dev, in mei_hdcp_probe()
833 dev_err(&cldev->dev, "Master comp add failed %d\n", ret); in mei_hdcp_probe()
853 component_master_del(&cldev->dev, &mei_component_master_ops); in mei_hdcp_remove()
859 dev_warn(&cldev->dev, "mei_cldev_disable() failed\n"); in mei_hdcp_remove()