sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget8/translations/zh_CN/driver-api/firmware/other_interfacesmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/zh_TW/driver-api/firmware/other_interfacesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/it_IT/driver-api/firmware/other_interfacesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/ja_JP/driver-api/firmware/other_interfacesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/ko_KR/driver-api/firmware/other_interfacesmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/sp_SP/driver-api/firmware/other_interfacesmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hOther Firmware Interfacesh]hOther Firmware Interfaces}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhR/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces.rsthKubh)}(hhh](h)}(hDMI Interfacesh]hDMI Interfaces}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledmi_check_system (C function)c.dmi_check_systemhNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(h7int dmi_check_system (const struct dmi_system_id *list)h]hdesc_signature_line)}(h6int dmi_check_system(const struct dmi_system_id *list)h](hdesc_sig_keyword_type)}(hinth]hint}(hhhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhMubh desc_name)}(hdmi_check_systemh]h desc_sig_name)}(hdmi_check_systemh]hdmi_check_system}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j hhhhhhhMubhdesc_parameterlist)}(h"(const struct dmi_system_id *list)h]hdesc_parameter)}(h const struct dmi_system_id *listh](hdesc_sig_keyword)}(hconsth]hconst}(hj<hhhNhNubah}(h]h ]kah"]h$]h&]uh1j:hj6ubh)}(h h]h }(hjKhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubj;)}(hstructh]hstruct}(hjYhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj6ubh)}(h h]h }(hjghhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubh)}(hhh]j)}(h dmi_system_idh]h dmi_system_id}(hjxhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjzmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.dmi_check_systemasbuh1hhj6ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj6ubj)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubah}(h]h ]h"]h$]h&]j,j-uh1j.hhhhhhhMubeh}(h]h ]h"]h$]h&]j,j- add_permalinkuh1hsphinx_line_type declaratorhhhhhhhMubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhMhhhhubh desc_content)}(hhh]h paragraph)}(hcheck system DMI datah]hcheck system DMI data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMwhjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhhhMubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hXO**Parameters** ``const struct dmi_system_id *list`` array of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match. Walk the blacklist table running matching functions until someone returns non zero or we hit the end. Callback function is called for each successful match. Returns the number of matches. dmi_setup must be called before this function is called.h](j)}(h**Parameters**h]hstrong)}(hj h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM{hjubhdefinition_list)}(hhh]hdefinition_list_item)}(hX+``const struct dmi_system_id *list`` array of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match. Walk the blacklist table running matching functions until someone returns non zero or we hit the end. Callback function is called for each successful match. Returns the number of matches. dmi_setup must be called before this function is called.h](hterm)}(h$``const struct dmi_system_id *list``h]hliteral)}(hjGh]h const struct dmi_system_id *list}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjEubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj?ubh definition)}(hhh](j)}(harray of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match.h]hXarray of dmi_system_id structures to match against All non-null elements of the list must match their slot’s (field index’s) data (i.e., each list string must be a substring of the specified DMI slot’s string data) to be considered a successful match.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMxhjaubh block_quote)}(hWalk the blacklist table running matching functions until someone returns non zero or we hit the end. Callback function is called for each successful match. Returns the number of matches. dmi_setup must be called before this function is called.h](j)}(hWalk the blacklist table running matching functions until someone returns non zero or we hit the end. Callback function is called for each successful match. Returns the number of matches.h]hWalk the blacklist table running matching functions until someone returns non zero or we hit the end. Callback function is called for each successful match. Returns the number of matches.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjuubj)}(h8dmi_setup must be called before this function is called.h]h8dmi_setup must be called before this function is called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjuubeh}(h]h ]h"]h$]h&]uh1jshjhMhjaubeh}(h]h ]h"]h$]h&]uh1j_hj?ubeh}(h]h ]h"]h$]h&]uh1j=hj^hMhj:ubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_first_match (C function)c.dmi_first_matchhNtauh1hhhhhhNhNubh)}(hhh](h)}(hOconst struct dmi_system_id * dmi_first_match (const struct dmi_system_id *list)h]h)}(hMconst struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list)h](j;)}(hj>h]hconst}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjhhhjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubh)}(hhh]j)}(h dmi_system_idh]h dmi_system_id}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jdmi_first_matchsbc.dmi_first_matchasbuh1hhjhhhjhMubh)}(h h]h }(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hdmi_first_matchh]j)}(hj'h]hdmi_first_match}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjEubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h"(const struct dmi_system_id *list)h]j5)}(h const struct dmi_system_id *listh](j;)}(hj>h]hconst}(hjdhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj`ubh)}(h h]h }(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj`ubj;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj`ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj`ubh)}(hhh]j)}(h dmi_system_idh]h dmi_system_id}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j%c.dmi_first_matchasbuh1hhj`ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj`ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj\ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(h5find dmi_system_id structure matching system DMI datah]h5find dmi_system_id structure matching system DMI data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX **Parameters** ``const struct dmi_system_id *list`` array of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match. Walk the blacklist table until the first match is found. Return the pointer to the matching entry or NULL if there's no match. dmi_setup must be called before this function is called.h](j)}(h**Parameters**h]j#)}(hj"h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj9)}(hhh]j>)}(hX``const struct dmi_system_id *list`` array of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match. Walk the blacklist table until the first match is found. Return the pointer to the matching entry or NULL if there's no match. dmi_setup must be called before this function is called.h](jD)}(h$``const struct dmi_system_id *list``h]jJ)}(hjAh]h const struct dmi_system_id *list}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj?ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj;ubj`)}(hhh](j)}(harray of dmi_system_id structures to match against All non-null elements of the list must match their slot's (field index's) data (i.e., each list string must be a substring of the specified DMI slot's string data) to be considered a successful match.h]hXarray of dmi_system_id structures to match against All non-null elements of the list must match their slot’s (field index’s) data (i.e., each list string must be a substring of the specified DMI slot’s string data) to be considered a successful match.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjWubjt)}(hWalk the blacklist table until the first match is found. Return the pointer to the matching entry or NULL if there's no match. dmi_setup must be called before this function is called.h](j)}(hWalk the blacklist table until the first match is found. Return the pointer to the matching entry or NULL if there's no match.h]hWalk the blacklist table until the first match is found. Return the pointer to the matching entry or NULL if there’s no match.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjiubj)}(h8dmi_setup must be called before this function is called.h]h8dmi_setup must be called before this function is called.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjiubeh}(h]h ]h"]h$]h&]uh1jshj{hMhjWubeh}(h]h ]h"]h$]h&]uh1j_hj;ubeh}(h]h ]h"]h$]h&]uh1j=hjVhMhj8ubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ dmi_get_system_info (C function)c.dmi_get_system_infohNtauh1hhhhhhNhNubh)}(hhh](h)}(h,const char * dmi_get_system_info (int field)h]h)}(h*const char *dmi_get_system_info(int field)h](j;)}(hj>h]hconst}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hdmi_get_system_infoh]j)}(hdmi_get_system_infoh]hdmi_get_system_info}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h (int field)h]j5)}(h int fieldh](h)}(hinth]hint}(hj(hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj$ubh)}(h h]h }(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj$ubj)}(hfieldh]hfield}(hjDhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hreturn DMI data valueh]hreturn DMI data value}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjkhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(h**Parameters** ``int field`` data index (see enum dmi_field) Returns one DMI data value, can be used to perform complex DMI data checks.h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj9)}(hhh]j>)}(hz``int field`` data index (see enum dmi_field) Returns one DMI data value, can be used to perform complex DMI data checks.h](jD)}(h ``int field``h]jJ)}(hjh]h int field}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj`)}(hhh](j)}(hdata index (see enum dmi_field)h]hdata index (see enum dmi_field)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj)}(hKReturns one DMI data value, can be used to perform complex DMI data checks.h]hKReturns one DMI data value, can be used to perform complex DMI data checks.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMhjubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ dmi_name_in_vendors (C function)c.dmi_name_in_vendorshNtauh1hhhhhhNhNubh)}(hhh](h)}(h)int dmi_name_in_vendors (const char *str)h]h)}(h(int dmi_name_in_vendors(const char *str)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hj&hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhj%hMubj)}(hdmi_name_in_vendorsh]j)}(hdmi_name_in_vendorsh]hdmi_name_in_vendors}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj4ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhj%hMubj/)}(h(const char *str)h]j5)}(hconst char *strh](j;)}(hj>h]hconst}(hjThhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjPubh)}(h h]h }(hjahhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjPubh)}(hcharh]hchar}(hjohhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjPubh)}(h h]h }(hj}hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj)}(hstrh]hstr}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjLubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhj%hMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhj%hMubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj%hMhj hhubj)}(hhh]j)}(h9Check if string is in the DMI system or board vendor nameh]h9Check if string is in the DMI system or board vendor name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj%hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(h9**Parameters** ``const char *str`` Case sensitive Nameh](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj9)}(hhh]j>)}(h'``const char *str`` Case sensitive Nameh](jD)}(h``const char *str``h]jJ)}(hjh]hconst char *str}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj`)}(hhh]j)}(hCase sensitive Nameh]hCase sensitive Name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMhjubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_find_device (C function)c.dmi_find_devicehNtauh1hhhhhhNhNubh)}(hhh](h)}(heconst struct dmi_device * dmi_find_device (int type, const char *name, const struct dmi_device *from)h]h)}(hcconst struct dmi_device *dmi_find_device(int type, const char *name, const struct dmi_device *from)h](j;)}(hj>h]hconst}(hj]hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjYhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjYhhhjjhMubj;)}(hj[h]hstruct}(hjyhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjYhhhjjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjYhhhjjhMubh)}(hhh]j)}(h dmi_deviceh]h dmi_device}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jdmi_find_devicesbc.dmi_find_deviceasbuh1hhjYhhhjjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjYhhhjjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhjjhMubj)}(hdmi_find_deviceh]j)}(hjh]hdmi_find_device}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjYhhhjjhMubj/)}(h;(int type, const char *name, const struct dmi_device *from)h](j5)}(hint typeh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(htypeh]htype}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hconst char *nameh](j;)}(hj>h]hconst}(hj'hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj#ubh)}(h h]h }(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj#ubh)}(hcharh]hchar}(hjBhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj#ubh)}(h h]h }(hjPhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj#ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(hnameh]hname}(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hconst struct dmi_device *fromh](j;)}(hj>h]hconst}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h dmi_deviceh]h dmi_device}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.dmi_find_deviceasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hfromh]hfrom}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hjYhhhjjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjUhhhjjhMubah}(h]jPah ](jjeh"]h$]h&]jj)jhuh1hhjjhMhjRhhubj)}(hhh]j)}(h find onboard device by type/nameh]h find onboard device by type/name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj hhubah}(h]h ]h"]h$]h&]uh1jhjRhhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8 jj8 jjjuh1hhhhhhNhNubj)}(hXW**Parameters** ``int type`` device type or ``DMI_DEV_TYPE_ANY`` to match all device types ``const char *name`` device name string or ``NULL`` to match all ``const struct dmi_device *from`` previous device found in search, or ``NULL`` for new search. Iterates through the list of known onboard devices. If a device is found with a matching **type** and **name**, a pointer to its device structure is returned. Otherwise, ``NULL`` is returned. A new search is initiated by passing ``NULL`` as the **from** argument. If **from** is not ``NULL``, searches continue from next device.h](j)}(h**Parameters**h]j#)}(hjB h]h Parameters}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj@ ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj< ubj9)}(hhh](j>)}(hK``int type`` device type or ``DMI_DEV_TYPE_ANY`` to match all device types h](jD)}(h ``int type``h]jJ)}(hja h]hint type}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj_ ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj[ ubj`)}(hhh]j)}(h=device type or ``DMI_DEV_TYPE_ANY`` to match all device typesh](hdevice type or }(hjz hhhNhNubjJ)}(h``DMI_DEV_TYPE_ANY``h]hDMI_DEV_TYPE_ANY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjz ubh to match all device types}(hjz hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjv hMhjw ubah}(h]h ]h"]h$]h&]uh1j_hj[ ubeh}(h]h ]h"]h$]h&]uh1j=hjv hMhjX ubj>)}(hA``const char *name`` device name string or ``NULL`` to match all h](jD)}(h``const char *name``h]jJ)}(hj h]hconst char *name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubj`)}(hhh]j)}(h+device name string or ``NULL`` to match allh](hdevice name string or }(hj hhhNhNubjJ)}(h``NULL``h]hNULL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubh to match all}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1j_hj ubeh}(h]h ]h"]h$]h&]uh1j=hj hMhjX ubj>)}(hX``const struct dmi_device *from`` previous device found in search, or ``NULL`` for new search. Iterates through the list of known onboard devices. If a device is found with a matching **type** and **name**, a pointer to its device structure is returned. Otherwise, ``NULL`` is returned. A new search is initiated by passing ``NULL`` as the **from** argument. If **from** is not ``NULL``, searches continue from next device.h](jD)}(h!``const struct dmi_device *from``h]jJ)}(hj h]hconst struct dmi_device *from}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubj`)}(hhh](j)}(h)}(h.``int field`` data index (see enum dmi_field) h](jD)}(h ``int field``h]jJ)}(hjz h]h int field}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjx ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjt ubj`)}(hhh]j)}(hdata index (see enum dmi_field)h]hdata index (see enum dmi_field)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1j_hjt ubeh}(h]h ]h"]h$]h&]uh1j=hj hMhjq ubj>)}(h3``int *yearp`` optional out parameter for the year h](jD)}(h``int *yearp``h]jJ)}(hj h]h int *yearp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubj`)}(hhh]j)}(h#optional out parameter for the yearh]h#optional out parameter for the year}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1j_hj ubeh}(h]h ]h"]h$]h&]uh1j=hj hMhjq ubj>)}(h5``int *monthp`` optional out parameter for the month h](jD)}(h``int *monthp``h]jJ)}(hj h]h int *monthp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubj`)}(hhh]j)}(h$optional out parameter for the monthh]h$optional out parameter for the month}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1j_hj ubeh}(h]h ]h"]h$]h&]uh1j=hj hMhjq ubj>)}(hX``int *dayp`` optional out parameter for the day The date field is assumed to be in the form resembling [mm[/dd]]/yy[yy] and the result is stored in the out parameters any or all of which can be omitted. If the field doesn't exist, all out parameters are set to zero and false is returned. Otherwise, true is returned with any invalid part of date set to zero. On return, year, month and day are guaranteed to be in the range of [0,9999], [0,12] and [0,31] respectively.h](jD)}(h ``int *dayp``h]jJ)}(hj% h]h int *dayp}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj# ubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubj`)}(hhh](j)}(h"optional out parameter for the dayh]h"optional out parameter for the day}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj; ubj)}(hThe date field is assumed to be in the form resembling [mm[/dd]]/yy[yy] and the result is stored in the out parameters any or all of which can be omitted.h]hThe date field is assumed to be in the form resembling [mm[/dd]]/yy[yy] and the result is stored in the out parameters any or all of which can be omitted.}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj; ubj)}(hIf the field doesn't exist, all out parameters are set to zero and false is returned. Otherwise, true is returned with any invalid part of date set to zero.h]hIf the field doesn’t exist, all out parameters are set to zero and false is returned. Otherwise, true is returned with any invalid part of date set to zero.}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj; ubj)}(hmOn return, year, month and day are guaranteed to be in the range of [0,9999], [0,12] and [0,31] respectively.h]hmOn return, year, month and day are guaranteed to be in the range of [0,9999], [0,12] and [0,31] respectively.}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj: hMhj; ubeh}(h]h ]h"]h$]h&]uh1j_hj ubeh}(h]h ]h"]h$]h&]uh1j=hj: hMhjq ubeh}(h]h ]h"]h$]h&]uh1j8hjU ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_get_bios_year (C function)c.dmi_get_bios_yearhNtauh1hhhhhhNhNubh)}(hhh](h)}(hint dmi_get_bios_year (void)h]h)}(hint dmi_get_bios_year(void)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMGubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hMGubj)}(hdmi_get_bios_yearh]j)}(hdmi_get_bios_yearh]hdmi_get_bios_year}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj hhhj hMGubj/)}(h(void)h]j5)}(hvoidh]h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubah}(h]h ]h"]h$]h&]j,j-uh1j.hj hhhj hMGubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj hhhj hMGubah}(h]j ah ](jjeh"]h$]h&]jj)jhuh1hhj hMGhj hhubj)}(hhh]j)}(h%get a year out of DMI_BIOS_DATE fieldh]h%get a year out of DMI_BIOS_DATE field}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMAhjhhubah}(h]h ]h"]h$]h&]uh1jhj hhhj hMGubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhhhNhNubj)}(h**Parameters** ``void`` no arguments **Description** Returns year on success, -ENXIO if DMI is not selected, or a different negative error code if DMI field is not present or not parseable.h](j)}(h**Parameters**h]j#)}(hj4h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj2ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMEhj.ubj9)}(hhh]j>)}(h``void`` no arguments h](jD)}(h``void``h]jJ)}(hjSh]hvoid}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjQubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMHhjMubj`)}(hhh]j)}(h no argumentsh]h no arguments}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhMHhjiubah}(h]h ]h"]h$]h&]uh1j_hjMubeh}(h]h ]h"]h$]h&]uh1j=hjhhMHhjJubah}(h]h ]h"]h$]h&]uh1j8hj.ubj)}(h**Description**h]j#)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMJhj.ubjt)}(hReturns year on success, -ENXIO if DMI is not selected, or a different negative error code if DMI field is not present or not parseable.h]j)}(hReturns year on success, -ENXIO if DMI is not selected, or a different negative error code if DMI field is not present or not parseable.h]hReturns year on success, -ENXIO if DMI is not selected, or a different negative error code if DMI field is not present or not parseable.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMBhjubah}(h]h ]h"]h$]h&]uh1jshjhMBhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_walk (C function) c.dmi_walkhNtauh1hhhhhhNhNubh)}(hhh](h)}(hTint dmi_walk (void (*decode)(const struct dmi_header *, void *), void *private_data)h]h)}(hQint dmi_walk(void (*decode)(const struct dmi_header*, void*), void *private_data)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM\ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhM\ubj)}(hdmi_walkh]j)}(hdmi_walkh]hdmi_walk}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhM\ubj/)}(hE(void (*decode)(const struct dmi_header*, void*), void *private_data)h](j5)}(h/void (*decode)(const struct dmi_header*, void*)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h(h]h(}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdecodeh]hdecode}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubj)}(h)h]h)}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj8h]h(}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj;)}(hj>h]hconst}(hjzhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h dmi_headerh]h dmi_header}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.dmi_walkasbuh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h,h]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjah]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj/hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj+ubh)}(h h]h }(hj=hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj+ubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(h private_datah]h private_data}(hjXhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhM\ubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhM\ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhM\hjhhubj)}(hhh]j)}(h7Walk the DMI table and get called back for every recordh]h7Walk the DMI table and get called back for every record}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX(**Parameters** ``void (*decode)(const struct dmi_header *, void *)`` Callback function ``void *private_data`` Private data to be passed to the callback function Returns 0 on success, -ENXIO if DMI is not selected or not present, or a different negative error code if DMI walking fails.h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMYhjubj9)}(hhh](j>)}(hH``void (*decode)(const struct dmi_header *, void *)`` Callback function h](jD)}(h5``void (*decode)(const struct dmi_header *, void *)``h]jJ)}(hjh]h1void (*decode)(const struct dmi_header *, void *)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMVhjubj`)}(hhh]j)}(hCallback functionh]hCallback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMVhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMVhjubj>)}(h``void *private_data`` Private data to be passed to the callback function Returns 0 on success, -ENXIO if DMI is not selected or not present, or a different negative error code if DMI walking fails.h](jD)}(h``void *private_data``h]jJ)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMYhjubj`)}(hhh](j)}(h2Private data to be passed to the callback functionh]h2Private data to be passed to the callback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMWhjubj)}(h|Returns 0 on success, -ENXIO if DMI is not selected or not present, or a different negative error code if DMI walking fails.h]h|Returns 0 on success, -ENXIO if DMI is not selected or not present, or a different negative error code if DMI walking fails.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMYhjubeh}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMYhjubeh}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_match (C function) c.dmi_matchhNtauh1hhhhhhNhNubh)}(hhh](h)}(h2bool dmi_match (enum dmi_field f, const char *str)h]h)}(h1bool dmi_match(enum dmi_field f, const char *str)h](h)}(hj h]hbool}(hjdhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj`hhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMvubh)}(h h]h }(hjrhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj`hhhjqhMvubj)}(h dmi_matchh]j)}(h dmi_matchh]h dmi_match}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj`hhhjqhMvubj/)}(h#(enum dmi_field f, const char *str)h](j5)}(henum dmi_field fh](j;)}(henumh]henum}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h dmi_fieldh]h dmi_field}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.dmi_matchasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hfh]hf}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hconst char *strh](j;)}(hj>h]hconst}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hcharh]hchar}(hj!hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hstrh]hstr}(hjJhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj`hhhjqhMvubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj\hhhjqhMvubah}(h]jWah ](jjeh"]h$]h&]jj)jhuh1hhjqhMvhjYhhubj)}(hhh]j)}(h-compare a string to the dmi field (if exists)h]h-compare a string to the dmi field (if exists)}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMphjqhhubah}(h]h ]h"]h$]h&]uh1jhjYhhhjqhMvubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(h**Parameters** ``enum dmi_field f`` DMI field identifier ``const char *str`` string to compare the DMI field to **Description** Returns true if the requested field equals to the str (including NULL).h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMthjubj9)}(hhh](j>)}(h*``enum dmi_field f`` DMI field identifier h](jD)}(h``enum dmi_field f``h]jJ)}(hjh]henum dmi_field f}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMqhjubj`)}(hhh]j)}(hDMI field identifierh]hDMI field identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMqhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMqhjubj>)}(h7``const char *str`` string to compare the DMI field to h](jD)}(h``const char *str``h]jJ)}(hjh]hconst char *str}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMrhjubj`)}(hhh]j)}(h"string to compare the DMI field toh]h"string to compare the DMI field to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMrhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMrhjubeh}(h]h ]h"]h$]h&]uh1j8hjubj)}(h**Description**h]j#)}(hj)h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj'ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMthjubj)}(hGReturns true if the requested field equals to the str (including NULL).h]hGReturns true if the requested field equals to the str (including NULL).}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMthjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_memdev_type (C function)c.dmi_memdev_typehNtauh1hhhhhhNhNubh)}(hhh](h)}(hu8 dmi_memdev_type (u16 handle)h]h)}(hu8 dmi_memdev_type(u16 handle)h](h)}(hhh]j)}(hu8h]hu8}(hjqhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jdmi_memdev_typesbc.dmi_memdev_typeasbuh1hhjjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjjhhhjhMubj)}(hdmi_memdev_typeh]j)}(hjh]hdmi_memdev_type}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjjhhhjhMubj/)}(h (u16 handle)h]j5)}(h u16 handleh](h)}(hhh]j)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.dmi_memdev_typeasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hhandleh]hhandle}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubah}(h]h ]h"]h$]h&]j,j-uh1j.hjjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjfhhhjhMubah}(h]jaah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjchhubj)}(hhh]j)}(hget the memory typeh]hget the memory type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjchhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhhhNhNubj)}(h**Parameters** ``u16 handle`` DMI structure handle **Description** Return the DMI memory type of the module in the slot associated with the given DMI handle, or 0x0 if no such DMI handle exists.h](j)}(h**Parameters**h]j#)}(hj;h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj9ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj5ubj9)}(hhh]j>)}(h$``u16 handle`` DMI structure handle h](jD)}(h``u16 handle``h]jJ)}(hjZh]h u16 handle}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjXubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjTubj`)}(hhh]j)}(hDMI structure handleh]hDMI structure handle}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjohMhjpubah}(h]h ]h"]h$]h&]uh1j_hjTubeh}(h]h ]h"]h$]h&]uh1j=hjohMhjQubah}(h]h ]h"]h$]h&]uh1j8hj5ubj)}(h**Description**h]j#)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj5ubj)}(hReturn the DMI memory type of the module in the slot associated with the given DMI handle, or 0x0 if no such DMI handle exists.h]2hReturn the DMI memory type of the module in the slot associated with the given DMI handle, or 0x0 if no such DMI handle exists.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌdmi_memdev_handle (C function)c.dmi_memdev_handlehNtauh1hhhhhhNhNubh)}(hhh](h)}(h u16 dmi_memdev_handle (int slot)h]h)}(hu16 dmi_memdev_handle(int slot)h](h)}(hhh]j)}(hu16h]hu16}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jdmi_memdev_handlesbc.dmi_memdev_handleasbuh1hhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hdmi_memdev_handleh]j)}(hjh]hdmi_memdev_handle}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h (int slot)h]j5)}(hint sloth](h)}(hinth]hint}(hj,hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj(ubh)}(h h]h }(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj(ubj)}(hsloth]hslot}(hjHhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj$ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(h#get the DMI handle of a memory sloth]h#get the DMI handle of a memory slot}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjohhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(h**Parameters** ``int slot`` slot number Return the DMI handle associated with a given memory slot, or ``0xFFFF`` if there is no such slot.h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj9)}(hhh]j>)}(h|``int slot`` slot number Return the DMI handle associated with a given memory slot, or ``0xFFFF`` if there is no such slot.h](jD)}(h ``int slot``h]jJ)}(hjh]hint slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jCho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj`)}(hhh](j)}(h slot numberh]h slot number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj)}(hbReturn the DMI handle associated with a given memory slot, or ``0xFFFF`` if there is no such slot.h](h>Return the DMI handle associated with a given memory slot, or }(hjhhhNhNubjJ)}(h ``0xFFFF``h]h0xFFFF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubh if there is no such slot.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhMhjubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubeh}(h]dmi-interfacesah ]h"]dmi interfacesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEDD Interfacesh]hEDD Interfaces}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌedd_show_raw_data (C function)c.edd_show_raw_datahNtauh1hhjhhhNhNubh)}(hhh](h)}(h>ssize_t edd_show_raw_data (struct edd_device *edev, char *buf)h]h)}(h=ssize_t edd_show_raw_data(struct edd_device *edev, char *buf)h](h)}(hhh]j)}(hssize_th]hssize_t}(hjIhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jedd_show_raw_datasbc.edd_show_raw_dataasbuh1hhjBhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKubh)}(h h]h }(hjkhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjBhhhjjhKubj)}(hedd_show_raw_datah]j)}(hjgh]hedd_show_raw_data}(hj}hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjyubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjBhhhjjhKubj/)}(h$(struct edd_device *edev, char *buf)h](j5)}(hstruct edd_device *edevh](j;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h edd_deviceh]h edd_device}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jec.edd_show_raw_dataasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hedevh]hedev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(h char *bufh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hbufh]hbuf}(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hjBhhhjjhKubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj>hhhjjhKubah}(h]j9ah ](jjeh"]h$]h&]jj)jhuh1hhjjhKhj;hhubj)}(hhh]j)}(h0copies raw data to buffer for userspace to parseh]h0copies raw data to buffer for userspace to parse}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjXhhubah}(h]h ]h"]h$]h&]uh1jhj;hhhjjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct edd_device *edev`` target edd_device ``char *buf`` output buffer **Return** number of bytes written, or -EINVAL on failureh](j)}(h**Parameters**h]j#)}(hj}h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj{ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjwubj9)}(hhh](j>)}(h.``struct edd_device *edev`` target edd_device h](jD)}(h``struct edd_device *edev``h]jJ)}(hjh]hstruct edd_device *edev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjubj`)}(hhh]j)}(htarget edd_deviceh]htarget edd_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhKhjubj>)}(h``char *buf`` output buffer h](jD)}(h ``char *buf``h]jJ)}(hjh]h char *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjubj`)}(hhh]j)}(h output bufferh]h output buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhKhjubeh}(h]h ]h"]h$]h&]uh1j8hjwubj)}(h **Return**h]j#)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjwubj)}(h.number of bytes written, or -EINVAL on failureh]h.number of bytes written, or -EINVAL on failure}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌedd_release (C function) c.edd_releasehNtauh1hhjhhhNhNubh)}(hhh](h)}(h(void edd_release (struct kobject * kobj)h]h)}(h&void edd_release(struct kobject *kobj)h](h)}(hvoidh]hvoid}(hjUhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjQhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chM\ubh)}(h h]h }(hjdhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjQhhhjchM\ubj)}(h edd_releaseh]j)}(h edd_releaseh]h edd_release}(hjvhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjrubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjQhhhjchM\ubj/)}(h(struct kobject *kobj)h]j5)}(hstruct kobject *kobjh](j;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hkobjecth]hkobject}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjxsb c.edd_releaseasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hkobjh]hkobj}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubah}(h]h ]h"]h$]h&]j,j-uh1j.hjQhhhjchM\ubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjMhhhjchM\ubah}(h]jHah ](jjeh"]h$]h&]jj)jhuh1hhjchM\hjJhhubj)}(hhh]j)}(hfree edd structureh]hfree edd structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jhjJhhhjchM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct kobject * kobj`` kobject of edd structure This is called when the refcount of the edd structure reaches 0. This should happen right after we unregister, but just in case, we use the release callback anyway.h](j)}(h**Parameters**h]j#)}(hj7h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj5ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMYhj1ubj9)}(hhh]j>)}(h``struct kobject * kobj`` kobject of edd structure This is called when the refcount of the edd structure reaches 0. This should happen right after we unregister, but just in case, we use the release callback anyway.h](jD)}(h``struct kobject * kobj``h]jJ)}(hjVh]hstruct kobject * kobj}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjTubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMYhjPubj`)}(hhh](j)}(hkobject of edd structureh]hkobject of edd structure}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMVhjlubj)}(hThis is called when the refcount of the edd structure reaches 0. This should happen right after we unregister, but just in case, we use the release callback anyway.h]hThis is called when the refcount of the edd structure reaches 0. This should happen right after we unregister, but just in case, we use the release callback anyway.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMXhjlubeh}(h]h ]h"]h$]h&]uh1j_hjPubeh}(h]h ]h"]h$]h&]uh1j=hjkhMYhjMubah}(h]h ]h"]h$]h&]uh1j8hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌedd_dev_is_type (C function)c.edd_dev_is_typehNtauh1hhjhhhNhNubh)}(hhh](h)}(h?int edd_dev_is_type (struct edd_device *edev, const char *type)h]h)}(h>int edd_dev_is_type(struct edd_device *edev, const char *type)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMrubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMrubj)}(hedd_dev_is_typeh]j)}(hedd_dev_is_typeh]hedd_dev_is_type}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMrubj/)}(h+(struct edd_device *edev, const char *type)h](j5)}(hstruct edd_device *edevh](j;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(h edd_deviceh]h edd_device}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.edd_dev_is_typeasbuh1hhjubh)}(h h]h }(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hedevh]hedev}(hjUhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubj5)}(hconst char *typeh](j;)}(hj>h]hconst}(hjnhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjjubh)}(h h]h }(hj{hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj)}(htypeh]htype}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubeh}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMrubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMrubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMrhjhhubj)}(hhh]j)}(h#is this EDD device a 'type' device?h]h'is this EDD device a ‘type’ device?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMlhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct edd_device *edev`` target edd_device ``const char *type`` a host bus or interface identifier string per the EDD spec **Description** Returns 1 (TRUE) if it is a 'type' device, 0 otherwise.h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMphjubj9)}(hhh](j>)}(h.``struct edd_device *edev`` target edd_device h](jD)}(h``struct edd_device *edev``h]jJ)}(hjh]hstruct edd_device *edev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMmhjubj`)}(hhh]j)}(htarget edd_deviceh]htarget edd_device}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2hMmhj3ubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hj2hMmhjubj>)}(hP``const char *type`` a host bus or interface identifier string per the EDD spec h](jD)}(h``const char *type``h]jJ)}(hjVh]hconst char *type}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjTubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMnhjPubj`)}(hhh]j)}(h:a host bus or interface identifier string per the EDD spech]h:a host bus or interface identifier string per the EDD spec}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkhMnhjlubah}(h]h ]h"]h$]h&]uh1j_hjPubeh}(h]h ]h"]h$]h&]uh1j=hjkhMnhjubeh}(h]h ]h"]h$]h&]uh1j8hjubj)}(h**Description**h]j#)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMphjubj)}(h7Returns 1 (TRUE) if it is a 'type' device, 0 otherwise.h]h;Returns 1 (TRUE) if it is a ‘type’ device, 0 otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMphjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌedd_get_pci_dev (C function)c.edd_get_pci_devhNtauh1hhjhhhNhNubh)}(hhh](h)}(h:struct pci_dev * edd_get_pci_dev (struct edd_device *edev)h]h)}(h8struct pci_dev *edd_get_pci_dev(struct edd_device *edev)h](j;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubh)}(hhh]j)}(hpci_devh]hpci_dev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jedd_get_pci_devsbc.edd_get_pci_devasbuh1hhjhhhjhMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hedd_get_pci_devh]j)}(hjh]hedd_get_pci_dev}(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj1ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h(struct edd_device *edev)h]j5)}(hstruct edd_device *edevh](j;)}(hj[h]hstruct}(hjPhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjLubh)}(h h]h }(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjLubh)}(hhh]j)}(h edd_deviceh]h edd_device}(hjnhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jc.edd_get_pci_devasbuh1hhjLubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hedevh]hedev}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjHubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hfinds pci_dev that matches edevh]hfinds pci_dev that matches edev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hl**Parameters** ``struct edd_device *edev`` edd_device **Description** Returns pci_dev if found, or NULLh](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubj9)}(hhh]j>)}(h'``struct edd_device *edev`` edd_device h](jD)}(h``struct edd_device *edev``h]jJ)}(hjh]hstruct edd_device *edev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhj ubj`)}(hhh]j)}(h edd_deviceh]h edd_device}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hMhj(ubah}(h]h ]h"]h$]h&]uh1j_hj ubeh}(h]h ]h"]h$]h&]uh1j=hj'hMhj ubah}(h]h ]h"]h$]h&]uh1j8hjubj)}(h**Description**h]j#)}(hjMh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjKubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubj)}(h!Returns pci_dev if found, or NULLh]h!Returns pci_dev if found, or NULL}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌedd_init (C function) c.edd_inithNtauh1hhjhhhNhNubh)}(hhh](h)}(hint edd_init (void)h]h)}(hint edd_init(void)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(hedd_inith]j)}(hedd_inith]hedd_init}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhMubj/)}(h(void)h]j5)}(hvoidh]h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j)}(hcreates sysfs tree of EDD datah]hcreates sysfs tree of EDD data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h'**Parameters** ``void`` no argumentsh](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubj9)}(hhh]j>)}(h``void`` no argumentsh](jD)}(h``void``h]jJ)}(hj:h]hvoid}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj8ubah}(h]h ]h"]h$]h&]uh1jChk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhj4ubj`)}(hhh]j)}(h no argumentsh]h no arguments}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjPubah}(h]h ]h"]h$]h&]uh1j_hj4ubeh}(h]h ]h"]h$]h&]uh1j=hjOhMhj1ubah}(h]h ]h"]h$]h&]uh1j8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]edd-interfacesah ]h"]edd interfacesah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h%Generic System Framebuffers Interfaceh]h%Generic System Framebuffers Interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌsysfb_disable (C function)c.sysfb_disablehNtauh1hhjhhhNhNubh)}(hhh](h)}(h'void sysfb_disable (struct device *dev)h]h)}(h&void sysfb_disable(struct device *dev)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKCubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKCubj)}(h sysfb_disableh]j)}(h sysfb_disableh]h sysfb_disable}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjhhhjhKCubj/)}(h(struct device *dev)h]j5)}(hstruct device *devh](j;)}(hj[h]hstruct}(hjhhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.sysfb_disableasbuh1hhjubh)}(h h]h }(hj(hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hdevh]hdev}(hjChhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjubah}(h]h ]h"]h$]h&]j,j-uh1j.hjhhhjhKCubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjhhhjhKCubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhKChjhhubj)}(hhh]j)}(h/disable the Generic System Framebuffers supporth]h/disable the Generic System Framebuffers support}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK8hjjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct device *dev`` the device to check if non-NULL **Description** This disables the registration of system framebuffer devices that match the generic drivers that make use of the system framebuffer set up by firmware. It also unregisters a device if this was already registered by sysfb_init(). **Context** The function can sleep. A **disable_lock** mutex is acquired to serialize against sysfb_init(), that registers a system framebuffer device.h](j)}(h**Parameters**h]j#)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK)}(h7``struct device *dev`` the device to check if non-NULL h](jD)}(h``struct device *dev``h]jJ)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&]uh1jChm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK9hjubj`)}(hhh]j)}(hthe device to check if non-NULLh]hthe device to check if non-NULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhK9hjubah}(h]h ]h"]h$]h&]uh1j_hjubeh}(h]h ]h"]h$]h&]uh1j=hjhK9hjubah}(h]h ]h"]h$]h&]uh1j8hjubj)}(h**Description**h]j#)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK;hjubj)}(hThis disables the registration of system framebuffer devices that match the generic drivers that make use of the system framebuffer set up by firmware.h]hThis disables the registration of system framebuffer devices that match the generic drivers that make use of the system framebuffer set up by firmware.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK;hjubj)}(hLIt also unregisters a device if this was already registered by sysfb_init().h]hLIt also unregisters a device if this was already registered by sysfb_init().}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK>hjubj)}(h **Context**h]j#)}(hj h]hContext}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj ubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK@hjubj)}(hThe function can sleep. A **disable_lock** mutex is acquired to serialize against sysfb_init(), that registers a system framebuffer device.h](hThe function can sleep. A }(hj5 hhhNhNubj#)}(h**disable_lock**h]h disable_lock}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj5 ubha mutex is acquired to serialize against sysfb_init(), that registers a system framebuffer device.}(hj5 hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK@hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ&sysfb_handles_screen_info (C function)c.sysfb_handles_screen_infohNtauh1hhjhhhNhNubh)}(hhh](h)}(h%bool sysfb_handles_screen_info (void)h]h)}(h$bool sysfb_handles_screen_info(void)h](h)}(hj h]hbool}(hjv hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjr hhhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK]ubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjr hhhj hK]ubj)}(hsysfb_handles_screen_infoh]j)}(hsysfb_handles_screen_infoh]hsysfb_handles_screen_info}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjr hhhj hK]ubj/)}(h(void)h]j5)}(hvoidh]h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjr hhhj hK]ubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjn hhhj hK]ubah}(h]ji ah ](jjeh"]h$]h&]jj)jhuh1hhj hK]hjk hhubj)}(hhh]j)}(h/reports if sysfb handles the global screen_infoh]h/reports if sysfb handles the global screen_info}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKShj hhubah}(h]h ]h"]h$]h&]uh1jhjk hhhj hK]ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``void`` no arguments **Description** Callers can use sysfb_handles_screen_info() to determine whether the Generic System Framebuffers (sysfb) can handle the global screen_info data structure or not. Drivers might need this information to know if they have to setup the system framebuffer, or if they have to delegate this action to sysfb instead. **Return** True if sysfb handles the global screen_info data structure.h](j)}(h**Parameters**h]j#)}(hj h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj ubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKWhj ubj9)}(hhh]j>)}(h``void`` no arguments h](jD)}(h``void``h]jJ)}(hj!h]hvoid}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj!ubah}(h]h ]h"]h$]h&]uh1jChm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKZhj!ubj`)}(hhh]j)}(h no argumentsh]h no arguments}(hj6!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2!hKZhj3!ubah}(h]h ]h"]h$]h&]uh1j_hj!ubeh}(h]h ]h"]h$]h&]uh1j=hj2!hKZhj!ubah}(h]h ]h"]h$]h&]uh1j8hj ubj)}(h**Description**h]j#)}(hjX!h]h Description}(hjZ!hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjV!ubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK\hj ubj)}(hX5Callers can use sysfb_handles_screen_info() to determine whether the Generic System Framebuffers (sysfb) can handle the global screen_info data structure or not. Drivers might need this information to know if they have to setup the system framebuffer, or if they have to delegate this action to sysfb instead.h]hX5Callers can use sysfb_handles_screen_info() to determine whether the Generic System Framebuffers (sysfb) can handle the global screen_info data structure or not. Drivers might need this information to know if they have to setup the system framebuffer, or if they have to delegate this action to sysfb instead.}(hjn!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKThj ubj)}(h **Return**h]j#)}(hj!h]hReturn}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj}!ubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chKYhj ubj)}(h)}(hK``COMMAND_NOOP`` do 'dummy' request for integration/debug/trouble-shooting h](jD)}(h``COMMAND_NOOP``h]jJ)}(hj|"h]h COMMAND_NOOP}(hj~"hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjz"ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKThjv"ubj`)}(hhh]j)}(h9do 'dummy' request for integration/debug/trouble-shootingh]h=do ‘dummy’ request for integration/debug/trouble-shooting}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"hKThj"ubah}(h]h ]h"]h$]h&]uh1j_hjv"ubeh}(h]h ]h"]h$]h&]uh1j=hj"hKThjs"ubj>)}(h\``COMMAND_RECONFIG`` ask for FPGA configuration preparation, return status is SVC_STATUS_OK h](jD)}(h``COMMAND_RECONFIG``h]jJ)}(hj"h]hCOMMAND_RECONFIG}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKXhj"ubj`)}(hhh]j)}(hFask for FPGA configuration preparation, return status is SVC_STATUS_OKh]hFask for FPGA configuration preparation, return status is SVC_STATUS_OK}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKWhj"ubah}(h]h ]h"]h$]h&]uh1j_hj"ubeh}(h]h ]h"]h$]h&]uh1j=hj"hKXhjs"ubj>)}(h``COMMAND_RECONFIG_DATA_SUBMIT`` submit buffer(s) of bit-stream data for the FPGA configuration, return status is SVC_STATUS_SUBMITTED or SVC_STATUS_ERROR h](jD)}(h ``COMMAND_RECONFIG_DATA_SUBMIT``h]jJ)}(hj"h]hCOMMAND_RECONFIG_DATA_SUBMIT}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj"ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK\hj"ubj`)}(hhh]j)}(hysubmit buffer(s) of bit-stream data for the FPGA configuration, return status is SVC_STATUS_SUBMITTED or SVC_STATUS_ERRORh]hysubmit buffer(s) of bit-stream data for the FPGA configuration, return status is SVC_STATUS_SUBMITTED or SVC_STATUS_ERROR}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK[hj#ubah}(h]h ]h"]h$]h&]uh1j_hj"ubeh}(h]h ]h"]h$]h&]uh1j=hj#hK\hjs"ubj>)}(h``COMMAND_RECONFIG_DATA_CLAIM`` check the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RECONFIG_DATA_CLAIM``h]jJ)}(hj)#h]hCOMMAND_RECONFIG_DATA_CLAIM}(hj+#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj'#ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK`hj##ubj`)}(hhh]j)}(hucheck the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERRORh]hucheck the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERROR}(hjB#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK_hj?#ubah}(h]h ]h"]h$]h&]uh1j_hj##ubeh}(h]h ]h"]h$]h&]uh1j=hj>#hK`hjs"ubj>)}(h``COMMAND_RECONFIG_STATUS`` check the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RECONFIG_STATUS``h]jJ)}(hjc#h]hCOMMAND_RECONFIG_STATUS}(hje#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhja#ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKdhj]#ubj`)}(hhh]j)}(hucheck the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERRORh]hucheck the status of the configuration, return status is SVC_STATUS_COMPLETED, or SVC_STATUS_BUSY, or SVC_STATUS_ERROR}(hj|#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKchjy#ubah}(h]h ]h"]h$]h&]uh1j_hj]#ubeh}(h]h ]h"]h$]h&]uh1j=hjx#hKdhjs"ubj>)}(hp``COMMAND_RSU_STATUS`` request remote system update boot log, return status is log data or SVC_STATUS_RSU_ERROR h](jD)}(h``COMMAND_RSU_STATUS``h]jJ)}(hj#h]hCOMMAND_RSU_STATUS}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhhj#ubj`)}(hhh]j)}(hXrequest remote system update boot log, return status is log data or SVC_STATUS_RSU_ERRORh]hXrequest remote system update boot log, return status is log data or SVC_STATUS_RSU_ERROR}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKghj#ubah}(h]h ]h"]h$]h&]uh1j_hj#ubeh}(h]h ]h"]h$]h&]uh1j=hj#hKhhjs"ubj>)}(h``COMMAND_RSU_UPDATE`` set the offset of the bitstream to boot after reboot, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_UPDATE``h]jJ)}(hj#h]hCOMMAND_RSU_UPDATE}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKlhj#ubj`)}(hhh]j)}(hhset the offset of the bitstream to boot after reboot, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hhset the offset of the bitstream to boot after reboot, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKkhj#ubah}(h]h ]h"]h$]h&]uh1j_hj#ubeh}(h]h ]h"]h$]h&]uh1j=hj#hKlhjs"ubj>)}(h``COMMAND_RSU_NOTIFY`` report the status of hard processor system software to firmware, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_NOTIFY``h]jJ)}(hj$h]hCOMMAND_RSU_NOTIFY}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKqhj $ubj`)}(hhh]j)}(hsreport the status of hard processor system software to firmware, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hsreport the status of hard processor system software to firmware, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj*$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKohj'$ubah}(h]h ]h"]h$]h&]uh1j_hj $ubeh}(h]h ]h"]h$]h&]uh1j=hj&$hKqhjs"ubj>)}(h``COMMAND_RSU_RETRY`` query firmware for the current image's retry counter, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_RETRY``h]jJ)}(hjK$h]hCOMMAND_RSU_RETRY}(hjM$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjI$ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKuhjE$ubj`)}(hhh]j)}(hhquery firmware for the current image's retry counter, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hjquery firmware for the current image’s retry counter, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hjd$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKthja$ubah}(h]h ]h"]h$]h&]uh1j_hjE$ubeh}(h]h ]h"]h$]h&]uh1j=hj`$hKuhjs"ubj>)}(hu``COMMAND_RSU_MAX_RETRY`` query firmware for the max retry value, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_MAX_RETRY``h]jJ)}(hj$h]hCOMMAND_RSU_MAX_RETRY}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKyhj$ubj`)}(hhh]j)}(hZquery firmware for the max retry value, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hZquery firmware for the max retry value, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKxhj$ubah}(h]h ]h"]h$]h&]uh1j_hj$ubeh}(h]h ]h"]h$]h&]uh1j=hj$hKyhjs"ubj>)}(hu``COMMAND_RSU_DCMF_VERSION`` query firmware for the DCMF version, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_DCMF_VERSION``h]jJ)}(hj$h]hCOMMAND_RSU_DCMF_VERSION}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK}hj$ubj`)}(hhh]j)}(hWquery firmware for the DCMF version, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hWquery firmware for the DCMF version, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhK|hj$ubah}(h]h ]h"]h$]h&]uh1j_hj$ubeh}(h]h ]h"]h$]h&]uh1j=hj$hK}hjs"ubj>)}(hr``COMMAND_RSU_DCMF_STATUS`` query firmware for the DCMF status return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_RSU_DCMF_STATUS``h]jJ)}(hj$h]hCOMMAND_RSU_DCMF_STATUS}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj$ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj$ubj`)}(hhh]j)}(hUquery firmware for the DCMF status return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hUquery firmware for the DCMF status return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubah}(h]h ]h"]h$]h&]uh1j_hj$ubeh}(h]h ]h"]h$]h&]uh1j=hj%hKhjs"ubj>)}(hp``COMMAND_FIRMWARE_VERSION`` query running firmware version, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_FIRMWARE_VERSION``h]jJ)}(hj3%h]hCOMMAND_FIRMWARE_VERSION}(hj5%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj1%ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj-%ubj`)}(hhh]j)}(hRquery running firmware version, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hRquery running firmware version, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hjL%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjI%ubah}(h]h ]h"]h$]h&]uh1j_hj-%ubeh}(h]h ]h"]h$]h&]uh1j=hjH%hKhjs"ubj>)}(h``COMMAND_FCS_REQUEST_SERVICE`` request validation of image from firmware, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM h](jD)}(h``COMMAND_FCS_REQUEST_SERVICE``h]jJ)}(hjm%h]hCOMMAND_FCS_REQUEST_SERVICE}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjk%ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjg%ubj`)}(hhh]j)}(hcrequest validation of image from firmware, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAMh]hcrequest validation of image from firmware, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubah}(h]h ]h"]h$]h&]uh1j_hjg%ubeh}(h]h ]h"]h$]h&]uh1j=hj%hKhjs"ubj>)}(h``COMMAND_FCS_SEND_CERTIFICATE`` send a certificate, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jD)}(h ``COMMAND_FCS_SEND_CERTIFICATE``h]jJ)}(hj%h]hCOMMAND_FCS_SEND_CERTIFICATE}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubj`)}(hhh]j)}(h^send a certificate, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERRORh]h^send a certificate, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubah}(h]h ]h"]h$]h&]uh1j_hj%ubeh}(h]h ]h"]h$]h&]uh1j=hj%hKhjs"ubj>)}(h``COMMAND_FCS_GET_PROVISION_DATA`` read the provisioning data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jD)}(h"``COMMAND_FCS_GET_PROVISION_DATA``h]jJ)}(hj%h]hCOMMAND_FCS_GET_PROVISION_DATA}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj%ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubj`)}(hhh]j)}(hfread the provisioning data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERRORh]hfread the provisioning data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%ubah}(h]h ]h"]h$]h&]uh1j_hj%ubeh}(h]h ]h"]h$]h&]uh1j=hj%hKhjs"ubj>)}(h}``COMMAND_FCS_DATA_ENCRYPTION`` encrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jD)}(h``COMMAND_FCS_DATA_ENCRYPTION``h]jJ)}(hj&h]hCOMMAND_FCS_DATA_ENCRYPTION}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubj`)}(hhh]j)}(h\encrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERRORh]h\encrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR}(hj4&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj1&ubah}(h]h ]h"]h$]h&]uh1j_hj&ubeh}(h]h ]h"]h$]h&]uh1j=hj0&hKhjs"ubj>)}(h}``COMMAND_FCS_DATA_DECRYPTION`` decrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jD)}(h``COMMAND_FCS_DATA_DECRYPTION``h]jJ)}(hjU&h]hCOMMAND_FCS_DATA_DECRYPTION}(hjW&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjS&ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjO&ubj`)}(hhh]j)}(h\decrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERRORh]h\decrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR}(hjn&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjk&ubah}(h]h ]h"]h$]h&]uh1j_hjO&ubeh}(h]h ]h"]h$]h&]uh1j=hjj&hKhjs"ubj>)}(hm``COMMAND_FCS_RANDOM_NUMBER_GEN`` generate a random number, return status is SVC_STATUS_OK, SVC_STATUS_ERROR h](jD)}(h!``COMMAND_FCS_RANDOM_NUMBER_GEN``h]jJ)}(hj&h]hCOMMAND_FCS_RANDOM_NUMBER_GEN}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubj`)}(hhh]j)}(hJgenerate a random number, return status is SVC_STATUS_OK, SVC_STATUS_ERRORh]hJgenerate a random number, return status is SVC_STATUS_OK, SVC_STATUS_ERROR}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubah}(h]h ]h"]h$]h&]uh1j_hj&ubeh}(h]h ]h"]h$]h&]uh1j=hj&hKhjs"ubj>)}(h``COMMAND_POLL_SERVICE_STATUS`` poll if the service request is complete, return statis is SVC_STATUS_OK, SVC_STATUS_ERROR or SVC_STATUS_BUSY h](jD)}(h``COMMAND_POLL_SERVICE_STATUS``h]jJ)}(hj&h]hCOMMAND_POLL_SERVICE_STATUS}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj&ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubj`)}(hhh]j)}(hlpoll if the service request is complete, return statis is SVC_STATUS_OK, SVC_STATUS_ERROR or SVC_STATUS_BUSYh]hlpoll if the service request is complete, return statis is SVC_STATUS_OK, SVC_STATUS_ERROR or SVC_STATUS_BUSY}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubah}(h]h ]h"]h$]h&]uh1j_hj&ubeh}(h]h ]h"]h$]h&]uh1j=hj&hKhjs"ubj>)}(hk``COMMAND_MBOX_SEND_CMD`` send generic mailbox command, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jD)}(h``COMMAND_MBOX_SEND_CMD``h]jJ)}(hj'h]hCOMMAND_MBOX_SEND_CMD}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj'ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj&ubj`)}(hhh]j)}(hPsend generic mailbox command, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hPsend generic mailbox command, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubah}(h]h ]h"]h$]h&]uh1j_hj&ubeh}(h]h ]h"]h$]h&]uh1j=hj'hKhjs"ubj>)}(h[``COMMAND_SMC_SVC_VERSION`` Non-mailbox SMC SVC API Version, return status is SVC_STATUS_OKh](jD)}(h``COMMAND_SMC_SVC_VERSION``h]jJ)}(hj='h]hCOMMAND_SMC_SVC_VERSION}(hj?'hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj;'ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj7'ubj`)}(hhh]j)}(h?Non-mailbox SMC SVC API Version, return status is SVC_STATUS_OKh]h?Non-mailbox SMC SVC API Version, return status is SVC_STATUS_OK}(hjV'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR'hKhjS'ubah}(h]h ]h"]h$]h&]uh1j_hj7'ubeh}(h]h ]h"]h$]h&]uh1j=hjR'hKhjs"ubeh}(h]h ]h"]h$]h&]uh1j8hjW"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ#stratix10_svc_client_msg (C struct)c.stratix10_svc_client_msghNtauh1hhj!hhhNhNubh)}(hhh](h)}(hstratix10_svc_client_msgh]h)}(hstruct stratix10_svc_client_msgh](j;)}(hj[h]hstruct}(hj'hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj'hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKubh)}(h h]h }(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj'hhhj'hKubj)}(hstratix10_svc_client_msgh]j)}(hj'h]hstratix10_svc_client_msg}(hj'hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj'ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj'hhhj'hKubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj'hhhj'hKubah}(h]j'ah ](jjeh"]h$]h&]jj)jhuh1hhj'hKhj'hhubj)}(hhh]j)}(h!message sent by client to serviceh]h!message sent by client to service}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj'hKubeh}(h]h ](jstructeh"]h$]h&]jjjj'jj'jjjuh1hhhhj!hNhNubj)}(hXL**Definition**:: struct stratix10_svc_client_msg { void *payload; size_t payload_length; void *payload_output; size_t payload_length_output; enum stratix10_svc_command_code command; u64 arg[3]; }; **Members** ``payload`` starting address of data need be processed ``payload_length`` to be processed data size in bytes ``payload_output`` starting address of processed data ``payload_length_output`` processed data size in bytes ``command`` service command ``arg`` args to be passed via registers and not physically mapped buffersh](j)}(h**Definition**::h](j#)}(h**Definition**h]h Definition}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj'ubh:}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubh literal_block)}(hstruct stratix10_svc_client_msg { void *payload; size_t payload_length; void *payload_output; size_t payload_length_output; enum stratix10_svc_command_code command; u64 arg[3]; };h]hstruct stratix10_svc_client_msg { void *payload; size_t payload_length; void *payload_output; size_t payload_length_output; enum stratix10_svc_command_code command; u64 arg[3]; };}hj(sbah}(h]h ]h"]h$]h&]j,j-uh1j(h/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubj)}(h **Members**h]j#)}(hj((h]hMembers}(hj*(hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj&(ubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubj9)}(hhh](j>)}(h7``payload`` starting address of data need be processed h](jD)}(h ``payload``h]jJ)}(hjG(h]hpayload}(hjI(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjE(ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjA(ubj`)}(hhh]j)}(h*starting address of data need be processedh]h*starting address of data need be processed}(hj`(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\(hKhj](ubah}(h]h ]h"]h$]h&]uh1j_hjA(ubeh}(h]h ]h"]h$]h&]uh1j=hj\(hKhj>(ubj>)}(h6``payload_length`` to be processed data size in bytes h](jD)}(h``payload_length``h]jJ)}(hj(h]hpayload_length}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj~(ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjz(ubj`)}(hhh]j)}(h"to be processed data size in bytesh]h"to be processed data size in bytes}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hKhj(ubah}(h]h ]h"]h$]h&]uh1j_hjz(ubeh}(h]h ]h"]h$]h&]uh1j=hj(hKhj>(ubj>)}(h6``payload_output`` starting address of processed data h](jD)}(h``payload_output``h]jJ)}(hj(h]hpayload_output}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj(ubj`)}(hhh]j)}(h"starting address of processed datah]h"starting address of processed data}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(hKhj(ubah}(h]h ]h"]h$]h&]uh1j_hj(ubeh}(h]h ]h"]h$]h&]uh1j=hj(hKhj>(ubj>)}(h7``payload_length_output`` processed data size in bytes h](jD)}(h``payload_length_output``h]jJ)}(hj(h]hpayload_length_output}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj(ubj`)}(hhh]j)}(hprocessed data size in bytesh]hprocessed data size in bytes}(hj )hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1j_hj(ubeh}(h]h ]h"]h$]h&]uh1j=hj)hKhj>(ubj>)}(h``command`` service command h](jD)}(h ``command``h]jJ)}(hj+)h]hcommand}(hj-)hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj))ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%)ubj`)}(hhh]j)}(hservice commandh]hservice command}(hjD)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@)hKhjA)ubah}(h]h ]h"]h$]h&]uh1j_hj%)ubeh}(h]h ]h"]h$]h&]uh1j=hj@)hKhj>(ubj>)}(hI``arg`` args to be passed via registers and not physically mapped buffersh](jD)}(h``arg``h]jJ)}(hjd)h]harg}(hjf)hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjb)ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj^)ubj`)}(hhh]j)}(hAargs to be passed via registers and not physically mapped buffersh]hAargs to be passed via registers and not physically mapped buffers}(hj})hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjz)ubah}(h]h ]h"]h$]h&]uh1j_hj^)ubeh}(h]h ]h"]h$]h&]uh1j=hjy)hKhj>(ubeh}(h]h ]h"]h$]h&]uh1j8hj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ,stratix10_svc_command_config_type (C struct)#c.stratix10_svc_command_config_typehNtauh1hhj!hhhNhNubh)}(hhh](h)}(h!stratix10_svc_command_config_typeh]h)}(h(struct stratix10_svc_command_config_typeh](j;)}(hj[h]hstruct}(hj)hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj)hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKubh)}(h h]h }(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj)hhhj)hKubj)}(h!stratix10_svc_command_config_typeh]j)}(hj)h]h!stratix10_svc_command_config_type}(hj)hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj)hhhj)hKubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj)hhhj)hKubah}(h]j)ah ](jjeh"]h$]h&]jj)jhuh1hhj)hKhj)hhubj)}(hhh]j)}(h config typeh]h config type}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj)hhubah}(h]h ]h"]h$]h&]uh1jhj)hhhj)hKubeh}(h]h ](jstructeh"]h$]h&]jjjj*jj*jjjuh1hhhhj!hNhNubj)}(h**Definition**:: struct stratix10_svc_command_config_type { u32 flags; }; **Members** ``flags`` flag bit for the type of FPGA configurationh](j)}(h**Definition**::h](j#)}(h**Definition**h]h Definition}(hj$*hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj *ubh:}(hj *hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj*ubj()}(h)}(h5``flags`` flag bit for the type of FPGA configurationh](jD)}(h ``flags``h]jJ)}(hjm*h]hflags}(hjo*hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjk*ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjg*ubj`)}(hhh]j)}(h+flag bit for the type of FPGA configurationh]h+flag bit for the type of FPGA configuration}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj*ubah}(h]h ]h"]h$]h&]uh1j_hjg*ubeh}(h]h ]h"]h$]h&]uh1j=hj*hKhjd*ubah}(h]h ]h"]h$]h&]uh1j8hj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ stratix10_svc_cb_data (C struct)c.stratix10_svc_cb_datahNtauh1hhj!hhhNhNubh)}(hhh](h)}(hstratix10_svc_cb_datah]h)}(hstruct stratix10_svc_cb_datah](j;)}(hj[h]hstruct}(hj*hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj*hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKubh)}(h h]h }(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj*hhhj*hKubj)}(hstratix10_svc_cb_datah]j)}(hj*h]hstratix10_svc_cb_data}(hj*hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj*ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj*hhhj*hKubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj*hhhj*hKubah}(h]j*ah ](jjeh"]h$]h&]jj)jhuh1hhj*hKhj*hhubj)}(hhh]j)}(h*callback data structure from service layerh]h*callback data structure from service layer}(hj +hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj+hhubah}(h]h ]h"]h$]h&]uh1jhj*hhhj*hKubeh}(h]h ](jstructeh"]h$]h&]jjjj!+jj!+jjjuh1hhhhj!hNhNubj)}(hXQ**Definition**:: struct stratix10_svc_cb_data { u32 status; void *kaddr1; void *kaddr2; void *kaddr3; }; **Members** ``status`` the status of sent command ``kaddr1`` address of 1st completed data block ``kaddr2`` address of 2nd completed data block ``kaddr3`` address of 3rd completed data blockh](j)}(h**Definition**::h](j#)}(h**Definition**h]h Definition}(hj-+hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj)+ubh:}(hj)+hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%+ubj()}(hgstruct stratix10_svc_cb_data { u32 status; void *kaddr1; void *kaddr2; void *kaddr3; };h]hgstruct stratix10_svc_cb_data { u32 status; void *kaddr1; void *kaddr2; void *kaddr3; };}hjF+sbah}(h]h ]h"]h$]h&]j,j-uh1j(h/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%+ubj)}(h **Members**h]j#)}(hjW+h]hMembers}(hjY+hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjU+ubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj%+ubj9)}(hhh](j>)}(h&``status`` the status of sent command h](jD)}(h ``status``h]jJ)}(hjv+h]hstatus}(hjx+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjt+ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjp+ubj`)}(hhh]j)}(hthe status of sent commandh]hthe status of sent command}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hKhj+ubah}(h]h ]h"]h$]h&]uh1j_hjp+ubeh}(h]h ]h"]h$]h&]uh1j=hj+hKhjm+ubj>)}(h/``kaddr1`` address of 1st completed data block h](jD)}(h ``kaddr1``h]jJ)}(hj+h]hkaddr1}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj+ubj`)}(hhh]j)}(h#address of 1st completed data blockh]h#address of 1st completed data block}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hKhj+ubah}(h]h ]h"]h$]h&]uh1j_hj+ubeh}(h]h ]h"]h$]h&]uh1j=hj+hKhjm+ubj>)}(h/``kaddr2`` address of 2nd completed data block h](jD)}(h ``kaddr2``h]jJ)}(hj+h]hkaddr2}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj+ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj+ubj`)}(hhh]j)}(h#address of 2nd completed data blockh]h#address of 2nd completed data block}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+hKhj+ubah}(h]h ]h"]h$]h&]uh1j_hj+ubeh}(h]h ]h"]h$]h&]uh1j=hj+hKhjm+ubj>)}(h.``kaddr3`` address of 3rd completed data blockh](jD)}(h ``kaddr3``h]jJ)}(hj!,h]hkaddr3}(hj#,hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj,ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,ubj`)}(hhh]j)}(h#address of 3rd completed data blockh]h#address of 3rd completed data block}(hj:,hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj7,ubah}(h]h ]h"]h$]h&]uh1j_hj,ubeh}(h]h ]h"]h$]h&]uh1j=hj6,hKhjm+ubeh}(h]h ]h"]h$]h&]uh1j8hj%+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌstratix10_svc_client (C struct)c.stratix10_svc_clienthNtauh1hhj!hhhNhNubh)}(hhh](h)}(hstratix10_svc_clienth]h)}(hstruct stratix10_svc_clienth](j;)}(hj[h]hstruct}(hj{,hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjw,hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKubh)}(h h]h }(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjw,hhhj,hKubj)}(hstratix10_svc_clienth]j)}(hju,h]hstratix10_svc_client}(hj,hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj,ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjw,hhhj,hKubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjs,hhhj,hKubah}(h]jn,ah ](jjeh"]h$]h&]jj)jhuh1hhj,hKhjp,hhubj)}(hhh]j)}(hservice client structureh]hservice client structure}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,hhubah}(h]h ]h"]h$]h&]uh1jhjp,hhhj,hKubeh}(h]h ](jstructeh"]h$]h&]jjjj,jj,jjjuh1hhhhj!hNhNubj)}(hXY**Definition**:: struct stratix10_svc_client { struct device *dev; void (*receive_cb)(struct stratix10_svc_client *client, struct stratix10_svc_cb_data *cb_data); void *priv; }; **Members** ``dev`` the client device ``receive_cb`` callback to provide service client the received data ``priv`` client private datah](j)}(h**Definition**::h](j#)}(h**Definition**h]h Definition}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj,ubh:}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,ubj()}(hstruct stratix10_svc_client { struct device *dev; void (*receive_cb)(struct stratix10_svc_client *client, struct stratix10_svc_cb_data *cb_data); void *priv; };h]hstruct stratix10_svc_client { struct device *dev; void (*receive_cb)(struct stratix10_svc_client *client, struct stratix10_svc_cb_data *cb_data); void *priv; };}hj,sbah}(h]h ]h"]h$]h&]j,j-uh1j(h/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,ubj)}(h **Members**h]j#)}(hj -h]hMembers}(hj -hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj -ubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,ubj9)}(hhh](j>)}(h``dev`` the client device h](jD)}(h``dev``h]jJ)}(hj*-h]hdev}(hj,-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj(-ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj$-ubj`)}(hhh]j)}(hthe client deviceh]hthe client device}(hjC-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?-hKhj@-ubah}(h]h ]h"]h$]h&]uh1j_hj$-ubeh}(h]h ]h"]h$]h&]uh1j=hj?-hKhj!-ubj>)}(hD``receive_cb`` callback to provide service client the received data h](jD)}(h``receive_cb``h]jJ)}(hjc-h]h receive_cb}(hje-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhja-ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj]-ubj`)}(hhh]j)}(h4callback to provide service client the received datah]h4callback to provide service client the received data}(hj|-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx-hKhjy-ubah}(h]h ]h"]h$]h&]uh1j_hj]-ubeh}(h]h ]h"]h$]h&]uh1j=hjx-hKhj!-ubj>)}(h``priv`` client private datah](jD)}(h``priv``h]jJ)}(hj-h]hpriv}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj-ubah}(h]h ]h"]h$]h&]uh1jCh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj-ubj`)}(hhh]j)}(hclient private datah]hclient private data}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj-ubah}(h]h ]h"]h$]h&]uh1j_hj-ubeh}(h]h ]h"]h$]h&]uh1j=hj-hKhj!-ubeh}(h]h ]h"]h$]h&]uh1j8hj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ1stratix10_svc_request_channel_byname (C function)&c.stratix10_svc_request_channel_bynamehNtauh1hhj!hhhNhNubh)}(hhh](h)}(hxstruct stratix10_svc_chan * stratix10_svc_request_channel_byname (struct stratix10_svc_client *client, const char *name)h]h)}(hvstruct stratix10_svc_chan *stratix10_svc_request_channel_byname(struct stratix10_svc_client *client, const char *name)h](j;)}(hj[h]hstruct}(hj-hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj-hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMsubh)}(h h]h }(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj-hhhj.hMsubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}j$stratix10_svc_request_channel_bynamesb&c.stratix10_svc_request_channel_bynameasbuh1hhj-hhhj.hMsubh)}(h h]h }(hj6.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj-hhhj.hMsubj)}(hjh]h*}(hjD.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-hhhj.hMsubj)}(h$stratix10_svc_request_channel_bynameh]j)}(hj3.h]h$stratix10_svc_request_channel_byname}(hjU.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjQ.ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj-hhhj.hMsubj/)}(h7(struct stratix10_svc_client *client, const char *name)h](j5)}(h#struct stratix10_svc_client *clienth](j;)}(hj[h]hstruct}(hjp.hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjl.ubh)}(h h]h }(hj}.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjl.ubh)}(hhh]j)}(hstratix10_svc_clienth]hstratix10_svc_client}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j1.&c.stratix10_svc_request_channel_bynameasbuh1hhjl.ubh)}(h h]h }(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjl.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl.ubj)}(hclienth]hclient}(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjl.ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjh.ubj5)}(hconst char *nameh](j;)}(hj>h]hconst}(hj.hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj.ubh)}(h h]h }(hj.hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj.ubh)}(hcharh]hchar}(hj.hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj.ubh)}(h h]h }(hj /hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj.ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hnameh]hname}(hj$/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjh.ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj-hhhj.hMsubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj-hhhj.hMsubah}(h]j-ah ](jjeh"]h$]h&]jj)jhuh1hhj.hMshj-hhubj)}(hhh]j)}(hrequest a service channelh]hrequest a service channel}(hjN/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMjhjK/hhubah}(h]h ]h"]h$]h&]uh1jhj-hhhj.hMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjf/jjf/jjjuh1hhhhj!hNhNubj)}(hX3**Parameters** ``struct stratix10_svc_client *client`` pointer to service client ``const char *name`` service client name **Description** This function is used by service client to request a service channel. **Return** a pointer to channel assigned to the client on success, or ERR_PTR() on error.h](j)}(h**Parameters**h]j#)}(hjp/h]h Parameters}(hjr/hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjn/ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMnhjj/ubj9)}(hhh](j>)}(hB``struct stratix10_svc_client *client`` pointer to service client h](jD)}(h'``struct stratix10_svc_client *client``h]jJ)}(hj/h]h#struct stratix10_svc_client *client}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj/ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMkhj/ubj`)}(hhh]j)}(hpointer to service clienth]hpointer to service client}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/hMkhj/ubah}(h]h ]h"]h$]h&]uh1j_hj/ubeh}(h]h ]h"]h$]h&]uh1j=hj/hMkhj/ubj>)}(h)``const char *name`` service client name h](jD)}(h``const char *name``h]jJ)}(hj/h]hconst char *name}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj/ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMlhj/ubj`)}(hhh]j)}(hservice client nameh]hservice client name}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/hMlhj/ubah}(h]h ]h"]h$]h&]uh1j_hj/ubeh}(h]h ]h"]h$]h&]uh1j=hj/hMlhj/ubeh}(h]h ]h"]h$]h&]uh1j8hjj/ubj)}(h**Description**h]j#)}(hj0h]h Description}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj0ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMnhjj/ubj)}(hEThis function is used by service client to request a service channel.h]hEThis function is used by service client to request a service channel.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMnhjj/ubj)}(h **Return**h]j#)}(hj*0h]hReturn}(hj,0hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj(0ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMphjj/ubj)}(hNa pointer to channel assigned to the client on success, or ERR_PTR() on error.h]hNa pointer to channel assigned to the client on success, or ERR_PTR() on error.}(hj@0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMphjj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ'stratix10_svc_free_channel (C function)c.stratix10_svc_free_channelhNtauh1hhj!hhhNhNubh)}(hhh](h)}(hAvoid stratix10_svc_free_channel (struct stratix10_svc_chan *chan)h]h)}(h@void stratix10_svc_free_channel(struct stratix10_svc_chan *chan)h](h)}(hvoidh]hvoid}(hjo0hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjk0hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubh)}(h h]h }(hj~0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjk0hhhj}0hMubj)}(hstratix10_svc_free_channelh]j)}(hstratix10_svc_free_channelh]hstratix10_svc_free_channel}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hjk0hhhj}0hMubj/)}(h!(struct stratix10_svc_chan *chan)h]j5)}(hstruct stratix10_svc_chan *chanh](j;)}(hj[h]hstruct}(hj0hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj0ubh)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj0ubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj0sbc.stratix10_svc_free_channelasbuh1hhj0ubh)}(h h]h }(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hchanh]hchan}(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj0ubah}(h]h ]h"]h$]h&]j,j-uh1j.hjk0hhhj}0hMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhjg0hhhj}0hMubah}(h]jb0ah ](jjeh"]h$]h&]jj)jhuh1hhj}0hMhjd0hhubj)}(hhh]j)}(hfree service channelh]hfree service channel}(hj/1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj,1hhubah}(h]h ]h"]h$]h&]uh1jhjd0hhhj}0hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjG1jjG1jjjuh1hhhhj!hNhNubj)}(h**Parameters** ``struct stratix10_svc_chan *chan`` service channel to be freed **Description** This function is used by service client to free a service channel.h](j)}(h**Parameters**h]j#)}(hjQ1h]h Parameters}(hjS1hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjO1ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjK1ubj9)}(hhh]j>)}(h@``struct stratix10_svc_chan *chan`` service channel to be freed h](jD)}(h#``struct stratix10_svc_chan *chan``h]jJ)}(hjp1h]hstruct stratix10_svc_chan *chan}(hjr1hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjn1ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjj1ubj`)}(hhh]j)}(hservice channel to be freedh]hservice channel to be freed}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1j_hjj1ubeh}(h]h ]h"]h$]h&]uh1j=hj1hMhjg1ubah}(h]h ]h"]h$]h&]uh1j8hjK1ubj)}(h**Description**h]j#)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj1ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjK1ubj)}(hBThis function is used by service client to free a service channel.h]hBThis function is used by service client to free a service channel.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjK1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌstratix10_svc_send (C function)c.stratix10_svc_sendhNtauh1hhj!hhhNhNubh)}(hhh](h)}(hCint stratix10_svc_send (struct stratix10_svc_chan *chan, void *msg)h]h)}(hBint stratix10_svc_send(struct stratix10_svc_chan *chan, void *msg)h](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj1hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubh)}(h h]h }(hj1hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj1hhhj1hMubj)}(hstratix10_svc_sendh]j)}(hstratix10_svc_sendh]hstratix10_svc_send}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj 2ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj1hhhj1hMubj/)}(h,(struct stratix10_svc_chan *chan, void *msg)h](j5)}(hstruct stratix10_svc_chan *chanh](j;)}(hj[h]hstruct}(hj-2hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj)2ubh)}(h h]h }(hj:2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj)2ubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hjK2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjH2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjM2modnameN classnameNjj)}j]j)}jj2sbc.stratix10_svc_sendasbuh1hhj)2ubh)}(h h]h }(hjk2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj)2ubj)}(hjh]h*}(hjy2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)2ubj)}(hchanh]hchan}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj)2ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj%2ubj5)}(h void *msgh](h)}(hvoidh]hvoid}(hj2hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj2ubh)}(h h]h }(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(hmsgh]hmsg}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj%2ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj1hhhj1hMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj1hhhj1hMubah}(h]j1ah ](jjeh"]h$]h&]jj)jhuh1hhj1hMhj1hhubj)}(hhh]j)}(h!send a message data to the remoteh]h!send a message data to the remote}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj2hhubah}(h]h ]h"]h$]h&]uh1jhj1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj 3jj 3jjjuh1hhhhj!hNhNubj)}(hX**Parameters** ``struct stratix10_svc_chan *chan`` service channel assigned to the client ``void *msg`` message data to be sent, in the format of "struct stratix10_svc_client_msg" **Description** This function is used by service client to add a message to the service layer driver's queue for being sent to the secure world. **Return** 0 for success, -ENOMEM or -ENOBUFS on error.h](j)}(h**Parameters**h]j#)}(hj3h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj3ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubj9)}(hhh](j>)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jD)}(h#``struct stratix10_svc_chan *chan``h]jJ)}(hj33h]hstruct stratix10_svc_chan *chan}(hj53hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj13ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj-3ubj`)}(hhh]j)}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hjL3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH3hMhjI3ubah}(h]h ]h"]h$]h&]uh1j_hj-3ubeh}(h]h ]h"]h$]h&]uh1j=hjH3hMhj*3ubj>)}(hZ``void *msg`` message data to be sent, in the format of "struct stratix10_svc_client_msg" h](jD)}(h ``void *msg``h]jJ)}(hjl3h]h void *msg}(hjn3hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjj3ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjf3ubj`)}(hhh]j)}(hKmessage data to be sent, in the format of "struct stratix10_svc_client_msg"h]hOmessage data to be sent, in the format of “struct stratix10_svc_client_msg”}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubah}(h]h ]h"]h$]h&]uh1j_hjf3ubeh}(h]h ]h"]h$]h&]uh1j=hj3hMhj*3ubeh}(h]h ]h"]h$]h&]uh1j8hj3ubj)}(h**Description**h]j#)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj3ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubj)}(hThis function is used by service client to add a message to the service layer driver's queue for being sent to the secure world.h]hThis function is used by service client to add a message to the service layer driver’s queue for being sent to the secure world.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubj)}(h **Return**h]j#)}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj3ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubj)}(h,0 for success, -ENOMEM or -ENOBUFS on error.h]h,0 for success, -ENOMEM or -ENOBUFS on error.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌstratix10_svc_done (C function)c.stratix10_svc_donehNtauh1hhj!hhhNhNubh)}(hhh](h)}(h9void stratix10_svc_done (struct stratix10_svc_chan *chan)h]h)}(h8void stratix10_svc_done(struct stratix10_svc_chan *chan)h](h)}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj4hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubh)}(h h]h }(hj#4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj4hhhj"4hMubj)}(hstratix10_svc_doneh]j)}(hstratix10_svc_doneh]hstratix10_svc_done}(hj54hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj14ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj4hhhj"4hMubj/)}(h!(struct stratix10_svc_chan *chan)h]j5)}(hstruct stratix10_svc_chan *chanh](j;)}(hj[h]hstruct}(hjQ4hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hjM4ubh)}(h h]h }(hj^4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjM4ubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hjo4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjl4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq4modnameN classnameNjj)}j]j)}jj74sbc.stratix10_svc_doneasbuh1hhjM4ubh)}(h h]h }(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjM4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM4ubj)}(hchanh]hchan}(hj4hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjM4ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hjI4ubah}(h]h ]h"]h$]h&]j,j-uh1j.hj4hhhj"4hMubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj 4hhhj"4hMubah}(h]j4ah ](jjeh"]h$]h&]jj)jhuh1hhj"4hMhj 4hhubj)}(hhh]j)}(h%complete service request transactionsh]h%complete service request transactions}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hj4hhubah}(h]h ]h"]h$]h&]uh1jhj 4hhhj"4hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhj!hNhNubj)}(hXD**Parameters** ``struct stratix10_svc_chan *chan`` service channel assigned to the client **Description** This function should be called when client has finished its request or there is an error in the request process. It allows the service layer to stop the running thread to have maximize savings in kernel resources.h](j)}(h**Parameters**h]j#)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj4ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj4ubj9)}(hhh]j>)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jD)}(h#``struct stratix10_svc_chan *chan``h]jJ)}(hj5h]hstruct stratix10_svc_chan *chan}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj5ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hj5ubj`)}(hhh]j)}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hj.5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*5hM hj+5ubah}(h]h ]h"]h$]h&]uh1j_hj5ubeh}(h]h ]h"]h$]h&]uh1j=hj*5hM hj 5ubah}(h]h ]h"]h$]h&]uh1j8hj4ubj)}(h**Description**h]j#)}(hjP5h]h Description}(hjR5hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hjN5ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hj4ubj)}(hThis function should be called when client has finished its request or there is an error in the request process. It allows the service layer to stop the running thread to have maximize savings in kernel resources.h]hThis function should be called when client has finished its request or there is an error in the request process. It allows the service layer to stop the running thread to have maximize savings in kernel resources.}(hjf5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ*stratix10_svc_allocate_memory (C function)c.stratix10_svc_allocate_memoryhNtauh1hhj!hhhNhNubh)}(hhh](h)}(hSvoid * stratix10_svc_allocate_memory (struct stratix10_svc_chan *chan, size_t size)h]h)}(hQvoid *stratix10_svc_allocate_memory(struct stratix10_svc_chan *chan, size_t size)h](h)}(hvoidh]hvoid}(hj5hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj5hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM&ubh)}(h h]h }(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj5hhhj5hM&ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj5hM&ubj)}(hstratix10_svc_allocate_memoryh]j)}(hstratix10_svc_allocate_memoryh]hstratix10_svc_allocate_memory}(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj5ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj5hhhj5hM&ubj/)}(h.(struct stratix10_svc_chan *chan, size_t size)h](j5)}(hstruct stratix10_svc_chan *chanh](j;)}(hj[h]hstruct}(hj5hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj5ubh)}(h h]h }(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj5ubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj5hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj5sbc.stratix10_svc_allocate_memoryasbuh1hhj5ubh)}(h h]h }(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj5ubj)}(hjh]h*}(hj+6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hchanh]hchan}(hj86hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj5ubj5)}(h size_t sizeh](h)}(hhh]j)}(hsize_th]hsize_t}(hjT6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjQ6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjV6modnameN classnameNjj)}j]j6c.stratix10_svc_allocate_memoryasbuh1hhjM6ubh)}(h h]h }(hjr6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjM6ubj)}(hsizeh]hsize}(hj6hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjM6ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj5ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj5hhhj5hM&ubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj5hhhj5hM&ubah}(h]j5ah ](jjeh"]h$]h&]jj)jhuh1hhj5hM&hj5hhubj)}(hhh]j)}(hallocate memoryh]hallocate memory}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj6hhubah}(h]h ]h"]h$]h&]uh1jhj5hhhj5hM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj!hNhNubj)}(hX**Parameters** ``struct stratix10_svc_chan *chan`` service channel assigned to the client ``size_t size`` memory size requested by a specific service client **Description** Service layer allocates the requested number of bytes buffer from the memory pool, service client uses this function to get allocated buffers. **Return** address of allocated memory on success, or ERR_PTR() on error.h](j)}(h**Parameters**h]j#)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj6ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM!hj6ubj9)}(hhh](j>)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jD)}(h#``struct stratix10_svc_chan *chan``h]jJ)}(hj6h]hstruct stratix10_svc_chan *chan}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj6ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj6ubj`)}(hhh]j)}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1j_hj6ubeh}(h]h ]h"]h$]h&]uh1j=hj7hMhj6ubj>)}(hC``size_t size`` memory size requested by a specific service client h](jD)}(h``size_t size``h]jJ)}(hj$7h]h size_t size}(hj&7hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj"7ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj7ubj`)}(hhh]j)}(h2memory size requested by a specific service clienth]h2memory size requested by a specific service client}(hj=7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj97hMhj:7ubah}(h]h ]h"]h$]h&]uh1j_hj7ubeh}(h]h ]h"]h$]h&]uh1j=hj97hMhj6ubeh}(h]h ]h"]h$]h&]uh1j8hj6ubj)}(h**Description**h]j#)}(hj_7h]h Description}(hja7hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj]7ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM!hj6ubj)}(hService layer allocates the requested number of bytes buffer from the memory pool, service client uses this function to get allocated buffers.h]hService layer allocates the requested number of bytes buffer from the memory pool, service client uses this function to get allocated buffers.}(hju7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM!hj6ubj)}(h **Return**h]j#)}(hj7h]hReturn}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj7ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM$hj6ubj)}(h>address of allocated memory on success, or ERR_PTR() on error.h]h>address of allocated memory on success, or ERR_PTR() on error.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM$hj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hՌ&stratix10_svc_free_memory (C function)c.stratix10_svc_free_memoryhNtauh1hhj!hhhNhNubh)}(hhh](h)}(hMvoid stratix10_svc_free_memory (struct stratix10_svc_chan *chan, void *kaddr)h]h)}(hLvoid stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr)h](h)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj7hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMLubh)}(h h]h }(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj7hhhj7hMLubj)}(hstratix10_svc_free_memoryh]j)}(hstratix10_svc_free_memoryh]hstratix10_svc_free_memory}(hj7hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj7ubah}(h]h ](j'j(eh"]h$]h&]j,j-uh1j hj7hhhj7hMLubj/)}(h.(struct stratix10_svc_chan *chan, void *kaddr)h](j5)}(hstruct stratix10_svc_chan *chanh](j;)}(hj[h]hstruct}(hj8hhhNhNubah}(h]h ]jGah"]h$]h&]uh1j:hj8ubh)}(h h]h }(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj8ubh)}(hhh]j)}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj&8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj#8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(8modnameN classnameNjj)}j]j)}jj7sbc.stratix10_svc_free_memoryasbuh1hhj8ubh)}(h h]h }(hjF8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj8ubj)}(hjh]h*}(hjT8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(hchanh]hchan}(hja8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj8ubj5)}(h void *kaddrh](h)}(hvoidh]hvoid}(hjz8hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjv8ubh)}(h h]h }(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjv8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv8ubj)}(hkaddrh]hkaddr}(hj8hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjv8ubeh}(h]h ]h"]h$]h&]noemphj,j-uh1j4hj8ubeh}(h]h ]h"]h$]h&]j,j-uh1j.hj7hhhj7hMLubeh}(h]h ]h"]h$]h&]j,j-juh1hjjhj7hhhj7hMLubah}(h]j7ah ](jjeh"]h$]h&]jj)jhuh1hhj7hMLhj7hhubj)}(hhh]j)}(hfree allocated memoryh]hfree allocated memory}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMFhj8hhubah}(h]h ]h"]h$]h&]uh1jhj7hhhj7hMLubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhj!hNhNubj)}(h**Parameters** ``struct stratix10_svc_chan *chan`` service channel assigned to the client ``void *kaddr`` memory to be freed **Description** This function is used by service client to free allocated buffers.h](j)}(h**Parameters**h]j#)}(hj8h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj8ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMJhj8ubj9)}(hhh](j>)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jD)}(h#``struct stratix10_svc_chan *chan``h]jJ)}(hj9h]hstruct stratix10_svc_chan *chan}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhj 9ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMGhj9ubj`)}(hhh]j)}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hj'9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#9hMGhj$9ubah}(h]h ]h"]h$]h&]uh1j_hj9ubeh}(h]h ]h"]h$]h&]uh1j=hj#9hMGhj9ubj>)}(h#``void *kaddr`` memory to be freed h](jD)}(h``void *kaddr``h]jJ)}(hjG9h]h void *kaddr}(hjI9hhhNhNubah}(h]h ]h"]h$]h&]uh1jIhjE9ubah}(h]h ]h"]h$]h&]uh1jChu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMHhjA9ubj`)}(hhh]j)}(hmemory to be freedh]hmemory to be freed}(hj`9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\9hMHhj]9ubah}(h]h ]h"]h$]h&]uh1j_hjA9ubeh}(h]h ]h"]h$]h&]uh1j=hj\9hMHhj9ubeh}(h]h ]h"]h$]h&]uh1j8hj8ubj)}(h**Description**h]j#)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j"hj9ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMJhj8ubj)}(hBThis function is used by service client to free allocated buffers.h]hBThis function is used by service client to free allocated buffers.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMJhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj!hhhNhNubeh}(h]!intel-stratix10-soc-service-layerah ]h"]!intel stratix10 soc service layerah$]h&]uh1hhhhhhhhKubeh}(h]other-firmware-interfacesah ]h"]other firmware interfacesah$]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_handlerj9error_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}(j9j9jjjj}j!j!j9j9u nametypes}(j9jjj!j9uh}(j9hjhhhjjjjj jjPjUj j j j jjjWj\jajfjjj}jj9j>jHjMjjjjjjj!jjjji jn j9j!j!j!j'j'j)j)j*j*jn,js,j-j-jb0jg0j1j1j4j 4j5j5j7j7u 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.