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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget8/translations/pt_BR/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}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM{ubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhM{ubh desc_name)}(hdmi_check_systemh]h desc_sig_name)}(hdmi_check_systemh]hdmi_check_system}(hj)hhhNhNubah}(h]h ]nah"]h$]h&]uh1j'hj#ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j!hhhhhjhM{ubhdesc_parameterlist)}(h"(const struct dmi_system_id *list)h]hdesc_parameter)}(h const struct dmi_system_id *listh](hdesc_sig_keyword)}(hconsth]hconst}(hjPhhhNhNubah}(h]h ]kah"]h$]h&]uh1jNhjJubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjO)}(hstructh]hstruct}(hjmhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjJubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubh)}(hhh]j()}(h dmi_system_idh]h dmi_system_id}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj+sbc.dmi_check_systemasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjJubj()}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjJubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjDubah}(h]h ]h"]h$]h&]j@jAuh1jBhhhhhjhM{ubeh}(h]h ]h"]h$]h&]j@jA add_permalinkuh1hsphinx_line_type declaratorhhhhhjhM{ubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhM{hhhhubh desc_content)}(hhh]h paragraph)}(hcheck system DMI datah]hcheck system DMI data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM{hjhhubah}(h]h ]h"]h$]h&]uh1jhhhhhjhM{ubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypej"desctypej"noindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hXX**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. **Description** 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)}(hj4h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj2ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj.ubhdefinition_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. h](hterm)}(h$``const struct dmi_system_id *list``h]hliteral)}(hj[h]h const struct dmi_system_id *list}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjYubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjSubh 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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM|hjuubah}(h]h ]h"]h$]h&]uh1jshjSubeh}(h]h ]h"]h$]h&]uh1jQhjrhMhjNubah}(h]h ]h"]h$]h&]uh1jLhj.ubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj.ubh 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj )}(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.chMhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdmi_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](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubjO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhhjhMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubh)}(hhh]j()}(h dmi_system_idh]h dmi_system_id}(hj5hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jdmi_first_matchsbc.dmi_first_matchasbuh1hhjhhhjhMubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hdmi_first_matchh]j()}(hjSh]hdmi_first_match}(hjuhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjqubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h"(const struct dmi_system_id *list)h]jI)}(h const struct dmi_system_id *listh](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h dmi_system_idh]h dmi_system_id}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jQc.dmi_first_matchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(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}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jDj(jDj)j*j+uh1hhhhhhNhNubj-)}(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. **Description** 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]j7)}(hjNh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjLubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjHubjM)}(hhh]jR)}(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. h](jX)}(h$``const struct dmi_system_id *list``h]j^)}(hjmh]h const struct dmi_system_id *list}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjkubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjgubjt)}(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.}(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&]uh1jshjgubeh}(h]h ]h"]h$]h&]uh1jQhjhMhjdubah}(h]h ]h"]h$]h&]uh1jLhjHubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjHubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj )}(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.chMhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(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](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubh)}(hcharh]hchar}(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hdmi_get_system_infoh]j()}(hdmi_get_system_infoh]hdmi_get_system_info}(hjPhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjLubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h (int field)h]jI)}(h int fieldh](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj()}(hfieldh]hfield}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjhubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjdubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(hhh]j )}(hreturn DMI data valueh]hreturn DMI data value}(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&]j&jj'jj(jj)j*j+uh1hhhhhhNhNubj-)}(h**Parameters** ``int field`` data index (see enum dmi_field) **Description** Returns one DMI data value, can be used to perform complex DMI data checks.h](j )}(h**Parameters**h]j7)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubjM)}(hhh]jR)}(h.``int field`` data index (see enum dmi_field) h](jX)}(h ``int field``h]j^)}(hjh]h int field}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubjt)}(hhh]j )}(hdata index (see enum dmi_field)h]hdata index (see enum dmi_field)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhj ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhjhMhjubah}(h]h ]h"]h$]h&]uh1jLhjubj )}(h**Description**h]j7)}(hj.h]h Description}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj,ubah}(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]j )}(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.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjDubah}(h]h ]h"]h$]h&]uh1jhjVhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(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}(hj}hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjyhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyhhhjhMubj")}(hdmi_name_in_vendorsh]j()}(hdmi_name_in_vendorsh]hdmi_name_in_vendors}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjyhhhjhMubjC)}(h(const char *str)h]jI)}(hconst char *strh](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hstrh]hstr}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjyhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjuhhhjhMubah}(h]jpah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjrhhubj)}(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}(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&]uh1jhjrhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j@j(j@j)j*j+uh1hhhhhhNhNubj-)}(h9**Parameters** ``const char *str`` Case sensitive Nameh](j )}(h**Parameters**h]j7)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjHubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjDubjM)}(hhh]jR)}(h'``const char *str`` Case sensitive Nameh](jX)}(h``const char *str``h]j^)}(hjih]hconst char *str}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjgubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjcubjt)}(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&]uh1jshjcubeh}(h]h ]h"]h$]h&]uh1jQhj~hMhj`ubah}(h]h ]h"]h$]h&]uh1jLhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdmi_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](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubjO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubh)}(hhh]j()}(h dmi_deviceh]h dmi_device}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jdmi_find_devicesbc.dmi_find_deviceasbuh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hdmi_find_deviceh]j()}(hjh]hdmi_find_device}(hj=hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj9ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h;(int type, const char *name, const struct dmi_device *from)h](jI)}(hint typeh](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjTubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj()}(htypeh]htype}(hjthhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjTubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjPubjI)}(hconst char *nameh](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hnameh]hname}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjPubjI)}(hconst struct dmi_device *fromh](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjO)}(hjoh]hstruct}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h dmi_deviceh]h dmi_device}(hj# hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj% modnameN classnameNjj)}j]jc.dmi_find_deviceasbuh1hhjubj)}(h h]h }(hjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hfromh]hfrom}(hj\ hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjPubeh}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMhjhhubj)}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j j(j j)j*j+uh1hhhhhhNhNubj-)}(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. **Description** 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]j7)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubjM)}(hhh](jR)}(hK``int type`` device type or ``DMI_DEV_TYPE_ANY`` to match all device types h](jX)}(h ``int type``h]j^)}(hj h]hint type}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubjt)}(hhh]j )}(h=device type or ``DMI_DEV_TYPE_ANY`` to match all device typesh](hdevice type or }(hj hhhNhNubj^)}(h``DMI_DEV_TYPE_ANY``h]hDMI_DEV_TYPE_ANY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubh to match all device types}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jQhj hMhj ubjR)}(hA``const char *name`` device name string or ``NULL`` to match all h](jX)}(h``const char *name``h]j^)}(hj h]hconst char *name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhj ubjt)}(hhh]j )}(h+device name string or ``NULL`` to match allh](hdevice name string or }(hj+ hhhNhNubj^)}(h``NULL``h]hNULL}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj+ ubh to match all}(hj+ hhhNhNubeh}(h]h ]h"]h$]h&]uh1jhj' hMhj( ubah}(h]h ]h"]h$]h&]uh1jshj ubeh}(h]h ]h"]h$]h&]uh1jQhj' hMhj ubjR)}(h_``const struct dmi_device *from`` previous device found in search, or ``NULL`` for new search. h](jX)}(h!``const struct dmi_device *from``h]j^)}(hj] h]hconst struct dmi_device *from}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj[ ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjW ubjt)}(hhh]j )}(hhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h dmi_headerh]h dmi_header}(hj\hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jjsb c.dmi_walkasbuh1hhjubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h,h]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubjI)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubeh}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMYubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj~hhhjhMYubah}(h]jyah ](jjeh"]h$]h&]jj)jhuh1hhjhMYhj{hhubj)}(hhh]j )}(h7Walk the DMI table and get called back for every recordh]h7Walk the DMI table and get called back for every record}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMYhj(hhubah}(h]h ]h"]h$]h&]uh1jhj{hhhjhMYubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jCj(jCj)j*j+uh1hhhhhhNhNubj-)}(hX?**Parameters** ``void (*decode)(const struct dmi_header *, void *)`` Callback function ``void *private_data`` Private data to be passed to the callback function **Description** 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]j7)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjKubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM]hjGubjM)}(hhh](jR)}(hH``void (*decode)(const struct dmi_header *, void *)`` Callback function h](jX)}(h5``void (*decode)(const struct dmi_header *, void *)``h]j^)}(hjlh]h1void (*decode)(const struct dmi_header *, void *)}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjjubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMZhjfubjt)}(hhh]j )}(hCallback functionh]hCallback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMZhjubah}(h]h ]h"]h$]h&]uh1jshjfubeh}(h]h ]h"]h$]h&]uh1jQhjhMZhjcubjR)}(hJ``void *private_data`` Private data to be passed to the callback function h](jX)}(h``void *private_data``h]j^)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM[hjubjt)}(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&]uh1jhjhM[hjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhjhM[hjcubeh}(h]h ]h"]h$]h&]uh1jLhjGubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM]hjGubj)}(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]j )}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chM\hjubah}(h]h ]h"]h$]h&]uh1jhjhM\hjGubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdmi_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)}(hjy h]hbool}(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj+hhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMtubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj<hMtubj")}(h dmi_matchh]j()}(h dmi_matchh]h dmi_match}(hjOhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjKubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj+hhhj<hMtubjC)}(h#(enum dmi_field f, const char *str)h](jI)}(henum dmi_field fh](jO)}(henumh]henum}(hjkhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjgubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubh)}(hhh]j()}(h dmi_fieldh]h dmi_field}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjQsb c.dmi_matchasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj()}(hfh]hf}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjgubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjcubjI)}(hconst char *strh](jO)}(hjRh]hconst}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hstrh]hstr}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjcubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj+hhhj<hMtubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj'hhhj<hMtubah}(h]j"ah ](jjeh"]h$]h&]jj)jhuh1hhj<hMthj$hhubj)}(hhh]j )}(h-compare a string to the dmi field (if exists)h]h-compare a string to the dmi field (if exists)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMthj<hhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj<hMtubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jWj(jWj)j*j+uh1hhhhhhNhNubj-)}(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]j7)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj_ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMxhj[ubjM)}(hhh](jR)}(h*``enum dmi_field f`` DMI field identifier h](jX)}(h``enum dmi_field f``h]j^)}(hjh]henum dmi_field f}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj~ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMuhjzubjt)}(hhh]j )}(hDMI field identifierh]hDMI field identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMuhjubah}(h]h ]h"]h$]h&]uh1jshjzubeh}(h]h ]h"]h$]h&]uh1jQhjhMuhjwubjR)}(h7``const char *str`` string to compare the DMI field to h](jX)}(h``const char *str``h]j^)}(hjh]hconst char *str}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMvhjubjt)}(hhh]j )}(h"string to compare the DMI field toh]h"string to compare the DMI field to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMvhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhjhMvhjwubeh}(h]h ]h"]h$]h&]uh1jLhj[ubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMxhj[ubj )}(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.chMwhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdmi_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}(hj<hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jdmi_memdev_typesbc.dmi_memdev_typeasbuh1hhj5hhho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj]hMubj")}(hdmi_memdev_typeh]j()}(hjZh]hdmi_memdev_type}(hjphhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjlubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj5hhhj]hMubjC)}(h (u16 handle)h]jI)}(h u16 handleh](h)}(hhh]j()}(hu16h]hu16}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jXc.dmi_memdev_typeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hhandleh]hhandle}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhj5hhhj]hMubeh}(h]h ]h"]h$]h&]j@UjAjuh1hjjhj1hhhj]hMubah}(h]j,ah ](jjeh"]h$]h&]jj)jhuh1hhj]hMhj.hhubj)}(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&]uh1jhj.hhhj]hMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jj(jj)j*j+uh1hhhhhhNhNubj-)}(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]j7)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubjM)}(hhh]jR)}(h$``u16 handle`` DMI structure handle h](jX)}(h``u16 handle``h]j^)}(hj%h]h u16 handle}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj#ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubjt)}(hhh]j )}(hDMI structure handleh]hDMI structure handle}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:hMhj;ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhj:hMhjubah}(h]h ]h"]h$]h&]uh1jLhjubj )}(h**Description**h]j7)}(hj`h]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj^ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubj )}(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]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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdmi_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 ]j4ah"]h$]h&]uh1j'hjubah}(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.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hdmi_memdev_handleh]j()}(hjh]hdmi_memdev_handle}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h (int slot)h]jI)}(hint sloth](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hsloth]hslot}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(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}(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&]uh1jhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jUj(jUj)j*j+uh1hhhhhhNhNubj-)}(h**Parameters** ``int slot`` slot number **Description** Return the DMI handle associated with a given memory slot, or ``0xFFFF`` if there is no such slot.h](j )}(h**Parameters**h]j7)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj]ubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjYubjM)}(hhh]jR)}(h``int slot`` slot number h](jX)}(h ``int slot``h]j^)}(hj~h]hint slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj|ubah}(h]h ]h"]h$]h&]uh1jWho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjxubjt)}(hhh]j )}(h slot numberh]h slot number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jshjxubeh}(h]h ]h"]h$]h&]uh1jQhjhMhjuubah}(h]h ]h"]h$]h&]uh1jLhjYubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jho/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:7: ./drivers/firmware/dmi_scan.chMhjYubj)}(hbReturn the DMI handle associated with a given memory slot, or ``0xFFFF`` if there is no such slot.h]j )}(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 }(hjhhhNhNubj^)}(h ``0xFFFF``h]h0xFFFF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubh if there is no such slot.}(hjhhhNhNubeh}(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&]uh1jhjhMhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hhhhhNhNubeh}(h]dmi-interfacesah ]h"]dmi interfacesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hEDD Interfacesh]hEDD Interfaces}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hedd_show_raw_data (C function)c.edd_show_raw_datahNtauh1hhj hhhNhNubh)}(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}(hj6hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jedd_show_raw_datasbc.edd_show_raw_dataasbuh1hhj/hhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhjWhKubj")}(hedd_show_raw_datah]j()}(hjTh]hedd_show_raw_data}(hjjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjfubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj/hhhjWhKubjC)}(h$(struct edd_device *edev, char *buf)h](jI)}(hstruct edd_device *edevh](jO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h edd_deviceh]h edd_device}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jRc.edd_show_raw_dataasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hedevh]hedev}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj}ubjI)}(h char *bufh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hbufh]hbuf}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj}ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj/hhhjWhKubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj+hhhjWhKubah}(h]j&ah ](jjeh"]h$]h&]jj)jhuh1hhjWhKhj(hhubj)}(hhh]j )}(h0copies raw data to buffer for userspace to parseh]h0copies raw data to buffer for userspace to parse}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjEhhubah}(h]h ]h"]h$]h&]uh1jhj(hhhjWhKubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j`j(j`j)j*j+uh1hhhhj hNhNubj-)}(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]j7)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjhubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjdubjM)}(hhh](jR)}(h.``struct edd_device *edev`` target edd_device h](jX)}(h``struct edd_device *edev``h]j^)}(hjh]hstruct edd_device *edev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjubjt)}(hhh]j )}(htarget edd_deviceh]htarget edd_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhjhKhjubjR)}(h``char *buf`` output buffer h](jX)}(h ``char *buf``h]j^)}(hjh]h char *buf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjubjt)}(hhh]j )}(h output bufferh]h output buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhjhKhjubeh}(h]h ]h"]h$]h&]uh1jLhjdubj )}(h **Return**h]j7)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjdubj )}(h.number of bytes written, or -EINVAL on failureh]h.number of bytes written, or -EINVAL on failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhjdubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hedd_release (C function) c.edd_releasehNtauh1hhj hhhNhNubh)}(hhh](h)}(h(void edd_release (struct kobject * kobj)h]h)}(h&void edd_release(struct kobject *kobj)h](h)}(hvoidh]hvoid}(hjBhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj>hhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMUubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhjPhMUubj")}(h edd_releaseh]j()}(h edd_releaseh]h edd_release}(hjchhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj_ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj>hhhjPhMUubjC)}(h(struct kobject *kobj)h]jI)}(hstruct kobject *kobjh](jO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubh)}(hhh]j()}(hkobjecth]hkobject}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjesb c.edd_releaseasbuh1hhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj()}(hkobjh]hkobj}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj{ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjwubah}(h]h ]h"]h$]h&]j@jAuh1jBhj>hhhjPhMUubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj:hhhjPhMUubah}(h]j5ah ](jjeh"]h$]h&]jj)jhuh1hhjPhMUhj7hhubj)}(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&]uh1jhj7hhhjPhMUubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jj(jj)j*j+uh1hhhhj hNhNubj-)}(hX **Parameters** ``struct kobject * kobj`` kobject of edd structure **Description** 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]j7)}(hj$h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj"ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMYhjubjM)}(hhh]jR)}(h3``struct kobject * kobj`` kobject of edd structure h](jX)}(h``struct kobject * kobj``h]j^)}(hjCh]hstruct kobject * kobj}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjAubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMVhj=ubjt)}(hhh]j )}(hkobject of edd structureh]hkobject of edd structure}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXhMVhjYubah}(h]h ]h"]h$]h&]uh1jshj=ubeh}(h]h ]h"]h$]h&]uh1jQhjXhMVhj:ubah}(h]h ]h"]h$]h&]uh1jLhjubj )}(h**Description**h]j7)}(hj~h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMXhjubj)}(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]j )}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMWhjubah}(h]h ]h"]h$]h&]uh1jhjhMWhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hedd_dev_is_type (C function)c.edd_dev_is_typehNtauh1hhj hhhNhNubh)}(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 ]j ah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMlubj")}(hedd_dev_is_typeh]j()}(hedd_dev_is_typeh]hedd_dev_is_type}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMlubjC)}(h+(struct edd_device *edev, const char *type)h](jI)}(hstruct edd_device *edevh](jO)}(hjoh]hstruct}(hj hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(h edd_deviceh]h edd_device}(hj(hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.edd_dev_is_typeasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hedevh]hedev}(hjchhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubjI)}(hconst char *typeh](jO)}(hjRh]hconst}(hj|hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj()}(htypeh]htype}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjxubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubeh}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMlubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMlubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhMlhjhhubj)}(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&]uh1jhjhhhjhMlubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jj(jj)j*j+uh1hhhhj hNhNubj-)}(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]j7)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMphjubjM)}(hhh](jR)}(h.``struct edd_device *edev`` target edd_device h](jX)}(h``struct edd_device *edev``h]j^)}(hj+h]hstruct edd_device *edev}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj)ubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMmhj%ubjt)}(hhh]j )}(htarget edd_deviceh]htarget edd_device}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@hMmhjAubah}(h]h ]h"]h$]h&]uh1jshj%ubeh}(h]h ]h"]h$]h&]uh1jQhj@hMmhj"ubjR)}(hP``const char *type`` a host bus or interface identifier string per the EDD spec h](jX)}(h``const char *type``h]j^)}(hjdh]hconst char *type}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjbubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMnhj^ubjt)}(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}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhMnhjzubah}(h]h ]h"]h$]h&]uh1jshj^ubeh}(h]h ]h"]h$]h&]uh1jQhjyhMnhj"ubeh}(h]h ]h"]h$]h&]uh1jLhjubj )}(h**Description**h]j7)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(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.chMohjubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hedd_get_pci_dev (C function)c.edd_get_pci_devhNtauh1hhj hhhNhNubh)}(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](jO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubh)}(hhh]j()}(hpci_devh]hpci_dev}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jedd_get_pci_devsbc.edd_get_pci_devasbuh1hhjhhhjhMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hedd_get_pci_devh]j()}(hj!h]hedd_get_pci_dev}(hjChhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj?ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h(struct edd_device *edev)h]jI)}(hstruct edd_device *edevh](jO)}(hjoh]hstruct}(hj^hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjZubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j()}(h edd_deviceh]h edd_device}(hj|hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]jc.edd_get_pci_devasbuh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj()}(hedevh]hedev}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjZubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjVubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(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&]j&jj'jj(jj)j*j+uh1hhhhj hNhNubj-)}(hl**Parameters** ``struct edd_device *edev`` edd_device **Description** Returns pci_dev if found, or NULLh](j )}(h**Parameters**h]j7)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubjM)}(hhh]jR)}(h'``struct edd_device *edev`` edd_device h](jX)}(h``struct edd_device *edev``h]j^)}(hj h]hstruct edd_device *edev}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjubjt)}(hhh]j )}(h edd_deviceh]h edd_device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5hMhj6ubah}(h]h ]h"]h$]h&]uh1jshjubeh}(h]h ]h"]h$]h&]uh1jQhj5hMhjubah}(h]h ]h"]h$]h&]uh1jLhjubj )}(h**Description**h]j7)}(hj[h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjYubah}(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}(hjqhhhNhNubah}(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&]uh1j,hj hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hedd_init (C function) c.edd_inithNtauh1hhj hhhNhNubh)}(hhh](h)}(hint edd_init (void)h]h)}(hint edd_init(void)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(hedd_inith]j()}(hedd_inith]hedd_init}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhMubjC)}(h(void)h]jI)}(hvoidh]h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhMubah}(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&]j&jj'jj(jj)j*j+uh1hhhhj hNhNubj-)}(h'**Parameters** ``void`` no argumentsh](j )}(h**Parameters**h]j7)}(hj)h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj'ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhj#ubjM)}(hhh]jR)}(h``void`` no argumentsh](jX)}(h``void``h]j^)}(hjHh]hvoid}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjFubah}(h]h ]h"]h$]h&]uh1jWhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chMhjBubjt)}(hhh]j )}(h no argumentsh]h no arguments}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:13: ./drivers/firmware/edd.chKhj^ubah}(h]h ]h"]h$]h&]uh1jshjBubeh}(h]h ]h"]h$]h&]uh1jQhj]hMhj?ubah}(h]h ]h"]h$]h&]uh1jLhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj hhhNhNubeh}(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](hsysfb_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 ]j ah"]h$]h&]uh1hhjhhhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK8ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK8ubj")}(h sysfb_disableh]j()}(h sysfb_disableh]h sysfb_disable}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjhhhjhK8ubjC)}(h(struct device *dev)h]jI)}(hstruct device *devh](jO)}(hjoh]hstruct}(hjhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j()}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.sysfb_disableasbuh1hhjubj)}(h h]h }(hj6 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjD hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj()}(hdevh]hdev}(hjQ hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjubah}(h]h ]h"]h$]h&]j@jAuh1jBhjhhhjhK8ubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjhhhjhK8ubah}(h]jah ](jjeh"]h$]h&]jj)jhuh1hhjhK8hjhhubj)}(hhh]j )}(h/disable the Generic System Framebuffers supporth]h/disable the Generic System Framebuffers support}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK8hjx hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK8ubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j j(j j)j*j+uh1hhhhjhNhNubj-)}(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]j7)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj ubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:19: ./drivers/firmware/sysfb.chK'hKhj#ubjR)}(h}``COMMAND_FCS_DATA_ENCRYPTION`` encrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jX)}(h``COMMAND_FCS_DATA_ENCRYPTION``h]j^)}(hjc'h]hCOMMAND_FCS_DATA_ENCRYPTION}(hje'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hja'ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj]'ubjt)}(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}(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.hhKhjy'ubah}(h]h ]h"]h$]h&]uh1jshj]'ubeh}(h]h ]h"]h$]h&]uh1jQhjx'hKhj#ubjR)}(h}``COMMAND_FCS_DATA_DECRYPTION`` decrypt the data, return status is SVC_STATUS_OK, SVC_STATUS_INVALID_PARAM, SVC_STATUS_ERROR h](jX)}(h``COMMAND_FCS_DATA_DECRYPTION``h]j^)}(hj'h]hCOMMAND_FCS_DATA_DECRYPTION}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubjt)}(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}(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&]uh1jshj'ubeh}(h]h ]h"]h$]h&]uh1jQhj'hKhj#ubjR)}(hm``COMMAND_FCS_RANDOM_NUMBER_GEN`` generate a random number, return status is SVC_STATUS_OK, SVC_STATUS_ERROR h](jX)}(h!``COMMAND_FCS_RANDOM_NUMBER_GEN``h]j^)}(hj'h]hCOMMAND_FCS_RANDOM_NUMBER_GEN}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj'ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj'ubjt)}(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&]uh1jshj'ubeh}(h]h ]h"]h$]h&]uh1jQhj'hKhj#ubjR)}(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](jX)}(h``COMMAND_POLL_SERVICE_STATUS``h]j^)}(hj(h]hCOMMAND_POLL_SERVICE_STATUS}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj (ubjt)}(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&]uh1jshj (ubeh}(h]h ]h"]h$]h&]uh1jQhj&(hKhj#ubjR)}(hk``COMMAND_MBOX_SEND_CMD`` send generic mailbox command, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jX)}(h``COMMAND_MBOX_SEND_CMD``h]j^)}(hjK(h]hCOMMAND_MBOX_SEND_CMD}(hjM(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjI(ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjE(ubjt)}(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}(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.hhKhja(ubah}(h]h ]h"]h$]h&]uh1jshjE(ubeh}(h]h ]h"]h$]h&]uh1jQhj`(hKhj#ubjR)}(h\``COMMAND_SMC_SVC_VERSION`` Non-mailbox SMC SVC API Version, return status is SVC_STATUS_OK h](jX)}(h``COMMAND_SMC_SVC_VERSION``h]j^)}(hj(h]hCOMMAND_SMC_SVC_VERSION}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj(ubjt)}(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}(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&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jQhj(hKhj#ubjR)}(h``COMMAND_HWMON_READTEMP`` query the temperature from the hardware monitor, return status is SVC_STATUS_OK or SVC_STATUS_ERROR h](jX)}(h``COMMAND_HWMON_READTEMP``h]j^)}(hj(h]hCOMMAND_HWMON_READTEMP}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj(ubjt)}(hhh]j )}(hcquery the temperature from the hardware monitor, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]hcquery the temperature from the hardware monitor, 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&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jQhj(hKhj#ubjR)}(hz``COMMAND_HWMON_READVOLT`` query the voltage from the hardware monitor, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh](jX)}(h``COMMAND_HWMON_READVOLT``h]j^)}(hj(h]hCOMMAND_HWMON_READVOLT}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj(ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:35: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj(ubjt)}(hhh]j )}(h_query the voltage from the hardware monitor, return status is SVC_STATUS_OK or SVC_STATUS_ERRORh]h_query the voltage from the hardware monitor, return status is SVC_STATUS_OK or SVC_STATUS_ERROR}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1jshj(ubeh}(h]h ]h"]h$]h&]uh1jQhj)hKhj#ubeh}(h]h ]h"]h$]h&]uh1jLhje#ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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](jO)}(hjoh]hstruct}(hjR)hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjN)hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKubj)}(h h]h }(hj`)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN)hhhj_)hKubj")}(hstratix10_svc_client_msgh]j()}(hjL)h]hstratix10_svc_client_msg}(hjr)hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjn)ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjN)hhhj_)hKubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjJ)hhhj_)hKubah}(h]jE)ah ](jjeh"]h$]h&]jj)jhuh1hhj_)hKhjG)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&]uh1jhjG)hhhj_)hKubeh}(h]h ](jstructeh"]h$]h&]j&jj'j)j(j)j)j*j+uh1hhhhj"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](j7)}(h**Definition**h]h Definition}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj)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@jAuh1j)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]j7)}(hj)h]hMembers}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj)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)ubjM)}(hhh](jR)}(h7``payload`` starting address of data need be processed h](jX)}(h ``payload``h]j^)}(hj*h]hpayload}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj)ubjt)}(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&]uh1jshj)ubeh}(h]h ]h"]h$]h&]uh1jQhj*hKhj)ubjR)}(h6``payload_length`` to be processed data size in bytes h](jX)}(h``payload_length``h]j^)}(hj<*h]hpayload_length}(hj>*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj:*ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj6*ubjt)}(hhh]j )}(h"to be processed data size in bytesh]h"to be processed data size in bytes}(hjU*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ*hKhjR*ubah}(h]h ]h"]h$]h&]uh1jshj6*ubeh}(h]h ]h"]h$]h&]uh1jQhjQ*hKhj)ubjR)}(h6``payload_output`` starting address of processed data h](jX)}(h``payload_output``h]j^)}(hju*h]hpayload_output}(hjw*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjs*ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjo*ubjt)}(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&]uh1jshjo*ubeh}(h]h ]h"]h$]h&]uh1jQhj*hKhj)ubjR)}(h7``payload_length_output`` processed data size in bytes h](jX)}(h``payload_length_output``h]j^)}(hj*h]hpayload_length_output}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj*ubjt)}(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&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jQhj*hKhj)ubjR)}(h``command`` service command h](jX)}(h ``command``h]j^)}(hj*h]hcommand}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj*ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj*ubjt)}(hhh]j )}(hservice commandh]hservice command}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jshj*ubeh}(h]h ]h"]h$]h&]uh1jQhj*hKhj)ubjR)}(hI``arg`` args to be passed via registers and not physically mapped buffersh](jX)}(h``arg``h]j^)}(hj +h]harg}(hj"+hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj+ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:38: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj+ubjt)}(hhh]j )}(hAargs to be passed via registers and not physically mapped buffersh]hAargs to be passed via registers and not physically mapped buffers}(hj9+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.hhKhj6+ubah}(h]h ]h"]h$]h&]uh1jshj+ubeh}(h]h ]h"]h$]h&]uh1jQhj5+hKhj)ubeh}(h]h ]h"]h$]h&]uh1jLhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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](jO)}(hjoh]hstruct}(hjz+hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjv+hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:41: ./include/linux/firmware/intel/stratix10-svc-client.hhKubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv+hhhj+hKubj")}(h!stratix10_svc_command_config_typeh]j()}(hjt+h]h!stratix10_svc_command_config_type}(hj+hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj+ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjv+hhhj+hKubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjr+hhhj+hKubah}(h]jm+ah ](jjeh"]h$]h&]jj)jhuh1hhj+hKhjo+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&]uh1jhjo+hhhj+hKubeh}(h]h ](jstructeh"]h$]h&]j&jj'j+j(j+j)j*j+uh1hhhhj"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](j7)}(h**Definition**h]h Definition}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj+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,hKhj ,ubah}(h]h ]h"]h$]h&]uh1jLhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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](jO)}(hjoh]hstruct}(hj,hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj,hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj,hKubj")}(hstratix10_svc_cb_datah]j()}(hj},h]hstratix10_svc_cb_data}(hj,hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj,ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj,hhhj,hKubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj{,hhhj,hKubah}(h]jv,ah ](jjeh"]h$]h&]jj)jhuh1hhj,hKhjx,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&]uh1jhjx,hhhj,hKubeh}(h]h ](jstructeh"]h$]h&]j&jj'j,j(j,j)j*j+uh1hhhhj"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](j7)}(h**Definition**h]h Definition}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj,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; };}hj-sbah}(h]h ]h"]h$]h&]j@jAuh1j)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]j7)}(hj-h]hMembers}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj-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,ubjM)}(hhh](jR)}(h&``status`` the status of sent command h](jX)}(h ``status``h]j^)}(hj2-h]hstatus}(hj4-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj0-ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj,-ubjt)}(hhh]j )}(hthe status of sent commandh]hthe status of sent command}(hjK-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG-hKhjH-ubah}(h]h ]h"]h$]h&]uh1jshj,-ubeh}(h]h ]h"]h$]h&]uh1jQhjG-hKhj)-ubjR)}(h/``kaddr1`` address of 1st completed data block h](jX)}(h ``kaddr1``h]j^)}(hjk-h]hkaddr1}(hjm-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hji-ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhje-ubjt)}(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&]uh1jshje-ubeh}(h]h ]h"]h$]h&]uh1jQhj-hKhj)-ubjR)}(h/``kaddr2`` address of 2nd completed data block h](jX)}(h ``kaddr2``h]j^)}(hj-h]hkaddr2}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj-ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj-ubjt)}(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&]uh1jshj-ubeh}(h]h ]h"]h$]h&]uh1jQhj-hKhj)-ubjR)}(h.``kaddr3`` address of 3rd completed data blockh](jX)}(h ``kaddr3``h]j^)}(hj-h]hkaddr3}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj-ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:44: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj-ubjt)}(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.hhKhj-ubah}(h]h ]h"]h$]h&]uh1jshj-ubeh}(h]h ]h"]h$]h&]uh1jQhj-hKhj)-ubeh}(h]h ]h"]h$]h&]uh1jLhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hstratix10_svc_client (C struct)c.stratix10_svc_clienthNtauh1hhj"hhhNhNubh)}(hhh](h)}(hstratix10_svc_clienth]h)}(hstruct stratix10_svc_clienth](jO)}(hjoh]hstruct}(hj7.hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj3.hhh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKubj)}(h h]h }(hjE.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3.hhhjD.hKubj")}(hstratix10_svc_clienth]j()}(hj1.h]hstratix10_svc_client}(hjW.hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjS.ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj3.hhhjD.hKubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj/.hhhjD.hKubah}(h]j*.ah ](jjeh"]h$]h&]jj)jhuh1hhjD.hKhj,.hhubj)}(hhh]j )}(hservice client structureh]hservice client structure}(hjy.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.hhKhjv.hhubah}(h]h ]h"]h$]h&]uh1jhj,.hhhjD.hKubeh}(h]h ](jstructeh"]h$]h&]j&jj'j.j(j.j)j*j+uh1hhhhj"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](j7)}(h**Definition**h]h Definition}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj.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@jAuh1j)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]j7)}(hj.h]hMembers}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj.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.ubjM)}(hhh](jR)}(h``dev`` the client device h](jX)}(h``dev``h]j^)}(hj.h]hdev}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj.ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj.ubjt)}(hhh]j )}(hthe client deviceh]hthe client device}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.hKhj.ubah}(h]h ]h"]h$]h&]uh1jshj.ubeh}(h]h ]h"]h$]h&]uh1jQhj.hKhj.ubjR)}(hD``receive_cb`` callback to provide service client the received data h](jX)}(h``receive_cb``h]j^)}(hj/h]h receive_cb}(hj!/hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj/ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhj/ubjt)}(hhh]j )}(h4callback to provide service client the received datah]h4callback to provide service client the received data}(hj8/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4/hKhj5/ubah}(h]h ]h"]h$]h&]uh1jshj/ubeh}(h]h ]h"]h$]h&]uh1jQhj4/hKhj.ubjR)}(h``priv`` client private datah](jX)}(h``priv``h]j^)}(hjX/h]hpriv}(hjZ/hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjV/ubah}(h]h ]h"]h$]h&]uh1jWh/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:47: ./include/linux/firmware/intel/stratix10-svc-client.hhKhjR/ubjt)}(hhh]j )}(hclient private datah]hclient private data}(hjq/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.hhKhjn/ubah}(h]h ]h"]h$]h&]uh1jshjR/ubeh}(h]h ]h"]h$]h&]uh1jQhjm/hKhj.ubeh}(h]h ]h"]h$]h&]uh1jLhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1stratix10_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](jO)}(hjoh]hstruct}(hj/hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj/hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhj/hMubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj/hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj/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/hMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhj/hMubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhj/hMubj")}(h$stratix10_svc_request_channel_bynameh]j()}(hj/h]h$stratix10_svc_request_channel_byname}(hj0hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj 0ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj/hhhj/hMubjC)}(h7(struct stratix10_svc_client *client, const char *name)h](jI)}(h#struct stratix10_svc_client *clienth](jO)}(hjoh]hstruct}(hj,0hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj(0ubj)}(h h]h }(hj90hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(0ubh)}(hhh]j()}(hstratix10_svc_clienth]hstratix10_svc_client}(hjJ0hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjG0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjL0modnameN classnameNjj)}j]j/&c.stratix10_svc_request_channel_bynameasbuh1hhj(0ubj)}(h h]h }(hjh0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(0ubj)}(hjh]h*}(hjv0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(0ubj()}(hclienth]hclient}(hj0hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj(0ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj$0ubjI)}(hconst char *nameh](jO)}(hjRh]hconst}(hj0hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hcharh]hchar}(hj0hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj()}(hnameh]hname}(hj0hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj0ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj$0ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj/hhhj/hMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj/hhhj/hMubah}(h]j/ah ](jjeh"]h$]h&]jj)jhuh1hhj/hMhj/hhubj)}(hhh]j )}(hrequest a service channelh]hrequest a 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.chMhj1hhubah}(h]h ]h"]h$]h&]uh1jhj/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j"1j(j"1j)j*j+uh1hhhhj"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]j7)}(hj,1h]h Parameters}(hj.1hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj*1ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj&1ubjM)}(hhh](jR)}(hB``struct stratix10_svc_client *client`` pointer to service client h](jX)}(h'``struct stratix10_svc_client *client``h]j^)}(hjK1h]h#struct stratix10_svc_client *client}(hjM1hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjI1ubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjE1ubjt)}(hhh]j )}(hpointer to service clienth]hpointer to service client}(hjd1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`1hMhja1ubah}(h]h ]h"]h$]h&]uh1jshjE1ubeh}(h]h ]h"]h$]h&]uh1jQhj`1hMhjB1ubjR)}(h)``const char *name`` service client name h](jX)}(h``const char *name``h]j^)}(hj1h]hconst char *name}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj1ubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj~1ubjt)}(hhh]j )}(hservice client nameh]hservice client name}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jshj~1ubeh}(h]h ]h"]h$]h&]uh1jQhj1hMhjB1ubeh}(h]h ]h"]h$]h&]uh1jLhj&1ubj )}(h**Description**h]j7)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj1ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj&1ubj )}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj&1ubj )}(h **Return**h]j7)}(hj1h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj1ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj&1ubj )}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj&1ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+stratix10_svc_add_async_client (C function) c.stratix10_svc_add_async_clienthNtauh1hhj"hhhNhNubh)}(hhh](h)}(h^int stratix10_svc_add_async_client (struct stratix10_svc_chan *chan, bool use_unique_clientid)h]h)}(h]int stratix10_svc_add_async_client(struct stratix10_svc_chan *chan, bool use_unique_clientid)h](h)}(hinth]hint}(hj+2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj'2hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMDubj)}(h h]h }(hj:2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'2hhhj92hMDubj")}(hstratix10_svc_add_async_clienth]j()}(hstratix10_svc_add_async_clienth]hstratix10_svc_add_async_client}(hjL2hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjH2ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj'2hhhj92hMDubjC)}(h;(struct stratix10_svc_chan *chan, bool use_unique_clientid)h](jI)}(hstruct stratix10_svc_chan *chanh](jO)}(hjoh]hstruct}(hjh2hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjd2ubj)}(h h]h }(hju2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj2hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjN2sb c.stratix10_svc_add_async_clientasbuh1hhjd2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd2ubj()}(hchanh]hchan}(hj2hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjd2ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj`2ubjI)}(hbool use_unique_clientidh](h)}(hjy h]hbool}(hj2hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj()}(huse_unique_clientidh]huse_unique_clientid}(hj2hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj2ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj`2ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj'2hhhj92hMDubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj#2hhhj92hMDubah}(h]j2ah ](jjeh"]h$]h&]jj)jhuh1hhj92hMDhj 2hhubj)}(hhh]j )}(hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jshj=ubeh}(h]h ]h"]h$]h&]uh1jQhj>hMhj=ubeh}(h]h ]h"]h$]h&]uh1jLhj=ubj )}(h**Description**h]j7)}(hj(>h]h Description}(hj*>hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj&>ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj=ubj )}(hX_This function completes an asynchronous transaction identified by the given transaction handle. It ensures that the necessary structures are initialized and valid before proceeding with the completion operation. The function deallocates the transaction ID, frees the memory allocated for the handler, and removes the handler from the transaction list.h]hX_This function completes an asynchronous transaction identified by the given transaction handle. It ensures that the necessary structures are initialized and valid before proceeding with the completion operation. The function deallocates the transaction ID, frees the memory allocated for the handler, and removes the handler from the transaction list.}(hj>>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj=ubj )}(h **Return**h]j7)}(hjO>h]hReturn}(hjQ>hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjM>ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj=ubj )}(hb0 on success, -EINVAL if any input parameter is invalid, or other negative error codes on failure.h]hb0 on success, -EINVAL if any input parameter is invalid, or other negative error codes on failure.}(hje>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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}(hj>hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj>hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>hhhj>hMubj")}(hstratix10_svc_free_channelh]j()}(hstratix10_svc_free_channelh]hstratix10_svc_free_channel}(hj>hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj>ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj>hhhj>hMubjC)}(h!(struct stratix10_svc_chan *chan)h]jI)}(hstruct stratix10_svc_chan *chanh](jO)}(hjoh]hstruct}(hj>hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hj>hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.stratix10_svc_free_channelasbuh1hhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj()}(hchanh]hchan}(hj*?hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj>ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj>ubah}(h]h ]h"]h$]h&]j@jAuh1jBhj>hhhj>hMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj>hhhj>hMubah}(h]j>ah ](jjeh"]h$]h&]jj)jhuh1hhj>hMhj>hhubj)}(hhh]j )}(hfree service channelh]hfree service channel}(hjT?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjQ?hhubah}(h]h ]h"]h$]h&]uh1jhj>hhhj>hMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jl?j(jl?j)j*j+uh1hhhhj"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]j7)}(hjv?h]h Parameters}(hjx?hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjt?ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjp?ubjM)}(hhh]jR)}(h@``struct stratix10_svc_chan *chan`` service channel to be freed h](jX)}(h#``struct stratix10_svc_chan *chan``h]j^)}(hj?h]hstruct stratix10_svc_chan *chan}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj?ubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj?ubjt)}(hhh]j )}(hservice channel to be freedh]hservice channel to be freed}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jshj?ubeh}(h]h ]h"]h$]h&]uh1jQhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jLhjp?ubj )}(h**Description**h]j7)}(hj?h]h Description}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj?ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjp?ubj )}(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.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjp?ubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hstratix10_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}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj@hhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMubj)}(h h]h }(hj$@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj#@hMubj")}(hstratix10_svc_sendh]j()}(hstratix10_svc_sendh]hstratix10_svc_send}(hj6@hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj2@ubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj@hhhj#@hMubjC)}(h,(struct stratix10_svc_chan *chan, void *msg)h](jI)}(hstruct stratix10_svc_chan *chanh](jO)}(hjoh]hstruct}(hjR@hhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjN@ubj)}(h h]h }(hj_@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hjp@hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjm@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjr@modnameN classnameNjj)}j]j)}jj8@sbc.stratix10_svc_sendasbuh1hhjN@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN@ubj()}(hchanh]hchan}(hj@hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjN@ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjJ@ubjI)}(h void *msgh](h)}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj()}(hmsgh]hmsg}(hj@hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj@ubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjJ@ubeh}(h]h ]h"]h$]h&]j@jAuh1jBhj@hhhj#@hMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj @hhhj#@hMubah}(h]j@ah ](jjeh"]h$]h&]jj)jhuh1hhj#@hMhj @hhubj)}(hhh]j )}(h!send a message data to the remoteh]h!send a message data to the remote}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjAhhubah}(h]h ]h"]h$]h&]uh1jhj @hhhj#@hMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j/Aj(j/Aj)j*j+uh1hhhhj"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]j7)}(hj9Ah]h Parameters}(hj;AhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hj7Aubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3AubjM)}(hhh](jR)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jX)}(h#``struct stratix10_svc_chan *chan``h]j^)}(hjXAh]hstruct stratix10_svc_chan *chan}(hjZAhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjVAubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjRAubjt)}(hhh]j )}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hjqAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmAhMhjnAubah}(h]h ]h"]h$]h&]uh1jshjRAubeh}(h]h ]h"]h$]h&]uh1jQhjmAhMhjOAubjR)}(hZ``void *msg`` message data to be sent, in the format of "struct stratix10_svc_client_msg" h](jX)}(h ``void *msg``h]j^)}(hjAh]h void *msg}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjAubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjAubjt)}(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”}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjAubah}(h]h ]h"]h$]h&]uh1jshjAubeh}(h]h ]h"]h$]h&]uh1jQhjAhMhjOAubeh}(h]h ]h"]h$]h&]uh1jLhj3Aubj )}(h**Description**h]j7)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjAubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3Aubj )}(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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3Aubj )}(h **Return**h]j7)}(hjAh]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjAubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3Aubj )}(h,0 for success, -ENOMEM or -ENOBUFS on error.h]h,0 for success, -ENOMEM or -ENOBUFS on error.}(hj BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj3Aubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hstratix10_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}(hj9BhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj5Bhhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM ubj)}(h h]h }(hjHBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5BhhhjGBhM ubj")}(hstratix10_svc_doneh]j()}(hstratix10_svc_doneh]hstratix10_svc_done}(hjZBhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjVBubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hj5BhhhjGBhM ubjC)}(h!(struct stratix10_svc_chan *chan)h]jI)}(hstruct stratix10_svc_chan *chanh](jO)}(hjoh]hstruct}(hjvBhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhjrBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrBubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hjBhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jj\Bsbc.stratix10_svc_doneasbuh1hhjrBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrBubj()}(hchanh]hchan}(hjBhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjrBubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjnBubah}(h]h ]h"]h$]h&]j@jAuh1jBhj5BhhhjGBhM ubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhj1BhhhjGBhM ubah}(h]j,Bah ](jjeh"]h$]h&]jj)jhuh1hhjGBhM hj.Bhhubj)}(hhh]j )}(h%complete service request transactionsh]h%complete service request transactions}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hjBhhubah}(h]h ]h"]h$]h&]uh1jhj.BhhhjGBhM ubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jCj(jCj)j*j+uh1hhhhj"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]j7)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjCubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hjCubjM)}(hhh]jR)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jX)}(h#``struct stratix10_svc_chan *chan``h]j^)}(hj:Ch]hstruct stratix10_svc_chan *chan}(hjDc.stratix10_svc_allocate_memoryasbuh1hhjrDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrDubj()}(hsizeh]hsize}(hjDhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjrDubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhjCubeh}(h]h ]h"]h$]h&]j@jAuh1jBhjChhhjChMubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjChhhjChMubah}(h]jCah ](jjeh"]h$]h&]jj)jhuh1hhjChMhjChhubj)}(hhh]j )}(hallocate memoryh]hallocate memory}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjDhhubah}(h]h ]h"]h$]h&]uh1jhjChhhjChMubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'jDj(jDj)j*j+uh1hhhhj"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]j7)}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjDubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM!hjDubjM)}(hhh](jR)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jX)}(h#``struct stratix10_svc_chan *chan``h]j^)}(hjEh]hstruct stratix10_svc_chan *chan}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjEubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhj Eubjt)}(hhh]j )}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hj)EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%EhMhj&Eubah}(h]h ]h"]h$]h&]uh1jshj Eubeh}(h]h ]h"]h$]h&]uh1jQhj%EhMhjEubjR)}(hC``size_t size`` memory size requested by a specific service client h](jX)}(h``size_t size``h]j^)}(hjIEh]h size_t size}(hjKEhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjGEubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMhjCEubjt)}(hhh]j )}(h2memory size requested by a specific service clienth]h2memory size requested by a specific service client}(hjbEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^EhMhj_Eubah}(h]h ]h"]h$]h&]uh1jshjCEubeh}(h]h ]h"]h$]h&]uh1jQhj^EhMhjEubeh}(h]h ]h"]h$]h&]uh1jLhjDubj )}(h**Description**h]j7)}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjEubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM!hjDubj )}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM hjDubj )}(h **Return**h]j7)}(hjEh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjEubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM#hjDubj )}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chM$hjDubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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}(hjEhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjEhhhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMGubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEhhhjEhMGubj")}(hstratix10_svc_free_memoryh]j()}(hstratix10_svc_free_memoryh]hstratix10_svc_free_memory}(hjFhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj Fubah}(h]h ](j;j<eh"]h$]h&]j@jAuh1j!hjEhhhjEhMGubjC)}(h.(struct stratix10_svc_chan *chan, void *kaddr)h](jI)}(hstruct stratix10_svc_chan *chanh](jO)}(hjoh]hstruct}(hj-FhhhNhNubah}(h]h ]j[ah"]h$]h&]uh1jNhj)Fubj)}(h h]h }(hj:FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Fubh)}(hhh]j()}(hstratix10_svc_chanh]hstratix10_svc_chan}(hjKFhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjHFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMFmodnameN classnameNjj)}j]j)}jjFsbc.stratix10_svc_free_memoryasbuh1hhj)Fubj)}(h h]h }(hjkFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Fubj)}(hjh]h*}(hjyFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)Fubj()}(hchanh]hchan}(hjFhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hj)Fubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj%FubjI)}(h void *kaddrh](h)}(hvoidh]hvoid}(hjFhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj()}(hkaddrh]hkaddr}(hjFhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j'hjFubeh}(h]h ]h"]h$]h&]noemphj@jAuh1jHhj%Fubeh}(h]h ]h"]h$]h&]j@jAuh1jBhjEhhhjEhMGubeh}(h]h ]h"]h$]h&]j@jAjuh1hjjhjEhhhjEhMGubah}(h]jEah ](jjeh"]h$]h&]jj)jhuh1hhjEhMGhjEhhubj)}(hhh]j )}(hfree allocated memoryh]hfree allocated memory}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMGhjFhhubah}(h]h ]h"]h$]h&]uh1jhjEhhhjEhMGubeh}(h]h ](jfunctioneh"]h$]h&]j&jj'j Gj(j Gj)j*j+uh1hhhhj"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]j7)}(hjGh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjGubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMKhjGubjM)}(hhh](jR)}(hK``struct stratix10_svc_chan *chan`` service channel assigned to the client h](jX)}(h#``struct stratix10_svc_chan *chan``h]j^)}(hj3Gh]hstruct stratix10_svc_chan *chan}(hj5GhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hj1Gubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMHhj-Gubjt)}(hhh]j )}(h&service channel assigned to the clienth]h&service channel assigned to the client}(hjLGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHGhMHhjIGubah}(h]h ]h"]h$]h&]uh1jshj-Gubeh}(h]h ]h"]h$]h&]uh1jQhjHGhMHhj*GubjR)}(h#``void *kaddr`` memory to be freed h](jX)}(h``void *kaddr``h]j^)}(hjlGh]h void *kaddr}(hjnGhhhNhNubah}(h]h ]h"]h$]h&]uh1j]hjjGubah}(h]h ]h"]h$]h&]uh1jWhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMIhjfGubjt)}(hhh]j )}(hmemory to be freedh]hmemory to be freed}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGhMIhjGubah}(h]h ]h"]h$]h&]uh1jshjfGubeh}(h]h ]h"]h$]h&]uh1jQhjGhMIhj*Gubeh}(h]h ]h"]h$]h&]uh1jLhjGubj )}(h**Description**h]j7)}(hjGh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1j6hjGubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMKhjGubj )}(hBThis function is used by service client to free allocated buffers.h]hBThis function is used by service client to free allocated buffers.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/driver-api/firmware/other_interfaces:50: ./drivers/firmware/stratix10-svc.chMJhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1j,hj"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_handlerjHerror_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}(jGjGjjjjj"j"jGjGu nametypes}(jGjjj"jGuh}(jGhjhhhjjjjjpjujjjj jo jGjLjyj~j"j'j,j1jjjj j&j+j5j:jjjjjjj"jjjjw!j|!jGj"j"j"jE)jJ)jm+jr+jv,j{,j*.j/.j/j/j2j#2jH4jM4j5j5j9j9jd<ji<j>j>j@j @j,Bj1BjCjCjEjEu 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.