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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget'/translations/pt_BR/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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hmei_hdcp driverh]hmei_hdcp driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh block_quote)}(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]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.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.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:24: ./drivers/misc/mei/hdcp/mei_hdcp.chK hj*ubah}(h]h ]h"]h$]h&]uh1j(hj<hK hjhhubeh}(h]mei-hdcp-driverah ]h"]mei_hdcp driverah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h mei_hdcp apih]h mei_hdcp api}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single&mei_hdcp_initiate_session (C function)c.mei_hdcp_initiate_sessionhNtauh1j\hjKhhhNhNubhdesc)}(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}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjzhhhjhK 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&]hhuh1jhjzhhhjhK 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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(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_sessionasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(h*h]h*}(hj'hhhNhNubah}(h]h ]pah"]h$]h&]uh1j%hjubj)}(hdevh]hdev}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNj j )}j]jc.mei_hdcp_initiate_sessionasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjKubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp2_ake_init *ake_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp2_ake_inith]hhdcp2_ake_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]jc.mei_hdcp_initiate_sessionasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hake_datah]hake_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjzhhhjhK ubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jxsphinx_line_type declaratorhjthhhjhK ubah}(h]jkah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jrhjhK 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}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK hjGhhubah}(h]h ]h"]h$]h&]uh1jEhjohhhjhK ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejbdesctypejbnoindex noindexentrynocontentsentryuh1jmhhhjKhNhNubh 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)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK!hjubh 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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK!hjubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhK"hjubj)}(h9``struct hdcp2_ake_init *ake_data`` AKE_Init msg output. h](j)}(h#``struct hdcp2_ake_init *ake_data``h]j)}(hjh]hstruct hdcp2_ake_init *ake_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK#hj ubj)}(hhh]h)}(hAKE_Init msg output.h]hAKE_Init msg output.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hK#hj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hK#hjubeh}(h]h ]h"]h$]h&]uh1jhjnubh)}(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.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&]uh1jlhjKhhhNhNubj])}(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\hjKhhhNhNubjn)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK^ubj)}(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&]hhuh1jhjhhhjhK^ubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsb*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(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<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<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 classnameNj j )}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhj<ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj<ubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h#struct hdcp2_ake_send_cert *rx_certh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp2_ake_send_certh]hhdcp2_ake_send_cert}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hrx_certh]hrx_cert}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hbool *km_storedh](j)}(hboolh]hbool}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj<hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(h km_storedh]h km_stored}(hjIhhhNhNubah}(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^ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(hhdcp2_ake_no_stored_kmh]hhdcp2_ake_no_stored_km}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj^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 classnameNj j )}j]j*c.mei_hdcp_verify_receiver_cert_prepare_kmasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hmsg_szh]hmsg_sz}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhK^ubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hjhhhjhK^ubah}(h]jah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhK^hjhhubjF)}(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}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chK^hj5hhubah}(h]h ]h"]h$]h&]uh1jEhjhhhjhK^ubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjPjhjPjijjjkuh1jmhhhjKhNhNubjm)}(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)}(hjZh]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jvhjXubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKbhjTubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjyh]hstruct device *dev}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK`hjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhK`hjpubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhKahjpubj)}(hG``struct hdcp2_ake_send_cert *rx_cert`` AKE_Send_Cert for verification h](j)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhKbhjpubj)}(h/``bool *km_stored`` Pairing status flag output h](j)}(h``bool *km_stored``h]j)}(hj$h]hbool *km_stored}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhd/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}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hKchj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKchjpubj)}(hW``struct hdcp2_ake_no_stored_km *ek_pub_km`` AKE_Stored_Km/AKE_No_Stored_Km output msg h](j)}(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&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKdhjWubj)}(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&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKdhjpubj)}(h3``size_t *msg_sz`` size of AKE_XXXXX_Km output msg h](j)}(h``size_t *msg_sz``h]j)}(hjh]hsize_t *msg_sz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKehjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKehjpubeh}(h]h ]h"]h$]h&]uh1jhjTubh)}(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.chKghjTubh)}(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.chKghjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji#mei_hdcp_verify_hprime (C function)c.mei_hdcp_verify_hprimehNtauh1j\hjKhhhNhNubjn)}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKubj)}(h h]h }(hj% hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj$ hKubj)}(hmei_hdcp_verify_hprimeh]j)}(hmei_hdcp_verify_hprimeh]hmei_hdcp_verify_hprime}(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3 ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj hhhj$ 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}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubj)}(h h]h }(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubh)}(hhh]j)}(hdeviceh]hdevice}(hjq hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjs modnameN classnameNj j )}j]j)}jj9 sbc.mei_hdcp_verify_hprimeasbuh1hhjO ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjO ubj)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjK ubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 classnameNj j )}j]j c.mei_hdcp_verify_hprimeasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjK ubj)}(h'struct hdcp2_ake_send_hprime *rx_hprimeh](j)}(hjh]hstruct}(hj5 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1 ubj)}(h h]h }(hjB hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1 ubh)}(hhh]j)}(hhdcp2_ake_send_hprimeh]hhdcp2_ake_send_hprime}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjU modnameN classnameNj j )}j]j c.mei_hdcp_verify_hprimeasbuh1hhj1 ubj)}(h h]h }(hjq hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1 ubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj1 ubj)}(h rx_hprimeh]h rx_hprime}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjK ubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhj$ hKubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hj hhhj$ hKubah}(h]j ah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhj$ hKhj hhubjF)}(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&]uh1jEhj hhhj$ hKubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgj jhj jijjjkuh1jmhhhjKhNhNubjm)}(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 ubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhj hKhj ubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hj0 h]hstruct hdcp_port_data *data}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE hKhjF ubah}(h]h ]h"]h$]h&]uh1jhj* ubeh}(h]h ]h"]h$]h&]uh1jhjE hKhj ubj)}(hX``struct hdcp2_ake_send_hprime *rx_hprime`` AKE_Send_H_prime msg for ME FW verification h](j)}(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&]uh1jhjg ubah}(h]h ]h"]h$]h&]uh1jhd/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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~ hKhj ubah}(h]h ]h"]h$]h&]uh1jhjc ubeh}(h]h ]h"]h$]h&]uh1jhj~ hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj 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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji(mei_hdcp_store_pairing_info (C function)c.mei_hdcp_store_pairing_infohNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hj hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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" ubj)}(h h]h }(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj" ubh)}(hhh]j)}(hdeviceh]hdevice}(hjD hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF modnameN classnameNj j )}j]j)}jj sbc.mei_hdcp_store_pairing_infoasbuh1hhj" ubj)}(h h]h }(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj" ubj&)}(hj)h]h*}(hjr hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj" 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 ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 classnameNj j )}j]j` c.mei_hdcp_store_pairing_infoasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 classnameNj j )}j]j` c.mei_hdcp_store_pairing_infoasbuh1hhj ubj)}(h h]h }(hjD hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hj)h]h*}(hjR hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj 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&]hhj7uh1jxj8j9hj hhhj hKubah}(h]j ah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhj hKhj hhubjF)}(hhh]h)}(h$Store pairing info received at ME FWh]h$Store pairing info received 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&]uh1jEhj hhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgj jhj jijjjkuh1jmhhhjKhNhNubjm)}(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 ubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhj hKhj ubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubj)}(h^``struct hdcp2_ake_send_pairing_info *pairing_info`` AKE_Send_Pairing_Info msg input to ME FW h](j)}(h4``struct hdcp2_ake_send_pairing_info *pairing_info``h]j)}(hj<h]h0struct hdcp2_ake_send_pairing_info *pairing_info}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chKhj6ubj)}(hhh]h)}(h(AKE_Send_Pairing_Info msg input to ME FWh]h(AKE_Send_Pairing_Info msg input to ME FW}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhKhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj 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}(hjhhhNhNubah}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji-mei_hdcp_initiate_locality_check (C function)"c.mei_hdcp_initiate_locality_checkhNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM#ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM#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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsb"c.mei_hdcp_initiate_locality_checkasbuh1hhjubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjEhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hdevh]hdev}(hjRhhhNhNubah}(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&]uh1jhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j3"c.mei_hdcp_initiate_locality_checkasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjgubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(h hdcp2_lc_inith]h hdcp2_lc_init}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j3"c.mei_hdcp_initiate_locality_checkasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj%hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(h lc_init_datah]h lc_init_data}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhM#ubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hjhhhjhM#ubah}(h]jah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhM#hjhhubjF)}(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#hjYhhubah}(h]h ]h"]h$]h&]uh1jEhjhhhjhM#ubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjtjhjtjijjjkuh1jmhhhjKhNhNubjm)}(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}(hjhhhNhNubah}(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'hjxubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM$hjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM$hjubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhM%hjubj)}(h:``struct hdcp2_lc_init *lc_init_data`` LC_Init msg output h](j)}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM&hj ubj)}(hhh]h)}(hLC_Init msg outputh]hLC_Init msg output}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hM&hj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hM&hjubeh}(h]h ]h"]h$]h&]uh1jhjxubh)}(h **Return**h]jw)}(hjJh]hReturn}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jvhjHubah}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji#mei_hdcp_verify_lprime (C function)c.mei_hdcp_verify_lprimehNtauh1j\hjKhhhNhNubjn)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM[ubj)}(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&]hhuh1jhjhhhjhM[ubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsbc.mei_hdcp_verify_lprimeasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(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:ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNj j )}j]jc.mei_hdcp_verify_lprimeasbuh1hhj:ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj:ubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h&struct hdcp2_lc_send_lprime *rx_lprimeh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp2_lc_send_lprimeh]hhdcp2_lc_send_lprime}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]jc.mei_hdcp_verify_lprimeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(h rx_lprimeh]h rx_lprime}(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&]hhj7uh1jxj8j9hjhhhjhM[ubah}(h]jah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhM[hjhhubjF)}(hhh]h)}(hVerify lprime.h]hVerify lprime.}(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[hj,hhubah}(h]h ]h"]h$]h&]uh1jEhjhhhjhM[ubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjGjhjGjijjjkuh1jmhhhjKhNhNubjm)}(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)}(hjQh]h Parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jvhjOubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM_hjKubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjph]hstruct device *dev}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM\hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhM\hjgubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhM]hjgubj)}(hV``struct hdcp2_lc_send_lprime *rx_lprime`` LC_Send_L_prime msg for ME FW verification h](j)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhM^hjgubeh}(h]h ]h"]h$]h&]uh1jhjKubh)}(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`hjKubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chM`hjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji%mei_hdcp_get_session_key (C function)c.mei_hdcp_get_session_keyhNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hj^hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhjphMubj)}(hmei_hdcp_get_session_keyh]j)}(hmei_hdcp_get_session_keyh]hmei_hdcp_get_session_key}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsbc.mei_hdcp_get_session_keyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(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&]uh1jhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNj j )}j]jc.mei_hdcp_get_session_keyasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj&)}(hj)h]h*}(hj[hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj ubj)}(hdatah]hdata}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h#struct hdcp2_ske_send_eks *ske_datah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubh)}(hhh]j)}(hhdcp2_ske_send_eksh]hhdcp2_ske_send_eks}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]jc.mei_hdcp_get_session_keyasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj}ubj)}(hske_datah]hske_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhj^hhhjphMubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hjZhhhjphMubah}(h]jUah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjphMhjWhhubjF)}(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&]uh1jEhjWhhhjphMubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjjhjjijjjkuh1jmhhhjKhNhNubjm)}(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)}(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.chMhjubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjCh]hstruct device *dev}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1hhjXhMhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhMhj:ubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hj|h]hstruct hdcp_port_data *data}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhMhj:ubj)}(hL``struct hdcp2_ske_send_eks *ske_data`` SKE_Send_Eks msg output from ME FW. h](j)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhMhj:ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(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&]uh1jlhjKhhhNhNubj])}(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\hjKhhhNhNubjn)}(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}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hj1hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhjChMubj)}(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}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ](jjeh"]h$]h&]hhuh1jhj1hhhjChMubj)}(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&]uh1jhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjXsb*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjnubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj.hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hdatah]hdata}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjjubj)}(h3struct hdcp2_rep_send_receiverid_list *rep_topologyh](j)}(hjh]hstruct}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubh)}(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 classnameNj j )}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjPubj)}(h rep_topologyh]h rep_topology}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjjubj)}(h'struct hdcp2_rep_send_ack *rep_send_ackh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp2_rep_send_ackh]hhdcp2_rep_send_ack}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j*c.mei_hdcp_repeater_check_flow_prepare_ackasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(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&]hhuh1jhj1hhhjChMubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hj-hhhjChMubah}(h]j(ah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjChMhj*hhubjF)}(hhh]h)}(h5Validate the Downstream topology and prepare rep_ack.h]h5Validate the Downstream topology and prepare rep_ack.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjBhhubah}(h]h ]h"]h$]h&]uh1jEhj*hhhjChMubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgj]jhj]jijjjkuh1jmhhhjKhNhNubjm)}(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.chMhjaubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj}ubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhMhj}ubj)}(hY``struct hdcp2_rep_send_receiverid_list *rep_topology`` Receiver ID List to be validated h](j)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1hhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhj}ubj)}(hE``struct hdcp2_rep_send_ack *rep_send_ack`` repeater ack from ME FW. h](j)}(h+``struct hdcp2_rep_send_ack *rep_send_ack``h]j)}(hj1h]h'struct hdcp2_rep_send_ack *rep_send_ack}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhd/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.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubh)}(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}(hjhhhNhNubah}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji#mei_hdcp_verify_mprime (C function)c.mei_hdcp_verify_mprimehNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(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&]hhuh1jhjhhhjhMubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsbc.mei_hdcp_verify_mprimeasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj:hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hdevh]hdev}(hjGhhhNhNubah}(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\ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j(c.mei_hdcp_verify_mprimeasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj\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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hhdcp2_rep_stream_readyh]hhdcp2_rep_stream_ready}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j(c.mei_hdcp_verify_mprimeasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hjhhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(h stream_readyh]h stream_ready}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hjhhhjhMubah}(h]jah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhMhjhhubjF)}(hhh]h)}(hVerify mprime.h]hVerify mprime.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjNhhubah}(h]h ]h"]h$]h&]uh1jEhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjijhjijijjjkuh1jmhhhjKhNhNubjm)}(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.chMhjmubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjh]hstruct hdcp_port_data *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhMhjubj)}(hf``struct hdcp2_rep_stream_ready *stream_ready`` RepeaterAuth_Stream_Ready msg for ME FW verification. h](j)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjmubh)}(h **Return**h]jw)}(hj?h]hReturn}(hjAhhhNhNubah}(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 hjmubh)}(h0 on Success, <0 on Failureh]h0 on Success, <0 on Failure}(hjUhhhNhNubah}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji+mei_hdcp_enable_authentication (C function) c.mei_hdcp_enable_authenticationhNtauh1j\hjKhhhNhNubjn)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMdubj)}(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&]hhuh1jhjhhhjhMdubj)}(h1(struct device *dev, struct hdcp_port_data *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j]j)}jjsb c.mei_hdcp_enable_authenticationasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct hdcp_port_data *datah](j)}(hjh]hstruct}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubh)}(hhh]j)}(hhdcp_port_datah]hhdcp_port_data}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNj j )}j]j c.mei_hdcp_enable_authenticationasbuh1hhj/ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj&)}(hj)h]h*}(hj}hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj/ubj)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMdubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hj|hhhjhMdubah}(h]jwah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhMdhjyhhubjF)}(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&]uh1jEhjyhhhjhMdubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgjjhjjijjjkuh1jmhhhjKhNhNubjm)}(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.chMhhjubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1hhj hMfhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMfhjubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hj.h]hstruct hdcp_port_data *data}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMghj(ubj)}(hhh]h)}(hIntel HW specific hdcp datah]hIntel HW specific hdcp data}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChMghjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMghjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(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}(hjhhhNhNubah}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji#mei_hdcp_close_session (C function)c.mei_hdcp_close_sessionhNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hjhhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(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&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNj j )}j]j)}jjsbc.mei_hdcp_close_sessionasbuh1hhjubj)}(h h]h }(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj&)}(hj)h]h*}(hj7 hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjubj)}(hdevh]hdev}(hjD 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&]uh1jhjY ubj)}(h h]h }(hjj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY 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 classnameNj j )}j]j% c.mei_hdcp_close_sessionasbuh1hhjY ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubj&)}(hj)h]h*}(hj hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hjY ubj)}(hdatah]hdata}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hjhhhjhMubah}(h]jah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhjhMhjhhubjF)}(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&]uh1jEhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgj jhj jijjjkuh1jmhhhjKhNhNubjm)}(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 ubj)}(hhh](j)}(hA``struct device *dev`` device corresponding to the mei_cl_device h](j)}(h``struct device *dev``h]j)}(hj!h]hstruct device *dev}(hj!!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhd/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}(hj8!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4!hMhj5!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj4!hMhj!ubj)}(h<``struct hdcp_port_data *data`` Intel HW specific hdcp data h](j)}(h``struct hdcp_port_data *data``h]j)}(hjX!h]hstruct hdcp_port_data *data}(hjZ!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV!ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjR!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&]uh1jhjR!ubeh}(h]h ]h"]h$]h&]uh1jhjm!hMhj!ubeh}(h]h ]h"]h$]h&]uh1jhj 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)}(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&]uh1jlhjKhhhNhNubj])}(hhh]h}(h]h ]h"]h$]h&]entries](ji%mei_hdcp_component_match (C function)c.mei_hdcp_component_matchhNtauh1j\hjKhhhNhNubjn)}(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 ]jah"]h$]h&]uh1j~hj!hhhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMubj)}(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!hMubj)}(h2(struct device *dev, int subcomponent, void *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(h h]h }(hj""hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubh)}(hhh]j)}(hdeviceh]hdevice}(hj3"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5"modnameN classnameNj j )}j]j)}jj!sbc.mei_hdcp_component_matchasbuh1hhj"ubj)}(h h]h }(hjS"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj&)}(hj)h]h*}(hja"hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj"ubj)}(hdevh]hdev}(hjn"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj "ubj)}(hint subcomponenth](j)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(h subcomponenth]h subcomponent}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj "ubj)}(h void *datah](j)}(hvoidh]hvoid}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j~hj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj&)}(hj)h]h*}(hj"hhhNhNubah}(h]h ]j2ah"]h$]h&]uh1j%hj"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!hMubeh}(h]h ]h"]h$]h&]hhj7uh1jxj8j9hj!hhhj!hMubah}(h]j!ah ](j=j>eh"]h$]h&]jBjC)jDhuh1jrhj!hMhj!hhubjF)}(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&]uh1jEhj!hhhj!hMubeh}(h]h ](jfunctioneh"]h$]h&]jfjjgj'#jhj'#jijjjkuh1jmhhhjKhNhNubjm)}(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)}(hj1#h]h Parameters}(hj3#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+#ubj)}(hhh](j)}(h%``struct device *dev`` master device h](j)}(h``struct device *dev``h]j)}(hjP#h]hstruct device *dev}(hjR#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN#ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhjJ#ubj)}(hhh]h)}(h master deviceh]h master device}(hji#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje#hMhjf#ubah}(h]h ]h"]h$]h&]uh1jhjJ#ubeh}(h]h ]h"]h$]h&]uh1jhje#hMhjG#ubj)}(hA``int subcomponent`` subcomponent to match (I915_COMPONENT_HDCP) h](j)}(h``int subcomponent``h]j)}(hj#h]hint subcomponent}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/driver-api/mei/hdcp:30: ./drivers/misc/mei/hdcp/mei_hdcp.chMhj#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&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjG#ubj)}(h.``void *data`` compare data (mei hdcp device) h](j)}(h``void *data``h]j)}(hj#h]h void *data}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhd/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&]uh1jhj#hMhjG#ubeh}(h]h ]h"]h$]h&]uh1jhj+#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+#ubj))}(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}(hj0$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)}(hjM$h]h1 - if components match}(hjO$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 hjK$ubah}(h]h ]h"]h$]h&]uh1jI$hjF$ubjJ$)}(h 0 - otherwiseh]h)}(hje$h]h 0 - otherwise}(hjg$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 hjc$ubah}(h]h ]h"]h$]h&]uh1jI$hjF$ubeh}(h]h ]h"]h$]h&]bulletj)uh1jD$hj\$hM hj+#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jlhjKhhhNhNubeh}(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_sourcehnj _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}(j$j$jHjEj$j$u nametypes}(j$jHj$uh}(j$hjEjj$jKjkjtjjj j j j jjjjjUjZj(j-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.