sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget'/translations/zh_CN/driver-api/mei/hdcpmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/zh_TW/driver-api/mei/hdcpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/it_IT/driver-api/mei/hdcpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ja_JP/driver-api/mei/hdcpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/ko_KR/driver-api/mei/hdcpmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/sp_SP/driver-api/mei/hdcpmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhA/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp.rsthKubhsection)}(hhh](htitle)}(hHDCP:h]hHDCP:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hME FW as a security engine provides the capability for setting up HDCP2.2 protocol negotiation between the Intel graphics device and an HDC2.2 sink.h]hME FW as a security engine provides the capability for setting up HDCP2.2 protocol negotiation between the Intel graphics device and an HDC2.2 sink.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hME FW prepares HDCP2.2 negotiation parameters, signs and encrypts them according the HDCP 2.2 spec. The Intel graphics sends the created blob to the HDCP2.2 sink.h]hME FW prepares HDCP2.2 negotiation parameters, signs and encrypts them according the HDCP 2.2 spec. The Intel graphics sends the created blob to the HDCP2.2 sink.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h_Similarly, the HDCP2.2 sink's response is transferred to ME FW for decryption and verification.h]haSimilarly, the HDCP2.2 sink’s response is transferred to ME FW for decryption and verification.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hOnce all the steps of HDCP2.2 negotiation are completed, upon request ME FW will configure the port as authenticated and supply the HDCP encryption keys to Intel graphics hardware.h]hOnce all the steps of HDCP2.2 negotiation are completed, upon request ME FW will configure the port as authenticated and supply the HDCP encryption keys to Intel graphics hardware.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hmei_hdcp driverh]hmei_hdcp driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe mei_hdcp driver acts as a translation layer between HDCP 2.2 protocol implementer (I915) and ME FW by translating HDCP2.2 negotiation messages to ME FW command payloads and vice versa.h]hThe mei_hdcp driver acts as a translation layer between HDCP 2.2 protocol implementer (I915) and ME FW by translating HDCP2.2 negotiation messages to ME FW command payloads and vice versa.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:24: ./drivers/misc/mei/hdcp/mei_hdcp.chK hjhhubeh}(h]mei-hdcp-driverah ]h"]mei_hdcp driverah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h mei_hdcp apih]h mei_hdcp api}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single&mei_hdcp_initiate_session (C function)c.mei_hdcp_initiate_sessionhNtauh1j<hj+hhhNhNubhdesc)}(hhh](hdesc_signature)}(hpint mei_hdcp_initiate_session (struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_init *ake_data)h]hdesc_signature_line)}(hoint mei_hdcp_initiate_session(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_init *ake_data)h](hdesc_sig_keyword_type)}(hinth]hint}(hj`hhhNhNubah}(h]h ]ktah"]h$]h&]uh1j^hjZhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK'ubhdesc_sig_space)}(h h]h }(hjrhhhNhNubah}(h]h ]wah"]h$]h&]uh1jphjZhhhjohK'ubh desc_name)}(hmei_hdcp_initiate_sessionh]h desc_sig_name)}(hmei_hdcp_initiate_sessionh]hmei_hdcp_initiate_session}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjZhhhjohK'ubhdesc_parameterlist)}(hR(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_init *ake_data)h](hdesc_parameter)}(hstruct device *devh](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.mei_hdcp_initiate_sessionasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubjq)}(h h]h }(hj<hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj+ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jc.mei_hdcp_initiate_sessionasbuh1hhj+ubjq)}(h h]h }(hjkhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj+ubj)}(hj h]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp2_ake_init *ake_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp2_ake_inith]hhdcp2_ake_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.mei_hdcp_initiate_sessionasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hake_datah]hake_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjZhhhjohK'ubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jXsphinx_line_type declaratorhjThhhjohK'ubah}(h]jKah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jRhjohK'hjOhhubh desc_content)}(hhh]h)}(h,Initiate a Wired HDCP2.2 Tx Session in ME FWh]h,Initiate a Wired HDCP2.2 Tx Session in ME FW}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK hj'hhubah}(h]h ]h"]h$]h&]uh1j%hjOhhhjohK'ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejBdesctypejBnoindex noindexentrynocontentsentryuh1jMhhhj+hNhNubh container)}(h**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_ake_init *ake_data`` AKE_Init msg output. **Return** 0 on Success, <0 on Failure.h](h)}(h**Parameters**h]hstrong)}(hjTh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjRubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK$hjNubhdefinition_list)}(hhh](hdefinition_list_item)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](hterm)}(h``struct device *dev``h]hliteral)}(hj{h]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjyubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK!hjsubh definition)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK!hjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jqhjhK!hjnubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK"hjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhK"hjnubjr)}(h9``struct hdcp2_ake_init *ake_data`` AKE_Init msg output. h](jx)}(h#``struct hdcp2_ake_init *ake_data``h]j~)}(hjh]hstruct hdcp2_ake_init *ake_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK#hjubj)}(hhh]h)}(hAKE_Init msg output.h]hAKE_Init msg output.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhK#hjnubeh}(h]h ]h"]h$]h&]uh1jlhjNubh)}(h **Return**h]jW)}(hj,h]hReturn}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj*ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK%hjNubh)}(h0 on Success, <0 on Failure.h]h0 on Success, <0 on Failure.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK%hjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI5mei_hdcp_verify_receiver_cert_prepare_km (C function)*c.mei_hdcp_verify_receiver_cert_prepare_kmhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hint mei_hdcp_verify_receiver_cert_prepare_km (struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_cert *rx_cert, bool *km_stored, struct hdcp2_ake_no_stored_km *ek_pub_km, size_t *msg_sz)h]jY)}(hint mei_hdcp_verify_receiver_cert_prepare_km(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_cert *rx_cert, bool *km_stored, struct hdcp2_ake_no_stored_km *ek_pub_km, size_t *msg_sz)h](j_)}(hinth]hint}(hjqhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjmhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKiubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjmhhhjhKiubj)}(h(mei_hdcp_verify_receiver_cert_prepare_kmh]j)}(h(mei_hdcp_verify_receiver_cert_prepare_kmh]h(mei_hdcp_verify_receiver_cert_prepare_km}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjmhhhjhKiubj)}(h(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_cert *rx_cert, bool *km_stored, struct hdcp2_ake_no_stored_km *ek_pub_km, size_t *msg_sz)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hj-hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubjq)}(h h]h }(hj\hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h#struct hdcp2_ake_send_cert *rx_certh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp2_ake_send_certh]hhdcp2_ake_send_cert}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hrx_certh]hrx_cert}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hbool *km_storedh](j_)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h km_storedh]h km_stored}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h(struct hdcp2_ake_no_stored_km *ek_pub_kmh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjq)}(h h]h }(hjOhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>ubh)}(hhh]j)}(hhdcp2_ake_no_stored_kmh]hhdcp2_ake_no_stored_km}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhj>ubjq)}(h h]h }(hj~hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>ubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h ek_pub_kmh]h ek_pub_km}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hsize_t *msg_szh](h)}(hhh]j)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hmsg_szh]hmsg_sz}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjmhhhjhKiubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjihhhjhKiubah}(h]jdah ](jjeh"]h$]h&]j"j#)j$huh1jRhjhKihjfhhubj&)}(hhh]h)}(hXVerify the Receiver Certificate AKE_Send_Cert and prepare AKE_Stored_Km/AKE_No_Stored_Kmh]hXVerify the Receiver Certificate AKE_Send_Cert and prepare AKE_Stored_Km/AKE_No_Stored_Km}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK^hjhhubah}(h]h ]h"]h$]h&]uh1j%hjfhhhjhKiubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj0jHj0jIjJjKuh1jMhhhj+hNhNubjM)}(hX**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_ake_send_cert *rx_cert`` AKE_Send_Cert for verification ``bool *km_stored`` Pairing status flag output ``struct hdcp2_ake_no_stored_km *ek_pub_km`` AKE_Stored_Km/AKE_No_Stored_Km output msg ``size_t *msg_sz`` size of AKE_XXXXX_Km output msg **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj8ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKbhj4ubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hjYh]hstruct device *dev}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjWubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK`hjSubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhK`hjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jqhjnhK`hjPubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKahjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKahjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhKahjPubjr)}(hG``struct hdcp2_ake_send_cert *rx_cert`` AKE_Send_Cert for verification h](jx)}(h'``struct hdcp2_ake_send_cert *rx_cert``h]j~)}(hjh]h#struct hdcp2_ake_send_cert *rx_cert}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKbhjubj)}(hhh]h)}(hAKE_Send_Cert for verificationh]hAKE_Send_Cert for verification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKbhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhKbhjPubjr)}(h/``bool *km_stored`` Pairing status flag output h](jx)}(h``bool *km_stored``h]j~)}(hjh]hbool *km_stored}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKchjubj)}(hhh]h)}(hPairing status flag outputh]hPairing status flag output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKchjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhKchjPubjr)}(hW``struct hdcp2_ake_no_stored_km *ek_pub_km`` AKE_Stored_Km/AKE_No_Stored_Km output msg h](jx)}(h,``struct hdcp2_ake_no_stored_km *ek_pub_km``h]j~)}(hj=h]h(struct hdcp2_ake_no_stored_km *ek_pub_km}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj;ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKdhj7ubj)}(hhh]h)}(h)AKE_Stored_Km/AKE_No_Stored_Km output msgh]h)AKE_Stored_Km/AKE_No_Stored_Km output msg}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhKdhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jqhjRhKdhjPubjr)}(h3``size_t *msg_sz`` size of AKE_XXXXX_Km output msg h](jx)}(h``size_t *msg_sz``h]j~)}(hjvh]hsize_t *msg_sz}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjtubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKehjpubj)}(hhh]h)}(hsize of AKE_XXXXX_Km output msgh]hsize of AKE_XXXXX_Km output msg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKehjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jqhjhKehjPubeh}(h]h ]h"]h$]h&]uh1jlhj4ubh)}(h **Return**h]jW)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKghj4ubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKghj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI#mei_hdcp_verify_hprime (C function)c.mei_hdcp_verify_hprimehNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(huint mei_hdcp_verify_hprime (struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_hprime *rx_hprime)h]jY)}(htint mei_hdcp_verify_hprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_hprime *rx_hprime)h](j_)}(hinth]hint}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhhhj hKubj)}(hmei_hdcp_verify_hprimeh]j)}(hmei_hdcp_verify_hprimeh]hmei_hdcp_verify_hprime}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj hKubj)}(hZ(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_hprime *rx_hprime)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ ubjq)}(h h]h }(hj@ hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj/ ubh)}(hhh]j)}(hdeviceh]hdevice}(hjQ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjS modnameN classnameNjj)}j]j)}jj sbc.mei_hdcp_verify_hprimeasbuh1hhj/ ubjq)}(h h]h }(hjq hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj/ ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ ubj)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+ ubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jm c.mei_hdcp_verify_hprimeasbuh1hhj ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+ ubj)}(h'struct hdcp2_ake_send_hprime *rx_hprimeh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(h h]h }(hj" hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubh)}(hhh]j)}(hhdcp2_ake_send_hprimeh]hhdcp2_ake_send_hprime}(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5 modnameN classnameNjj)}j]jm c.mei_hdcp_verify_hprimeasbuh1hhj ubjq)}(h h]h }(hjQ hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubj)}(hj h]h*}(hj_ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h rx_hprimeh]h rx_hprime}(hjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+ ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjhhhj hKubah}(h]jah ](jjeh"]h$]h&]j"j#)j$huh1jRhj hKhjhhubj&)}(hhh]h)}(h!Verify AKE_Send_H_prime at ME FW.h]h!Verify AKE_Send_H_prime at ME FW.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj hhubah}(h]h ]h"]h$]h&]uh1j%hjhhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj jHj jIjJjKuh1jMhhhj+hNhNubjM)}(hX**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_ake_send_hprime *rx_hprime`` AKE_Send_H_prime msg for ME FW verification **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj hKhj ubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hj h]hstruct hdcp_port_data *data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj% hKhj& ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj% hKhj ubjr)}(hX``struct hdcp2_ake_send_hprime *rx_hprime`` AKE_Send_H_prime msg for ME FW verification h](jx)}(h+``struct hdcp2_ake_send_hprime *rx_hprime``h]j~)}(hjI h]h'struct hdcp2_ake_send_hprime *rx_hprime}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjG ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhjC ubj)}(hhh]h)}(h+AKE_Send_H_prime msg for ME FW verificationh]h+AKE_Send_H_prime msg for ME FW verification}(hjb hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^ hKhj_ ubah}(h]h ]h"]h$]h&]uh1jhjC ubeh}(h]h ]h"]h$]h&]uh1jqhj^ hKhj ubeh}(h]h ]h"]h$]h&]uh1jlhj ubh)}(h **Return**h]jW)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI(mei_hdcp_store_pairing_info (C function)c.mei_hdcp_store_pairing_infohNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hint mei_hdcp_store_pairing_info (struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_pairing_info *pairing_info)h]jY)}(hint mei_hdcp_store_pairing_info(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_pairing_info *pairing_info)h](j_)}(hinth]hint}(hj hhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj hhhj hKubj)}(hmei_hdcp_store_pairing_infoh]j)}(hmei_hdcp_store_pairing_infoh]hmei_hdcp_store_pairing_info}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj hKubj)}(hc(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ake_send_pairing_info *pairing_info)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubh)}(hhh]j)}(hdeviceh]hdevice}(hj$ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj& modnameN classnameNjj)}j]j)}jj sbc.mei_hdcp_store_pairing_infoasbuh1hhj ubjq)}(h h]h }(hjD hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubj)}(hj h]h*}(hjR hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hdevh]hdev}(hj_ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjx hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjt ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j@ c.mei_hdcp_store_pairing_infoasbuh1hhjt ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjt ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h0struct hdcp2_ake_send_pairing_info *pairing_infoh](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubh)}(hhh]j)}(hhdcp2_ake_send_pairing_infoh]hhdcp2_ake_send_pairing_info}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j@ c.mei_hdcp_store_pairing_infoasbuh1hhj ubjq)}(h h]h }(hj$ hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj ubj)}(hj h]h*}(hj2 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h pairing_infoh]h pairing_info}(hj? hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhj hhhj hKubah}(h]j ah ](jjeh"]h$]h&]j"j#)j$huh1jRhj hKhj hhubj&)}(hhh]h)}(h$Store pairing info received at ME FWh]h$Store pairing info received at ME FW}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhjf hhubah}(h]h ]h"]h$]h&]uh1j%hj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj jHj jIjJjKuh1jMhhhj+hNhNubjM)}(hX**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_ake_send_pairing_info *pairing_info`` AKE_Send_Pairing_Info msg input to ME FW **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj hKhj ubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hj h]hstruct hdcp_port_data *data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj hKhj ubjr)}(h^``struct hdcp2_ake_send_pairing_info *pairing_info`` AKE_Send_Pairing_Info msg input to ME FW h](jx)}(h4``struct hdcp2_ake_send_pairing_info *pairing_info``h]j~)}(hjh]h0struct hdcp2_ake_send_pairing_info *pairing_info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhjubj)}(hhh]h)}(h(AKE_Send_Pairing_Info msg input to ME FWh]h(AKE_Send_Pairing_Info msg input to ME FW}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hKhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhj1hKhj ubeh}(h]h ]h"]h$]h&]uh1jlhj ubh)}(h **Return**h]jW)}(hjWh]hReturn}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjUubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI-mei_hdcp_initiate_locality_check (C function)"c.mei_hdcp_initiate_locality_checkhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hzint mei_hdcp_initiate_locality_check (struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_init *lc_init_data)h]jY)}(hyint mei_hdcp_initiate_locality_check(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_init *lc_init_data)h](j_)}(hinth]hint}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM*ubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhhhjhM*ubj)}(h mei_hdcp_initiate_locality_checkh]j)}(h mei_hdcp_initiate_locality_checkh]h mei_hdcp_initiate_locality_check}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM*ubj)}(hU(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_init *lc_init_data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb"c.mei_hdcp_initiate_locality_checkasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubjq)}(h h]h }(hjXhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjGubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j"c.mei_hdcp_initiate_locality_checkasbuh1hhjGubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjGubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h"struct hdcp2_lc_init *lc_init_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(h hdcp2_lc_inith]h hdcp2_lc_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j"c.mei_hdcp_initiate_locality_checkasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h lc_init_datah]h lc_init_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM*ubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjhhhjhM*ubah}(h]jah ](jjeh"]h$]h&]j"j#)j$huh1jRhjhM*hjhhubj&)}(hhh]h)}(hPrepare LC_Inith]hPrepare LC_Init}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM#hj9hhubah}(h]h ]h"]h$]h&]uh1j%hjhhhjhM*ubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGjTjHjTjIjJjKuh1jMhhhj+hNhNubjM)}(h**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_lc_init *lc_init_data`` LC_Init msg output **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj\ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM'hjXubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hj}h]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj{ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM$hjwubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM$hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jqhjhM$hjtubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM%hjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM%hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhM%hjtubjr)}(h:``struct hdcp2_lc_init *lc_init_data`` LC_Init msg output h](jx)}(h&``struct hdcp2_lc_init *lc_init_data``h]j~)}(hjh]h"struct hdcp2_lc_init *lc_init_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM&hjubj)}(hhh]h)}(hLC_Init msg outputh]hLC_Init msg output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM&hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhM&hjtubeh}(h]h ]h"]h$]h&]uh1jlhjXubh)}(h **Return**h]jW)}(hj*h]hReturn}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj(ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM(hjXubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM(hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI#mei_hdcp_verify_lprime (C function)c.mei_hdcp_verify_lprimehNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(htint mei_hdcp_verify_lprime (struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_send_lprime *rx_lprime)h]jY)}(hsint mei_hdcp_verify_lprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_send_lprime *rx_lprime)h](j_)}(hinth]hint}(hjohhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjkhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMbubjq)}(h h]h }(hj~hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjkhhhj}hMbubj)}(hmei_hdcp_verify_lprimeh]j)}(hmei_hdcp_verify_lprimeh]hmei_hdcp_verify_lprime}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjkhhhj}hMbubj)}(hY(struct device *dev, struct hdcp_port_data *data, struct hdcp2_lc_send_lprime *rx_lprime)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.mei_hdcp_verify_lprimeasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hj+hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.mei_hdcp_verify_lprimeasbuh1hhjubjq)}(h h]h }(hjZhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h&struct hdcp2_lc_send_lprime *rx_lprimeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp2_lc_send_lprimeh]hhdcp2_lc_send_lprime}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.mei_hdcp_verify_lprimeasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h rx_lprimeh]h rx_lprime}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjkhhhj}hMbubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjghhhj}hMbubah}(h]jbah ](jjeh"]h$]h&]j"j#)j$huh1jRhj}hMbhjdhhubj&)}(hhh]h)}(hVerify lprime.h]hVerify lprime.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM[hj hhubah}(h]h ]h"]h$]h&]uh1j%hjdhhhj}hMbubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj'jHj'jIjJjKuh1jMhhhj+hNhNubjM)}(hX**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_lc_send_lprime *rx_lprime`` LC_Send_L_prime msg for ME FW verification **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj1h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj/ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM_hj+ubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hjPh]hstruct device *dev}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjNubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM\hjJubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehM\hjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jqhjehM\hjGubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM]hjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM]hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhM]hjGubjr)}(hV``struct hdcp2_lc_send_lprime *rx_lprime`` LC_Send_L_prime msg for ME FW verification h](jx)}(h*``struct hdcp2_lc_send_lprime *rx_lprime``h]j~)}(hjh]h&struct hdcp2_lc_send_lprime *rx_lprime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM^hjubj)}(hhh]h)}(h*LC_Send_L_prime msg for ME FW verificationh]h*LC_Send_L_prime msg for ME FW verification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhM^hjGubeh}(h]h ]h"]h$]h&]uh1jlhj+ubh)}(h **Return**h]jW)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM`hj+ubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM`hj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI%mei_hdcp_get_session_key (C function)c.mei_hdcp_get_session_keyhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hsint mei_hdcp_get_session_key (struct device *dev, struct hdcp_port_data *data, struct hdcp2_ske_send_eks *ske_data)h]jY)}(hrint mei_hdcp_get_session_key(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ske_send_eks *ske_data)h](j_)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hj>hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubjq)}(h h]h }(hjQhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj>hhhjPhMubj)}(hmei_hdcp_get_session_keyh]j)}(hmei_hdcp_get_session_keyh]hmei_hdcp_get_session_key}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj>hhhjPhMubj)}(hV(struct device *dev, struct hdcp_port_data *data, struct hdcp2_ske_send_eks *ske_data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj{ubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjesbc.mei_hdcp_get_session_keyasbuh1hhj{ubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj{ubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjwubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.mei_hdcp_get_session_keyasbuh1hhjubjq)}(h h]h }(hj-hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjwubj)}(h#struct hdcp2_ske_send_eks *ske_datah](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubjq)}(h h]h }(hjnhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj]ubh)}(hhh]j)}(hhdcp2_ske_send_eksh]hhdcp2_ske_send_eks}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.mei_hdcp_get_session_keyasbuh1hhj]ubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj]ubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj)}(hske_datah]hske_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjwubeh}(h]h ]h"]h$]h&]hhuh1jhj>hhhjPhMubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhj:hhhjPhMubah}(h]j5ah ](jjeh"]h$]h&]j"j#)j$huh1jRhjPhMhj7hhubj&)}(hhh]h)}(hPrepare SKE_Send_Eks.h]hPrepare SKE_Send_Eks.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjhhubah}(h]h ]h"]h$]h&]uh1j%hj7hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGjjHjjIjJjKuh1jMhhhj+hNhNubjM)}(hX **Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_ske_send_eks *ske_data`` SKE_Send_Eks msg output from ME FW. **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hj#h]hstruct device *dev}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj!ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhj8hMhjubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hj\h]hstruct hdcp_port_data *data}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjZubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjVubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jqhjqhMhjubjr)}(hL``struct hdcp2_ske_send_eks *ske_data`` SKE_Send_Eks msg output from ME FW. h](jx)}(h'``struct hdcp2_ske_send_eks *ske_data``h]j~)}(hjh]h#struct hdcp2_ske_send_eks *ske_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(h#SKE_Send_Eks msg output from ME FW.h]h#SKE_Send_Eks msg output from ME FW.}(hjhhhNhNubah }(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMhjubeh}(h]h ]h"]h$]h&]uh1jlhjubh)}(h **Return**h]jW)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI5mei_hdcp_repeater_check_flow_prepare_ack (C function)*c.mei_hdcp_repeater_check_flow_prepare_ackhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hint mei_hdcp_repeater_check_flow_prepare_ack (struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_send_receiverid_list *rep_topology, struct hdcp2_rep_send_ack *rep_send_ack)h]jY)}(hint mei_hdcp_repeater_check_flow_prepare_ack(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_send_receiverid_list *rep_topology, struct hdcp2_rep_send_ack *rep_send_ack)h](j_)}(hinth]hint}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubjq)}(h h]h }(hj$hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhhhj#hMubj)}(h(mei_hdcp_repeater_check_flow_prepare_ackh]j)}(h(mei_hdcp_repeater_check_flow_prepare_ackh]h(mei_hdcp_repeater_check_flow_prepare_ack}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhj#hMubj)}(h(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_send_receiverid_list *rep_topology, struct hdcp2_rep_send_ack *rep_send_ack)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubjq)}(h h]h }(hj_hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjNubh)}(hhh]j)}(hdeviceh]hdevice}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jj8sb*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjNubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjNubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjJubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjJubj)}(h3struct hdcp2_rep_send_receiverid_list *rep_topologyh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubjq)}(h h]h }(hjAhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj0ubh)}(hhh]j)}(hhdcp2_rep_send_receiverid_listh]hhdcp2_rep_send_receiverid_list}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhj0ubjq)}(h h]h }(hjphhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj0ubj)}(hj h]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h rep_topologyh]h rep_topology}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjJubj)}(h'struct hdcp2_rep_send_ack *rep_send_ackh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp2_rep_send_ackh]hhdcp2_rep_send_ack}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h rep_send_ackh]h rep_send_ack}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjJubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj#hMubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhj hhhj#hMubah}(h]jah ](jjeh"]h$]h&]j"j#)j$huh1jRhj#hMhj hhubj&)}(hhh]h)}(h5Validate the Downstream topology and prepare rep_ack.h]h5Validate the Downstream topology and prepare rep_ack.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj"hhubah}(h]h ]h"]h$]h&]uh1j%hj hhhj#hMubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj=jHj=jIjJjKuh1jMhhhj+hNhNubjM)}(hX^**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_rep_send_receiverid_list *rep_topology`` Receiver ID List to be validated ``struct hdcp2_rep_send_ack *rep_send_ack`` repeater ack from ME FW. **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hjGh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjEubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjAubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hjfh]hstruct device *dev}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjdubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj`ubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jqhj{hMhj]ubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMhj]ubjr)}(hY``struct hdcp2_rep_send_receiverid_list *rep_topology`` Receiver ID List to be validated h](jx)}(h7``struct hdcp2_rep_send_receiverid_list *rep_topology``h]j~)}(hjh]h3struct hdcp2_rep_send_receiverid_list *rep_topology}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(h Receiver ID List to be validatedh]h Receiver ID List to be validated}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMhj]ubjr)}(hE``struct hdcp2_rep_send_ack *rep_send_ack`` repeater ack from ME FW. h](jx)}(h+``struct hdcp2_rep_send_ack *rep_send_ack``h]j~)}(hjh]h'struct hdcp2_rep_send_ack *rep_send_ack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj ubj)}(hhh]h)}(hrepeater ack from ME FW.h]hrepeater ack from ME FW.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hMhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj&hMhj]ubeh}(h]h ]h"]h$]h&]uh1jlhjAubh)}(h **Return**h]jW)}(hjLh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjJubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjAubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI#mei_hdcp_verify_mprime (C function)c.mei_hdcp_verify_mprimehNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hyint mei_hdcp_verify_mprime (struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_stream_ready *stream_ready)h]jY)}(hxint mei_hdcp_verify_mprime(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_stream_ready *stream_ready)h](j_)}(hinth]hint}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM"ubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhhhjhM"ubj)}(hmei_hdcp_verify_mprimeh]j)}(hmei_hdcp_verify_mprimeh]hmei_hdcp_verify_mprime}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhM"ubj)}(h^(struct device *dev, struct hdcp_port_data *data, struct hdcp2_rep_stream_ready *stream_ready)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.mei_hdcp_verify_mprimeasbuh1hhjubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubjq)}(h h]h }(hjMhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj<ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jc.mei_hdcp_verify_mprimeasbuh1hhj<ubjq)}(h h]h }(hj|hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj<ubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h+struct hdcp2_rep_stream_ready *stream_readyh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp2_rep_stream_readyh]hhdcp2_rep_stream_ready}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.mei_hdcp_verify_mprimeasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h stream_readyh]h stream_ready}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM"ubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjhhhjhM"ubah}(h]jah ](jjeh"]h$]h&]j"j#)j$huh1jRhjhM"hjhhubj&)}(hhh]h)}(hVerify mprime.h]hVerify mprime.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj.hhubah}(h]h ]h"]h$]h&]uh1j%hjhhhjhM"ubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGjIjHjIjIjJjKuh1jMhhhj+hNhNubjM)}(hX#**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data ``struct hdcp2_rep_stream_ready *stream_ready`` RepeaterAuth_Stream_Ready msg for ME FW verification. **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjQubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjMubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hjrh]hstruct device *dev}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjpubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjlubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jqhjhMhjiubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMhjiubjr)}(hf``struct hdcp2_rep_stream_ready *stream_ready`` RepeaterAuth_Stream_Ready msg for ME FW verification. h](jx)}(h/``struct hdcp2_rep_stream_ready *stream_ready``h]j~)}(hjh]h+struct hdcp2_rep_stream_ready *stream_ready}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjubj)}(hhh]h)}(h5RepeaterAuth_Stream_Ready msg for ME FW verification.h]h5RepeaterAuth_Stream_Ready msg for ME FW verification.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMhjiubeh}(h]h ]h"]h$]h&]uh1jlhjMubh)}(h **Return**h]jW)}(hjh]hReturn}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM hjMubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI+mei_hdcp_enable_authentication (C function) c.mei_hdcp_enable_authenticationhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hTint mei_hdcp_enable_authentication (struct device *dev, struct hdcp_port_data *data)h]jY)}(hSint mei_hdcp_enable_authentication(struct device *dev, struct hdcp_port_data *data)h](j_)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hj`hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMkubjq)}(h h]h }(hjshhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj`hhhjrhMkubj)}(hmei_hdcp_enable_authenticationh]j)}(hmei_hdcp_enable_authenticationh]hmei_hdcp_enable_authentication}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`hhhjrhMkubj)}(h1(struct device *dev, struct hdcp_port_data *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.mei_hdcp_enable_authenticationasbuh1hhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j c.mei_hdcp_enable_authenticationasbuh1hhjubjq)}(h h]h }(hjOhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdatah]hdata}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj`hhhjrhMkubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhj\hhhjrhMkubah}(h]jWah ](jjeh"]h$]h&]j"j#)j$huh1jRhjrhMkhjYhhubj&)}(hhh]h)}(h*Mark a port as authenticated through ME FWh]h*Mark a port as authenticated through ME FW}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMdhjhhubah}(h]h ]h"]h$]h&]uh1j%hjYhhhjrhMkubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGjjHjjIjJjKuh1jMhhhj+hNhNubjM)}(h**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhhjubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMfhjubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhjhMfhjubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMghjubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMghj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jqhj#hMghjubeh}(h]h ]h"]h$]h&]uh1jlhjubh)}(h **Return**h]jW)}(hjIh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjGubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMihjubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMihjubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI#mei_hdcp_close_session (C function)c.mei_hdcp_close_sessionhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hLint mei_hdcp_close_session (struct device *dev, struct hdcp_port_data *data)h]jY)}(hKint mei_hdcp_close_session(struct device *dev, struct hdcp_port_data *data)h](j_)}(hinth]hint}(hjhhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjhhhjhMubj)}(hmei_hdcp_close_sessionh]j)}(hmei_hdcp_close_sessionh]hmei_hdcp_close_session}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhMubj)}(h1(struct device *dev, struct hdcp_port_data *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjq)}(h h]h }(hjhhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.mei_hdcp_close_sessionasbuh1hhjubjq)}(h h]h }(hj hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hj$ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubjq)}(h h]h }(hjJ hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj9 ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj[ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj] modnameN classnameNjj)}j]j c.mei_hdcp_close_sessionasbuh1hhj9 ubjq)}(h h]h }(hjy hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj9 ubj)}(hj h]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]j"j#)j$huh1jRhjhMhjhhubj&)}(hhh]h)}(hjClose the Wired HDCP Tx session of ME FW per port. This also disables the authenticated state of the port.h]hjClose the Wired HDCP Tx session of ME FW per port. This also disables the authenticated state of the port.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj hhubah}(h]h ]h"]h$]h&]uh1j%hjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj jHj jIjJjKuh1jMhhhj+hNhNubjM)}(h**Parameters** ``struct device *dev`` device corresponding to the mei_cl_device ``struct hdcp_port_data *data`` Intel HW specific hdcp data **Return** 0 on Success, <0 on Failureh](h)}(h**Parameters**h]jW)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj ubjm)}(hhh](jr)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](jx)}(h``struct device *dev``h]j~)}(hj h]hstruct device *dev}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj ubj)}(hhh]h)}(h)device corresponding to the mei_cl_deviceh]h)device corresponding to the mei_cl_device}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jqhj!hMhj ubjr)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](jx)}(h``struct hdcp_port_data *data``h]j~)}(hj8!h]hstruct hdcp_port_data *data}(hj:!hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj6!ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj2!ubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjQ!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM!hMhjN!ubah}(h]h ]h"]h$]h&]uh1jhj2!ubeh}(h]h ]h"]h$]h&]uh1jqhjM!hMhj ubeh}(h]h ]h"]h$]h&]uh1jlhj ubh)}(h **Return**h]jW)}(hjs!h]hReturn}(hju!hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhjq!ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj ubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubj=)}(hhh]h}(h]h ]h"]h$]h&]entries](jI%mei_hdcp_component_match (C function)c.mei_hdcp_component_matchhNtauh1j<hj+hhhNhNubjN)}(hhh](jS)}(hOint mei_hdcp_component_match (struct device *dev, int subcomponent, void *data)h]jY)}(hNint mei_hdcp_component_match(struct device *dev, int subcomponent, void *data)h](j_)}(hinth]hint}(hj!hhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hj!hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM ubjq)}(h h]h }(hj!hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!hhhj!hM ubj)}(hmei_hdcp_component_matchh]j)}(hmei_hdcp_component_matchh]hmei_hdcp_component_match}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj!hM ubj)}(h2(struct device *dev, int subcomponent, void *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubjq)}(h h]h }(hj"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!ubh)}(hhh]j)}(hdeviceh]hdevice}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jj!sbc.mei_hdcp_component_matchasbuh1hhj!ubjq)}(h h]h }(hj3"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj!ubj)}(hj h]h*}(hjA"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(hdevh]hdev}(hjN"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(hint subcomponenth](j_)}(hinth]hint}(hjg"hhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hjc"ubjq)}(h h]h }(hju"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphjc"ubj)}(h subcomponenth]h subcomponent}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(h void *datah](j_)}(hvoidh]hvoid}(hj"hhhNhNubah}(h]h ]jkah"]h$]h&]uh1j^hj"ubjq)}(h h]h }(hj"hhhNhNubah}(h]h ]j}ah"]h$]h&]uh1jphj"ubj)}(hj h]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hdatah]hdata}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubeh}(h]h ]h"]h$]h&]hhuh1jhj!hhhj!hM ubeh}(h]h ]h"]h$]h&]hhjuh1jXjjhj!hhhj!hM ubah}(h]j!ah ](jjeh"]h$]h&]j"j#)j$huh1jRhj!hM hj!hhubj&)}(hhh]h)}(h'compare function for matching mei hdcp.h]h'compare function for matching mei hdcp.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj"hhubah}(h]h ]h"]h$]h&]uh1j%hj!hhhj!hM ubeh}(h]h ](jfunctioneh"]h$]h&]jFjjGj#jHj#jIjJjKuh1jMhhhj+hNhNubjM)}(hX**Parameters** ``struct device *dev`` master device ``int subcomponent`` subcomponent to match (I915_COMPONENT_HDCP) ``void *data`` compare data (mei hdcp device) **Description** The function checks if the driver is i915, the subcomponent is HDCP and the grand parent of hdcp and the parent of i915 are the same PCH device. **Return** * 1 - if components match * 0 - otherwiseh](h)}(h**Parameters**h]jW)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj#ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj #ubjm)}(hhh](jr)}(h%``struct device *dev`` master device h](jx)}(h``struct device *dev``h]j~)}(hj0#h]hstruct device *dev}(hj2#hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj.#ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj*#ubj)}(hhh]h)}(h master deviceh]h master device}(hjI#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE#hMhjF#ubah}(h]h ]h"]h$]h&]uh1jhj*#ubeh}(h]h ]h"]h$]h&]uh1jqhjE#hMhj'#ubjr)}(hA``int subcomponent`` subcomponent to match (I915_COMPONENT_HDCP) h](jx)}(h``int subcomponent``h]j~)}(hji#h]hint subcomponent}(hjk#hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hjg#ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjc#ubj)}(hhh]h)}(h+subcomponent to match (I915_COMPONENT_HDCP)h]h+subcomponent to match (I915_COMPONENT_HDCP)}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjc#ubeh}(h]h ]h"]h$]h&]uh1jqhj~#hMhj'#ubjr)}(h.``void *data`` compare data (mei hdcp device) h](jx)}(h``void *data``h]j~)}(hj#h]h void *data}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1j}hj#ubah}(h]h ]h"]h$]h&]uh1jwhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj#ubj)}(hhh]h)}(hcompare data (mei hdcp device)h]hcompare data (mei hdcp device)}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jqhj#hMhj'#ubeh}(h]h ]h"]h$]h&]uh1jlhj #ubh)}(h**Description**h]jW)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj#ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM hj #ubh block_quote)}(hThe function checks if the driver is i915, the subcomponent is HDCP and the grand parent of hdcp and the parent of i915 are the same PCH device. h]h)}(hThe function checks if the driver is i915, the subcomponent is HDCP and the grand parent of hdcp and the parent of i915 are the same PCH device.h]hThe function checks if the driver is i915, the subcomponent is HDCP and the grand parent of hdcp and the parent of i915 are the same PCH device.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj#ubah}(h]h ]h"]h$]h&]uh1j#hj$hMhj #ubh)}(h **Return**h]jW)}(hj$h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jVhj$ubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj #ubh bullet_list)}(hhh](h list_item)}(h1 - if components matchh]h)}(hj/$h]h1 - if components match}(hj1$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM hj-$ubah}(h]h ]h"]h$]h&]uh1j+$hj($ubj,$)}(h 0 - otherwiseh]h)}(hjG$h]h 0 - otherwise}(hjI$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM hjE$ubah}(h]h ]h"]h$]h&]uh1j+$hj($ubeh}(h]h ]h"]h$]h&]bulletj uh1j&$hj>$hM hj #ubeh}(h]h ] kernelindentah"]h$]h&]uh1jLhj+hhhNhNubeh}(h] mei-hdcp-apiah ]h"] mei_hdcp apiah$]h&]uh1hhhhhhhhKubeh}(h]hdcpah ]h"]hdcp:ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj$error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jx$ju$j(j%jp$jm$u nametypes}(jx$j(jp$uh}(ju$hj%jjm$j+jKjTjdjijjj j jjjbjgj5j:jj jjjWj\jjj!j!u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.