Gsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget4/translations/zh_CN/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/zh_TW/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/it_IT/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ja_JP/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/ko_KR/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/sp_SP/sound/kernel-api/alsa-driver-apimodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hThe ALSA Driver APIh]hThe ALSA Driver API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhN/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api.rsthKubh)}(hhh](h)}(hManagement of Cards and Devicesh]hManagement of Cards and Devices}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hCard Managementh]hCard Management}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlesnd_device_alloc (C function)c.snd_device_allochNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hCint snd_device_alloc (struct device **dev_p, struct snd_card *card)h]hdesc_signature_line)}(hBint snd_device_alloc(struct device **dev_p, struct snd_card *card)h](hdesc_sig_keyword_type)}(hinth]hint}(hhhhhNhNubah}(h]h ]ktah"]h$]h&]uh1hhhhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hhhhhj hKubh desc_name)}(hsnd_device_alloch]h desc_sig_name)}(hsnd_device_alloch]hsnd_device_alloc}(hj&hhhNhNubah}(h]h ]nah"]h$]h&]uh1j$hj ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1jhhhhhj hKubhdesc_parameterlist)}(h.(struct device **dev_p, struct snd_card *card)h](hdesc_parameter)}(hstruct device **dev_ph](hdesc_sig_keyword)}(hstructh]hstruct}(hjMhhhNhNubah}(h]h ]kah"]h$]h&]uh1jKhjGubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hdeviceh]hdevice}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjomodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj(sbc.snd_device_allocasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hdev_ph]hdev_p}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubjF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_device_allocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubeh}(h]h ]h"]h$]h&]j=j>uh1j?hhhhhj hKubeh}(h]h ]h"]h$]h&]j=j> add_permalinkuh1hsphinx_line_type declaratorhhhhhj hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj hKhhhhubh desc_content)}(hhh]h paragraph)}(h7Allocate and initialize struct device for sound devicesh]h7Allocate and initialize struct device for sound devices}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKyhjchhubah}(h]h ]h"]h$]h&]uh1jahhhhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Parameters** ``struct device **dev_p`` pointer to store the allocated device ``struct snd_card *card`` card to assign, optional **Description** For releasing the allocated device, call put_device().h](jg)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chK}hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h@``struct device **dev_p`` pointer to store the allocated device h](hterm)}(h``struct device **dev_p``h]hliteral)}(hjh]hstruct device **dev_p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKzhjubh definition)}(hhh]jg)}(h%pointer to store the allocated deviceh]h%pointer to store the allocated device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKzhjubj)}(h3``struct snd_card *card`` card to assign, optional h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chK{hjubj)}(hhh]jg)}(hcard to assign, optionalh]hcard to assign, optional}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hK{hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK{hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj1h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chK}hjubjg)}(h6For releasing the allocated device, call put_device().h]h6For releasing the allocated device, call put_device().}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chK}hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_new (C function)c.snd_card_newhNtauh1hhhhhhNhNubh)}(hhh](h)}(hint snd_card_new (struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h]h)}(hint snd_card_new(struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h](h)}(hinth]hint}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjhKubj)}(h snd_card_newh]j%)}(h snd_card_newh]h snd_card_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrhhhjhKubj@)}(ht(struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h](jF)}(hstruct device *parenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparenth]hparent}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint idxh](h)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj%)}(hidxh]hidx}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *xidh](jL)}(hconsth]hconst}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hcharh]hchar}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hxidh]hxid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct module *moduleh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hmoduleh]hmodule}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_card_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmoduleh]hmodule}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint extra_sizeh](h)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj%)}(h extra_sizeh]h extra_size}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_card **card_reth](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]jc.snd_card_newasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hcard_reth]hcard_ret}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjrhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnhhhjhKubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjkhhubjb)}(hhh]jg)}(h+create and initialize a soundcard structureh]h+create and initialize a soundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct device *parent`` the parent device object ``int idx`` card index (address) [0 ... (SNDRV_CARDS-1)] ``const char *xid`` card identification (ASCII string) ``struct module *module`` top level module for locking ``int extra_size`` allocate this extra size after the main soundcard structure ``struct snd_card **card_ret`` the pointer to store the created card instance The function allocates snd_card instance via kzalloc with the given space for the driver to use freely. The allocated struct is stored in the given card_ret pointer. **Return** Zero if successful or a negative error code.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubj)}(hhh](j)}(h3``struct device *parent`` the parent device object h](j)}(h``struct device *parent``h]j)}(hj,h]hstruct device *parent}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj&ubj)}(hhh]jg)}(hthe parent device objecth]hthe parent device object}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhj#ubj)}(h9``int idx`` card index (address) [0 ... (SNDRV_CARDS-1)] h](j)}(h ``int idx``h]j)}(hjeh]hint idx}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj_ubj)}(hhh]jg)}(h,card index (address) [0 ... (SNDRV_CARDS-1)]h]h,card index (address) [0 ... (SNDRV_CARDS-1)]}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhKhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhKhj#ubj)}(h7``const char *xid`` card identification (ASCII string) h](j)}(h``const char *xid``h]j)}(hjh]hconst char *xid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubj)}(hhh]jg)}(h"card identification (ASCII string)h]h"card identification (ASCII string)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj#ubj)}(h7``struct module *module`` top level module for locking h](j)}(h``struct module *module``h]j)}(hjh]hstruct module *module}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubj)}(hhh]jg)}(htop level module for lockingh]htop level module for locking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj#ubj)}(hO``int extra_size`` allocate this extra size after the main soundcard structure h](j)}(h``int extra_size``h]j)}(hjh]hint extra_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h;allocate this extra size after the main soundcard structureh]h;allocate this extra size after the main soundcard structure}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hKhj#ubj)}(h``struct snd_card **card_ret`` the pointer to store the created card instance The function allocates snd_card instance via kzalloc with the given space for the driver to use freely. The allocated struct is stored in the given card_ret pointer. h](j)}(h``struct snd_card **card_ret``h]j)}(hjIh]hstruct snd_card **card_ret}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjCubj)}(hhh](jg)}(h.the pointer to store the created card instanceh]h.the pointer to store the created card instance}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj_ubjg)}(hThe function allocates snd_card instance via kzalloc with the given space for the driver to use freely. The allocated struct is stored in the given card_ret pointer.h]hThe function allocates snd_card instance via kzalloc with the given space for the driver to use freely. The allocated struct is stored in the given card_ret pointer.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj_ubeh}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKhj#ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubjg)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_devm_card_new (C function)c.snd_devm_card_newhNtauh1hhhhhhNhNubh)}(hhh](h)}(hint snd_devm_card_new (struct device *parent, int idx, const char *xid, struct module *module, size_t extra_size, struct snd_card **card_ret)h]h)}(hint snd_devm_card_new(struct device *parent, int idx, const char *xid, struct module *module, size_t extra_size, struct snd_card **card_ret)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_devm_card_newh]j%)}(hsnd_devm_card_newh]hsnd_devm_card_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(hw(struct device *parent, int idx, const char *xid, struct module *module, size_t extra_size, struct snd_card **card_ret)h](jF)}(hstruct device *parenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjsbc.snd_devm_card_newasbuh1hhjubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparenth]hparent}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint idxh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hidxh]hidx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *xidh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hxidh]hxid}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct module *moduleh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj' hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hmoduleh]hmodule}(hj8 hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5 ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj: modnameN classnameNjj)}j]jPc.snd_devm_card_newasbuh1hhj ubj)}(h h]h }(hjV hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hmoduleh]hmodule}(hjq hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsize_t extra_sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jPc.snd_devm_card_newasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(h extra_sizeh]h extra_size}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_card **card_reth](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jPc.snd_devm_card_newasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj) hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hcard_reth]hcard_ret}(hj6 hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h managed snd_card object creationh]h managed snd_card object creation}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj] hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjx jjx jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct device *parent`` the parent device object ``int idx`` card index (address) [0 ... (SNDRV_CARDS-1)] ``const char *xid`` card identification (ASCII string) ``struct module *module`` top level module for locking ``size_t extra_size`` allocate this extra size after the main soundcard structure ``struct snd_card **card_ret`` the pointer to store the created card instance **Description** This function works like snd_card_new() but manages the allocated resource via devres, i.e. you don't need to free explicitly. When a snd_card object is created with this function and registered via snd_card_register(), the very first devres action to call snd_card_free() is added automatically. In that way, the resource disconnection is assured at first, then released in the expected order. If an error happens at the probe before snd_card_register() is called and there have been other devres resources, you'd need to free the card manually via snd_card_free() call in the error; otherwise it may lead to UAF due to devres call orders. You can use snd_card_free_on_error() helper for handling it more easily. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubj)}(hhh](j)}(h3``struct device *parent`` the parent device object h](j)}(h``struct device *parent``h]j)}(hj h]hstruct device *parent}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(hthe parent device objecth]hthe parent device object}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h9``int idx`` card index (address) [0 ... (SNDRV_CARDS-1)] h](j)}(h ``int idx``h]j)}(hj h]hint idx}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h,card index (address) [0 ... (SNDRV_CARDS-1)]h]h,card index (address) [0 ... (SNDRV_CARDS-1)]}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h7``const char *xid`` card identification (ASCII string) h](j)}(h``const char *xid``h]j)}(hj h]hconst char *xid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h"card identification (ASCII string)h]h"card identification (ASCII string)}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj( hKhj) ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj( hKhj ubj)}(h7``struct module *module`` top level module for locking h](j)}(h``struct module *module``h]j)}(hjL h]hstruct module *module}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjF ubj)}(hhh]jg)}(htop level module for lockingh]htop level module for locking}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhja hKhjb ubah}(h]h ]h"]h$]h&]uh1jhjF ubeh}(h]h ]h"]h$]h&]uh1jhja hKhj ubj)}(hR``size_t extra_size`` allocate this extra size after the main soundcard structure h](j)}(h``size_t extra_size``h]j)}(hj h]hsize_t extra_size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h;allocate this extra size after the main soundcard structureh]h;allocate this extra size after the main soundcard structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hN``struct snd_card **card_ret`` the pointer to store the created card instance h](j)}(h``struct snd_card **card_ret``h]j)}(hj h]hstruct snd_card **card_ret}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h.the pointer to store the created card instanceh]h.the pointer to store the created card instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj| ubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubjg)}(h~This function works like snd_card_new() but manages the allocated resource via devres, i.e. you don't need to free explicitly.h]hThis function works like snd_card_new() but manages the allocated resource via devres, i.e. you don’t need to free explicitly.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubjg)}(hX When a snd_card object is created with this function and registered via snd_card_register(), the very first devres action to call snd_card_free() is added automatically. In that way, the resource disconnection is assured at first, then released in the expected order.h]hX When a snd_card object is created with this function and registered via snd_card_register(), the very first devres action to call snd_card_free() is added automatically. In that way, the resource disconnection is assured at first, then released in the expected order.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubjg)}(hX?If an error happens at the probe before snd_card_register() is called and there have been other devres resources, you'd need to free the card manually via snd_card_free() call in the error; otherwise it may lead to UAF due to devres call orders. You can use snd_card_free_on_error() helper for handling it more easily.h]hXAIf an error happens at the probe before snd_card_register() is called and there have been other devres resources, you’d need to free the card manually via snd_card_free() call in the error; otherwise it may lead to UAF due to devres call orders. You can use snd_card_free_on_error() helper for handling it more easily.}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubjg)}(h **Return**h]j)}(hj> h]hReturn}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj< ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj| ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_card_free_on_error (C function)c.snd_card_free_on_errorhNtauh1hhhhhhNhNubh)}(hhh](h)}(h8int snd_card_free_on_error (struct device *dev, int ret)h]h)}(h7int snd_card_free_on_error(struct device *dev, int ret)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubj)}(hsnd_card_free_on_errorh]j%)}(hsnd_card_free_on_errorh]hsnd_card_free_on_error}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hMubj@)}(h(struct device *dev, int ret)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_card_free_on_errorasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hdevh]hdev}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hint reth](h)}(hinth]hint}(hj2 hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj. ubj)}(h h]h }(hj@ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj. ubj%)}(hreth]hret}(hjN hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj. ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{ hhhj hMubah}(h]jv ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjx hhubjb)}(hhh]jg)}(h-a small helper for handling devm probe errorsh]h-a small helper for handling devm probe errors}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhju hhubah}(h]h ]h"]h$]h&]uh1jahjx hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(hXz**Parameters** ``struct device *dev`` the managed device object ``int ret`` the return code from the probe callback **Description** This function handles the explicit snd_card_free() call at the error from the probe callback. It's just a small helper for simplifying the error handling with the managed devices. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubj)}(hhh](j)}(h1``struct device *dev`` the managed device object h](j)}(h``struct device *dev``h]j)}(hj h]hstruct device *dev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(hthe managed device objecth]hthe managed device object}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h4``int ret`` the return code from the probe callback h](j)}(h ``int ret``h]j)}(hj h]hint ret}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj)}(hhh]jg)}(h'the return code from the probe callbackh]h'the return code from the probe callback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj-h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubjg)}(hThis function handles the explicit snd_card_free() call at the error from the probe callback. It's just a small helper for simplifying the error handling with the managed devices.h]hThis function handles the explicit snd_card_free() call at the error from the probe callback. It’s just a small helper for simplifying the error handling with the managed devices.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubjg)}(h **Return**h]j)}(hjTh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_ref (C function)c.snd_card_refhNtauh1hhhhhhNhNubh)}(hhh](h)}(h(struct snd_card * snd_card_ref (int idx)h]h)}(h&struct snd_card *snd_card_ref(int idx)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j snd_card_refsbc.snd_card_refasbuh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h snd_card_refh]j%)}(hjh]h snd_card_ref}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h (int idx)h]jF)}(hint idxh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hidxh]hidx}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h"Get the card object from the indexh]h"Get the card object from the index}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMxhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhhhNhNubj)}(h**Parameters** ``int idx`` the card index **Description** Returns a card object corresponding to the given index or NULL if not found. Release the object via snd_card_unref(). **Return** a card object or NULLh](jg)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM|hjuubj)}(hhh]j)}(h``int idx`` the card index h](j)}(h ``int idx``h]j)}(hjh]hint idx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMyhjubj)}(hhh]jg)}(hthe card indexh]hthe card index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM{hjuubjg)}(huReturns a card object corresponding to the given index or NULL if not found. Release the object via snd_card_unref().h]huReturns a card object corresponding to the given index or NULL if not found. Release the object via snd_card_unref().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM{hjuubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM~hjuubjg)}(ha card object or NULLh]ha card object or NULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM~hjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_card_disconnect (C function)c.snd_card_disconnecthNtauh1hhhhhhNhNubh)}(hhh](h)}(h0void snd_card_disconnect (struct snd_card *card)h]h)}(h/void snd_card_disconnect(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=hhhjOhMubj)}(hsnd_card_disconnecth]j%)}(hsnd_card_disconnecth]hsnd_card_disconnect}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj=hhhjOhMubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjdsbc.snd_card_disconnectasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubah}(h]h ]h"]h$]h&]j=j>uh1j?hj=hhhjOhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhjOhMubah}(h]j4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhMhj6hhubjb)}(hhh]jg)}(h9disconnect all APIs from the file-operations (user space)h]h9disconnect all APIs from the file-operations (user space)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj6hhhjOhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hXC**Parameters** ``struct snd_card *card`` soundcard structure Disconnects all APIs from the file-operations (user space). **Return** Zero, otherwise a negative error code. **Note** The current implementation replaces all active file->f_op with special dummy file operations (they do nothing except release).h](jg)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hhh]j)}(hk``struct snd_card *card`` soundcard structure Disconnects all APIs from the file-operations (user space). h](j)}(h``struct snd_card *card``h]j)}(hjBh]hstruct snd_card *card}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj<ubj)}(hhh](jg)}(hsoundcard structureh]hsoundcard structure}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjXubjg)}(h;Disconnects all APIs from the file-operations (user space).h]h;Disconnects all APIs from the file-operations (user space).}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhMhjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMhj9ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubjg)}(h&Zero, otherwise a negative error code.h]h&Zero, otherwise a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubjg)}(h**Note**h]j)}(hjh]hNote}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hhh]j)}(h~The current implementation replaces all active file->f_op with special dummy file operations (they do nothing except release).h](j)}(hFThe current implementation replaces all active file->f_op with specialh]hFThe current implementation replaces all active file->f_op with special}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hhh]jg)}(h7dummy file operations (they do nothing except release).h]h7dummy file operations (they do nothing except release).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_card_disconnect_sync (C function)c.snd_card_disconnect_synchNtauh1hhhhhhNhNubh)}(hhh](h)}(h5void snd_card_disconnect_sync (struct snd_card *card)h]h)}(h4void snd_card_disconnect_sync(struct snd_card *card)h](h)}(hvoidh]hvoid}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM9ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hM9ubj)}(hsnd_card_disconnect_synch]j%)}(hsnd_card_disconnect_synch]hsnd_card_disconnect_sync}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hM9ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_card_disconnect_syncasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hM9ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hM9hjhhubjb)}(hhh]jg)}(h/disconnect card and wait until files get closedh]h/disconnect card and wait until files get closed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM1hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj1hM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX@**Parameters** ``struct snd_card *card`` card object to disconnect **Description** This calls snd_card_disconnect() for disconnecting all belonging components and waits until all pending files get closed. It assures that all accesses from user-space finished so that the driver can release its resources gracefully.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM5hjubj)}(hhh]j)}(h4``struct snd_card *card`` card object to disconnect h](j)}(h``struct snd_card *card``h]j)}(hj$h]hstruct snd_card *card}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM2hjubj)}(hhh]jg)}(hcard object to disconnecth]hcard object to disconnect}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hM2hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hM2hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj_h]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM4hjubjg)}(hThis calls snd_card_disconnect() for disconnecting all belonging components and waits until all pending files get closed. It assures that all accesses from user-space finished so that the driver can release its resources gracefully.h]hThis calls snd_card_disconnect() for disconnecting all belonging components and waits until all pending files get closed. It assures that all accesses from user-space finished so that the driver can release its resources gracefully.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM4hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_card_free_when_closed (C function)c.snd_card_free_when_closedhNtauh1hhhhhhNhNubh)}(hhh](h)}(h6void snd_card_free_when_closed (struct snd_card *card)h]h)}(h5void snd_card_free_when_closed(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMdubj)}(hsnd_card_free_when_closedh]j%)}(hsnd_card_free_when_closedh]hsnd_card_free_when_closed}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMdubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_free_when_closedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMdubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMdubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMdhjhhubjb)}(hhh]jg)}(h-Disconnect the card, free it later eventuallyh]h-Disconnect the card, free it later eventually}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMZhjahhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|jj|jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure **Description** Unlike snd_card_free(), this function doesn't try to release the card resource immediately, but tries to disconnect at first. When the card is still in use, the function returns before freeing the resources. The card resources will be freed when the refcount gets to zero. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM^hjubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM[hjubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM]hjubjg)}(hXUnlike snd_card_free(), this function doesn't try to release the card resource immediately, but tries to disconnect at first. When the card is still in use, the function returns before freeing the resources. The card resources will be freed when the refcount gets to zero.h]hXUnlike snd_card_free(), this function doesn’t try to release the card resource immediately, but tries to disconnect at first. When the card is still in use, the function returns before freeing the resources. The card resources will be freed when the refcount gets to zero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM]hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMbhjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.c.hMbhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_free (C function)c.snd_card_freehNtauh1hhhhhhNhNubh)}(hhh](h)}(h*void snd_card_free (struct snd_card *card)h]h)}(h)void snd_card_free(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM|ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhM|ubj)}(h snd_card_freeh]j%)}(h snd_card_freeh]h snd_card_free}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhM|ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjosbc.snd_card_freeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjZhM|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjZhM|ubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhM|hjAhhubjb)}(hhh]jg)}(hfrees given soundcard structureh]hfrees given soundcard structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMphj hhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure **Description** This function releases the soundcard structure and the all assigned devices automatically. That is, you don't have to release the devices by yourself. This function waits until the all resources are properly released. **Return** Zero. Frees all associated devices and frees the control interface associated to given soundcard.h](jg)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMthj(ubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjMh]hstruct snd_card *card}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMqhjGubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMqhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMqhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMshj(ubjg)}(hThis function releases the soundcard structure and the all assigned devices automatically. That is, you don't have to release the devices by yourself.h]hThis function releases the soundcard structure and the all assigned devices automatically. That is, you don’t have to release the devices by yourself.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMshj(ubjg)}(hBThis function waits until the all resources are properly released.h]hBThis function waits until the all resources are properly released.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMwhj(ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMyhj(ubjg)}(haZero. Frees all associated devices and frees the control interface associated to given soundcard.h]haZero. Frees all associated devices and frees the control interface associated to given soundcard.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMyhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_set_id (C function)c.snd_card_set_idhNtauh1hhhhhhNhNubh)}(hhh](h)}(h=void snd_card_set_id (struct snd_card *card, const char *nid)h]h)}(huh1jhjhhhjhMubj@)}(h((struct snd_card *card, const char *nid)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj&sbc.snd_card_set_idasbuh1hhj<ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hconst char *nidh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnidh]hnid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hset card identification nameh]hset card identification name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct snd_card *card`` soundcard structure ``const char *nid`` new identification string This function sets the card identification and checks for name collisions.h](jg)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj<ubj)}(hhh](j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjah]hstruct snd_card *card}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj[ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjXubj)}(hy``const char *nid`` new identification string This function sets the card identification and checks for name collisions.h](j)}(h``const char *nid``h]j)}(hjh]hconst char *nid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hhh](jg)}(hnew identification stringh]hnew identification string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubjg)}(hJThis function sets the card identification and checks for name collisions.h]hJThis function sets the card identification and checks for name collisions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_card_add_dev_attr (C function)c.snd_card_add_dev_attrhNtauh1hhhhhhNhNubh)}(hhh](h)}(hVint snd_card_add_dev_attr (struct snd_card *card, const struct attribute_group *group)h]h)}(hUint snd_card_add_dev_attr(struct snd_card *card, const struct attribute_group *group)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMFubj)}(hsnd_card_add_dev_attrh]j%)}(hsnd_card_add_dev_attrh]hsnd_card_add_dev_attr}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMFubj@)}(h<(struct snd_card *card, const struct attribute_group *group)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj%sbc.snd_card_add_dev_attrasbuh1hhj;ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(h#const struct attribute_group *grouph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hattribute_grouph]hattribute_group}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jyc.snd_card_add_dev_attrasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hgrouph]hgroup}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMFubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMFubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMFhjhhubjb)}(hhh]jg)}(h*Append a new sysfs attribute group to cardh]h*Append a new sysfs attribute group to card}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM@hjJhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMFubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct snd_card *card`` card instance ``const struct attribute_group *group`` attribute group to append **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMDhjiubj)}(hhh](j)}(h(``struct snd_card *card`` card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMAhjubj)}(hhh]jg)}(h card instanceh]h card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMAhjubj)}(hB``const struct attribute_group *group`` attribute group to append h](j)}(h'``const struct attribute_group *group``h]j)}(hjh]h#const struct attribute_group *group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMBhjubj)}(hhh]jg)}(hattribute group to appendh]hattribute group to append}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMBhjubeh}(h]h ]h"]h$]h&]uh1jhjiubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMDhjiubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMDhjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_register (C function)c.snd_card_registerhNtauh1hhhhhhNhNubh)}(hhh](h)}(h-int snd_card_register (struct snd_card *card)h]h)}(h,int snd_card_register(struct snd_card *card)h](h)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjChhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjUhMhubj)}(hsnd_card_registerh]j%)}(hsnd_card_registerh]hsnd_card_register}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjUhMhubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsbc.snd_card_registerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjUhMhubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjUhMhubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhMhhj<hhubjb)}(hhh]jg)}(hregister the soundcardh]hregister the soundcard}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM^hjhhubah}(h]h ]h"]h$]h&]uh1jahj<hhhjUhMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure This function registers all the devices assigned to the soundcard. Until calling this, the ALSA control interface is blocked from the external accesses. Thus, you should call this function at the end of the initialization of the card. **Return** Zero otherwise a negative error code if the registration failed.h](jg)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMbhj#ubj)}(hhh]j)}(hX``struct snd_card *card`` soundcard structure This function registers all the devices assigned to the soundcard. Until calling this, the ALSA control interface is blocked from the external accesses. Thus, you should call this function at the end of the initialization of the card. h](j)}(h``struct snd_card *card``h]j)}(hjHh]hstruct snd_card *card}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdhjBubj)}(hhh](jg)}(hsoundcard structureh]hsoundcard structure}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM_hj^ubjg)}(hThis function registers all the devices assigned to the soundcard. Until calling this, the ALSA control interface is blocked from the external accesses. Thus, you should call this function at the end of the initialization of the card.h]hThis function registers all the devices assigned to the soundcard. Until calling this, the ALSA control interface is blocked from the external accesses. Thus, you should call this function at the end of the initialization of the card.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMahj^ubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMdhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMfhj#ubjg)}(h@Zero otherwise a negative error code if the registration failed.h]h@Zero otherwise a negative error code if the registration failed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMfhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_component_add (C function)c.snd_component_addhNtauh1hhhhhhNhNubh)}(hhh](h)}(hDint snd_component_add (struct snd_card *card, const char *component)h]h)}(hCint snd_component_add(struct snd_card *card, const char *component)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_component_addh]j%)}(hsnd_component_addh]hsnd_component_add}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h.(struct snd_card *card, const char *component)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjsbc.snd_component_addasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hconst char *componenth](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hadd a component stringh]hadd a component string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure ``const char *component`` the component id string This function adds the component id string to the supported list. The component can be referred from the alsa-lib. **Return** Zero otherwise a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hhh](j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hj6h]hstruct snd_card *card}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj0ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(h``const char *component`` the component id string This function adds the component id string to the supported list. The component can be referred from the alsa-lib. h](j)}(h``const char *component``h]j)}(hjoh]hconst char *component}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjiubj)}(hhh](jg)}(hthe component id stringh]hthe component id string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubjg)}(hrThis function adds the component id string to the supported list. The component can be referred from the alsa-lib.h]hrThis function adds the component id string to the supported list. The component can be referred from the alsa-lib.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubeh}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubjg)}(h%Zero otherwise a negative error code.h]h%Zero otherwise a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_file_add (C function)c.snd_card_file_addhNtauh1hhhhhhNhNubh)}(hhh](h)}(h@int snd_card_file_add (struct snd_card *card, struct file *file)h]h)}(h?int snd_card_file_add(struct snd_card *card, struct file *file)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM%ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM%ubj)}(hsnd_card_file_addh]j%)}(hsnd_card_file_addh]hsnd_card_file_add}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hM%ubj@)}(h*(struct snd_card *card, struct file *file)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jj"sbc.snd_card_file_addasbuh1hhj8ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hstruct file *fileh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hfileh]hfile}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jvc.snd_card_file_addasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hM%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM%ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM%hjhhubjb)}(hhh]jg)}(h)add the file to the file list of the cardh]h)add the file to the file list of the card}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj, hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjG jjG jjjuh1hhhhhhNhNubj)}(hXP**Parameters** ``struct snd_card *card`` soundcard structure ``struct file *file`` file pointer This function adds the file to the file linked-list of the card. This linked-list is used to keep tracking the connection state, and to avoid the release of busy resources by hotplug. **Return** zero or a negative error code.h](jg)}(h**Parameters**h]j)}(hjQ h]h Parameters}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjK ubj)}(hhh](j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjp h]hstruct snd_card *card}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjj ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjg ubj)}(h``struct file *file`` file pointer This function adds the file to the file linked-list of the card. This linked-list is used to keep tracking the connection state, and to avoid the release of busy resources by hotplug. h](j)}(h``struct file *file``h]j)}(hj h]hstruct file *file}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM!hj ubj)}(hhh](jg)}(h file pointerh]h file pointer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubjg)}(hThis function adds the file to the file linked-list of the card. This linked-list is used to keep tracking the connection state, and to avoid the release of busy resources by hotplug.h]hThis function adds the file to the file linked-list of the card. This linked-list is used to keep tracking the connection state, and to avoid the release of busy resources by hotplug.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM!hjg ubeh}(h]h ]h"]h$]h&]uh1jhjK ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM#hjK ubjg)}(hzero or a negative error code.h]hzero or a negative error code.}(hj !hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM#hjK ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_file_remove (C function)c.snd_card_file_removehNtauh1hhhhhhNhNubh)}(hhh](h)}(hCint snd_card_file_remove (struct snd_card *card, struct file *file)h]h)}(hBint snd_card_file_remove(struct snd_card *card, struct file *file)h](h)}(hinth]hint}(hj9!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5!hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMGubj)}(h h]h }(hjH!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5!hhhjG!hMGubj)}(hsnd_card_file_removeh]j%)}(hsnd_card_file_removeh]hsnd_card_file_remove}(hjZ!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5!hhhjG!hMGubj@)}(h*(struct snd_card *card, struct file *file)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjv!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjr!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr!ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jj\!sbc.snd_card_file_removeasbuh1hhjr!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr!ubj%)}(hcardh]hcard}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjn!ubjF)}(hstruct file *fileh](jL)}(hjOh]hstruct}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(hfileh]hfile}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j!c.snd_card_file_removeasbuh1hhj!ubj)}(h h]h }(hj$"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hj2"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj%)}(hfileh]hfile}(hj?"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjn!ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj5!hhhjG!hMGubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1!hhhjG!hMGubah}(h]j,!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjG!hMGhj.!hhubjb)}(hhh]jg)}(h"remove the file from the file listh]h"remove the file from the file list}(hji"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM;hjf"hhubah}(h]h ]h"]h$]h&]uh1jahj.!hhhjG!hMGubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1hhhhhhNhNubj)}(hXw**Parameters** ``struct snd_card *card`` soundcard structure ``struct file *file`` file pointer This function removes the file formerly added to the card via snd_card_file_add() function. If all files are removed and snd_card_free_when_closed() was called beforehand, it processes the pending release of resources. **Return** Zero or a negative error code.h](jg)}(h**Parameters**h]j)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM?hj"ubj)}(hhh](j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hj"h]hstruct snd_card *card}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM<hj"ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hM<hj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hM<hj"ubj)}(h``struct file *file`` file pointer This function removes the file formerly added to the card via snd_card_file_add() function. If all files are removed and snd_card_free_when_closed() was called beforehand, it processes the pending release of resources. h](j)}(h``struct file *file``h]j)}(hj"h]hstruct file *file}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMChj"ubj)}(hhh](jg)}(h file pointerh]h file pointer}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM=hj"ubjg)}(hThis function removes the file formerly added to the card via snd_card_file_add() function. If all files are removed and snd_card_free_when_closed() was called beforehand, it processes the pending release of resources.h]hThis function removes the file formerly added to the card via snd_card_file_add() function. If all files are removed and snd_card_free_when_closed() was called beforehand, it processes the pending release of resources.}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM?hj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hMChj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubjg)}(h **Return**h]j)}(hj.#h]hReturn}(hj0#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMEhj"ubjg)}(hZero or a negative error code.h]hZero or a negative error code.}(hjD#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMEhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_power_ref_and_wait (C function)c.snd_power_ref_and_waithNtauh1hhhhhhNhNubh)}(hhh](h)}(h2int snd_power_ref_and_wait (struct snd_card *card)h]h)}(h1int snd_power_ref_and_wait(struct snd_card *card)h](h)}(hinth]hint}(hjs#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjo#hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMtubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjo#hhhj#hMtubj)}(hsnd_power_ref_and_waith]j%)}(hsnd_power_ref_and_waith]hsnd_power_ref_and_wait}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjo#hhhj#hMtubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j)}jj#sbc.snd_power_ref_and_waitasbuh1hhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(hcardh]hcard}(hj $hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjo#hhhj#hMtubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjk#hhhj#hMtubah}(h]jf#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj#hMthjh#hhubjb)}(hhh]jg)}(h#wait until the card gets powered uph]h#wait until the card gets powered up}(hj3$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMfhj0$hhubah}(h]h ]h"]h$]h&]uh1jahjh#hhhj#hMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjK$jjK$jjjuh1hhhhhhNhNubj)}(hXA**Parameters** ``struct snd_card *card`` soundcard structure **Description** Take the power_ref reference count of the given card, and wait until the card gets powered up to SNDRV_CTL_POWER_D0 state. The refcount is down again while sleeping until power-up, hence this function can be used for syncing the floating control ops accesses, typically around calling control ops. The caller needs to pull down the refcount via snd_power_unref() later no matter whether the error is returned from this function or not. **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjU$h]h Parameters}(hjW$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS$ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMjhjO$ubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjt$h]hstruct snd_card *card}(hjv$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr$ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMghjn$ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMghj$ubah}(h]h ]h"]h$]h&]uh1jhjn$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMghjk$ubah}(h]h ]h"]h$]h&]uh1jhjO$ubjg)}(h**Description**h]j)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMihjO$ubjg)}(hX)Take the power_ref reference count of the given card, and wait until the card gets powered up to SNDRV_CTL_POWER_D0 state. The refcount is down again while sleeping until power-up, hence this function can be used for syncing the floating control ops accesses, typically around calling control ops.h]hX)Take the power_ref reference count of the given card, and wait until the card gets powered up to SNDRV_CTL_POWER_D0 state. The refcount is down again while sleeping until power-up, hence this function can be used for syncing the floating control ops accesses, typically around calling control ops.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMihjO$ubjg)}(hThe caller needs to pull down the refcount via snd_power_unref() later no matter whether the error is returned from this function or not.h]hThe caller needs to pull down the refcount via snd_power_unref() later no matter whether the error is returned from this function or not.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMohjO$ubjg)}(h **Return**h]j)}(hj$h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMrhjO$ubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMrhjO$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_wait (C function)c.snd_power_waithNtauh1hhhhhhNhNubh)}(hhh](h)}(h*int snd_power_wait (struct snd_card *card)h]h)}(h)int snd_power_wait(struct snd_card *card)h](h)}(hinth]hint}(hj*%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&%hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj)}(h h]h }(hj9%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&%hhhj8%hMubj)}(hsnd_power_waith]j%)}(hsnd_power_waith]hsnd_power_wait}(hjK%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjG%ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&%hhhj8%hMubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjg%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjc%ubj)}(h h]h }(hjt%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc%ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjM%sbc.snd_power_waitasbuh1hhjc%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc%ubj%)}(hcardh]hcard}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_%ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj&%hhhj8%hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"%hhhj8%hMubah}(h]j%ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8%hMhj%hhubjb)}(hhh]jg)}(h.wait until the card gets powered up (old form)h]h.wait until the card gets powered up (old form)}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj%hhubah}(h]h ]h"]h$]h&]uh1jahj%hhhj8%hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct snd_card *card`` soundcard structure **Description** Wait until the card gets powered up to SNDRV_CTL_POWER_D0 state. **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hj &h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj &ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&ubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hj+&h]hstruct snd_card *card}(hj-&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)&ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj%&ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjD&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@&hMhjA&ubah}(h]h ]h"]h$]h&]uh1jhj%&ubeh}(h]h ]h"]h$]h&]uh1jhj@&hMhj"&ubah}(h]h ]h"]h$]h&]uh1jhj&ubjg)}(h**Description**h]j)}(hjf&h]h Description}(hjh&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd&ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&ubjg)}(h@Wait until the card gets powered up to SNDRV_CTL_POWER_D0 state.h]h@Wait until the card gets powered up to SNDRV_CTL_POWER_D0 state.}(hj|&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&ubjg)}(h **Return**h]j)}(hj&h]hReturn}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&ubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubeh}(h]card-managementah ]h"]card managementah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hDevice Componentsh]hDevice Components}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhK ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_device_new (C function)c.snd_device_newhNtauh1hhj&hhhNhNubh)}(hhh](h)}(hzint snd_device_new (struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h]h)}(hyint snd_device_new(struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h](h)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj&hKubj)}(hsnd_device_newh]j%)}(hsnd_device_newh]hsnd_device_new}(hj 'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj&hKubj@)}(hg(struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj('hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$'ubj)}(h h]h }(hj5'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$'ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjF'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH'modnameN classnameNjj)}j]j)}jj'sbc.snd_device_newasbuh1hhj$'ubj)}(h h]h }(hjf'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$'ubj)}(hjh]h*}(hjt'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$'ubj%)}(hcardh]hcard}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 'ubjF)}(henum snd_device_type typeh](jL)}(henumh]henum}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubh)}(hhh]j%)}(hsnd_device_typeh]hsnd_device_type}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]jb'c.snd_device_newasbuh1hhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj%)}(htypeh]htype}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 'ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hj (hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(h device_datah]h device_data}(hj'(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 'ubjF)}(h const struct snd_device_ops *opsh](jL)}(hj\h]hconst}(hj@(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<(ubj)}(h h]h }(hjM(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<(ubjL)}(hjOh]hstruct}(hj[(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<(ubj)}(h h]h }(hjh(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<(ubh)}(hhh]j%)}(hsnd_device_opsh]hsnd_device_ops}(hjy(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjv(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{(modnameN classnameNjj)}j]jb'c.snd_device_newasbuh1hhj<(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<(ubj%)}(hopsh]hops}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 'ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&hhhj&hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&hhhj&hKubah}(h]j&ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj&hKhj&hhubjb)}(hhh]jg)}(hcreate an ALSA device componenth]hcreate an ALSA device component}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj&hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhj&hNhNubj)}(hX:**Parameters** ``struct snd_card *card`` the card instance ``enum snd_device_type type`` the device type, SNDRV_DEV_XXX ``void *device_data`` the data pointer of this device ``const struct snd_device_ops *ops`` the operator table **Description** Creates a new device component for the given data pointer. The device will be assigned to the card and managed together by the card. The data pointer plays a role as the identifier, too, so the pointer address must be unique and unchanged. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj(h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj)h]hstruct snd_card *card}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj6)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2)hKhj3)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj2)hKhj)ubj)}(h=``enum snd_device_type type`` the device type, SNDRV_DEV_XXX h](j)}(h``enum snd_device_type type``h]j)}(hjV)h]henum snd_device_type type}(hjX)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhjP)ubj)}(hhh]jg)}(hthe device type, SNDRV_DEV_XXXh]hthe device type, SNDRV_DEV_XXX}(hjo)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk)hKhjl)ubah}(h]h ]h"]h$]h&]uh1jhjP)ubeh}(h]h ]h"]h$]h&]uh1jhjk)hKhj)ubj)}(h6``void *device_data`` the data pointer of this device h](j)}(h``void *device_data``h]j)}(hj)h]hvoid *device_data}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj)}(hhh]jg)}(hthe data pointer of this deviceh]hthe data pointer of this device}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubj)}(h8``const struct snd_device_ops *ops`` the operator table h](j)}(h$``const struct snd_device_ops *ops``h]j)}(hj)h]h const struct snd_device_ops *ops}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj)}(hhh]jg)}(hthe operator tableh]hthe operator table}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hKhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hKhj)ubeh}(h]h ]h"]h$]h&]uh1jhj(ubjg)}(h**Description**h]j)}(hj*h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubjg)}(hCreates a new device component for the given data pointer. The device will be assigned to the card and managed together by the card.h]hCreates a new device component for the given data pointer. The device will be assigned to the card and managed together by the card.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubjg)}(hjThe data pointer plays a role as the identifier, too, so the pointer address must be unique and unchanged.h]hjThe data pointer plays a role as the identifier, too, so the pointer address must be unique and unchanged.}(hj(*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubjg)}(h **Return**h]j)}(hj9*h]hReturn}(hj;*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7*ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjO*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_device_disconnect (C function)c.snd_device_disconnecthNtauh1hhj&hhhNhNubh)}(hhh](h)}(hEvoid snd_device_disconnect (struct snd_card *card, void *device_data)h]h)}(hDvoid snd_device_disconnect(struct snd_card *card, void *device_data)h](h)}(hvoidh]hvoid}(hj~*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjz*hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz*hhhj*hKjubj)}(hsnd_device_disconnecth]j%)}(hsnd_device_disconnecth]hsnd_device_disconnect}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjz*hhhj*hKjubj@)}(h*(struct snd_card *card, void *device_data)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jj*sbc.snd_device_disconnectasbuh1hhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(hcardh]hcard}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hj-+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)+ubj)}(h h]h }(hj;+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)+ubj)}(hjh]h*}(hjI+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)+ubj%)}(h device_datah]h device_data}(hjV+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjz*hhhj*hKjubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjv*hhhj*hKjubah}(h]jq*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hKjhjs*hhubjb)}(hhh]jg)}(hdisconnect the deviceh]hdisconnect the device}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK^hj}+hhubah}(h]h ]h"]h$]h&]uh1jahjs*hhhj*hKjubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1hhhhj&hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``void *device_data`` the data pointer to disconnect **Description** Turns the device into the disconnection state, invoking dev_disconnect callback, if the device was already registered. Usually called from snd_card_disconnect(). **Return** Zero if successful, or a negative error code on failure or if the device not found.h](jg)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKbhj+ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj+h]hstruct snd_card *card}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK_hj+ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj+hK_hj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+hK_hj+ubj)}(h5``void *device_data`` the data pointer to disconnect h](j)}(h``void *device_data``h]j)}(hj+h]hvoid *device_data}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK`hj+ubj)}(hhh]jg)}(hthe data pointer to disconnecth]hthe data pointer to disconnect}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hK`hj,ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj,hK`hj+ubeh}(h]h ]h"]h$]h&]uh1jhj+ubjg)}(h**Description**h]j)}(hj5,h]h Description}(hj7,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3,ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKbhj+ubjg)}(hvTurns the device into the disconnection state, invoking dev_disconnect callback, if the device was already registered.h]hvTurns the device into the disconnection state, invoking dev_disconnect callback, if the device was already registered.}(hjK,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKbhj+ubjg)}(h*Usually called from snd_card_disconnect().h]h*Usually called from snd_card_disconnect().}(hjZ,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKehj+ubjg)}(h **Return**h]j)}(hjk,h]hReturn}(hjm,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji,ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKghj+ubjg)}(hSZero if successful, or a negative error code on failure or if the device not found.h]hSZero if successful, or a negative error code on failure or if the device not found.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKghj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_device_free (C function)c.snd_device_freehNtauh1hhj&hhhNhNubh)}(hhh](h)}(h?void snd_device_free (struct snd_card *card, void *device_data)h]h)}(h>void snd_device_free(struct snd_card *card, void *device_data)h](h)}(hvoidh]hvoid}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhj,hKubj)}(hsnd_device_freeh]j%)}(hsnd_device_freeh]hsnd_device_free}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,hhhj,hKubj@)}(h*(struct snd_card *card, void *device_data)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj -hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj -modnameN classnameNjj)}j]j)}jj,sbc.snd_device_freeasbuh1hhj,ubj)}(h h]h }(hj+-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hj9-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hcardh]hcard}(hjF-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj,ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hj_-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[-ubj)}(h h]h }(hjm-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[-ubj)}(hjh]h*}(hj{-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[-ubj%)}(h device_datah]h device_data}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj,ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj,hhhj,hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,hhhj,hKubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj,hKhj,hhubjb)}(hhh]jg)}(h release the device from the cardh]h release the device from the card}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKzhj-hhubah}(h]h ]h"]h$]h&]uh1jahj,hhhj,hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhj&hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``void *device_data`` the data pointer to release **Description** Removes the device from the list on the card and invokes the callbacks, dev_disconnect and dev_free, corresponding to the state. Then release the device.h](jg)}(h**Parameters**h]j)}(hj-h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK~hj-ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj-h]hstruct snd_card *card}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK{hj-ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj .hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hK{hj .ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj.hK{hj-ubj)}(h2``void *device_data`` the data pointer to release h](j)}(h``void *device_data``h]j)}(hj,.h]hvoid *device_data}(hj..hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*.ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK|hj&.ubj)}(hhh]jg)}(hthe data pointer to releaseh]hthe data pointer to release}(hjE.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjA.hK|hjB.ubah}(h]h ]h"]h$]h&]uh1jhj&.ubeh}(h]h ]h"]h$]h&]uh1jhjA.hK|hj-ubeh}(h]h ]h"]h$]h&]uh1jhj-ubjg)}(h**Description**h]j)}(hjg.h]h Description}(hji.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje.ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK~hj-ubjg)}(hRemoves the device from the list on the card and invokes the callbacks, dev_disconnect and dev_free, corresponding to the state. Then release the device.h]hRemoves the device from the list on the card and invokes the callbacks, dev_disconnect and dev_free, corresponding to the state. Then release the device.}(hj}.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK~hj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_device_register (C function)c.snd_device_registerhNtauh1hhj&hhhNhNubh)}(hhh](h)}(hBint snd_device_register (struct snd_card *card, void *device_data)h]h)}(hAint snd_device_register(struct snd_card *card, void *device_data)h](h)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.hhhj.hKubj)}(hsnd_device_registerh]j%)}(hsnd_device_registerh]hsnd_device_register}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj.hhhj.hKubj@)}(h*(struct snd_card *card, void *device_data)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj /modnameN classnameNjj)}j]j)}jj.sbc.snd_device_registerasbuh1hhj.ubj)}(h h]h }(hj'/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj5/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hcardh]hcard}(hjB/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hj[/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjW/ubj)}(h h]h }(hji/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjW/ubj)}(hjh]h*}(hjw/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjW/ubj%)}(h device_datah]h device_data}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjW/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj.hhhj.hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.hhhj.hKubah}(h]j.ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.hKhj.hhubjb)}(hhh]jg)}(hregister the deviceh]hregister the device}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/hhubah}(h]h ]h"]h$]h&]uh1jahj.hhhj.hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhj&hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``void *device_data`` the data pointer to register **Description** Registers the device which was already created via snd_device_new(). Usually this is called from snd_card_register(), but it can be called later if any new devices are created after invocation of snd_card_register(). **Return** Zero if successful, or a negative error code on failure or if the device not found.h](jg)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj/h]hstruct snd_card *card}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hKhj0ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj0hKhj/ubj)}(h3``void *device_data`` the data pointer to register h](j)}(h``void *device_data``h]j)}(hj(0h]hvoid *device_data}(hj*0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&0ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj"0ubj)}(hhh]jg)}(hthe data pointer to registerh]hthe data pointer to register}(hjA0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=0hKhj>0ubah}(h]h ]h"]h$]h&]uh1jhj"0ubeh}(h]h ]h"]h$]h&]uh1jhj=0hKhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubjg)}(h**Description**h]j)}(hjc0h]h Description}(hje0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja0ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubjg)}(hRegisters the device which was already created via snd_device_new(). Usually this is called from snd_card_register(), but it can be called later if any new devices are created after invocation of snd_card_register().h]hRegisters the device which was already created via snd_device_new(). Usually this is called from snd_card_register(), but it can be called later if any new devices are created after invocation of snd_card_register().}(hjy0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubjg)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubjg)}(hSZero if successful, or a negative error code on failure or if the device not found.h]hSZero if successful, or a negative error code on failure or if the device not found.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_device_get_state (C function)c.snd_device_get_statehNtauh1hhj&hhhNhNubh)}(hhh](h)}(hCint snd_device_get_state (struct snd_card *card, void *device_data)h]h)}(hBint snd_device_get_state(struct snd_card *card, void *device_data)h](h)}(hinth]hint}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0hhhj0hKubj)}(hsnd_device_get_stateh]j%)}(hsnd_device_get_stateh]hsnd_device_get_state}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0hhhj0hKubj@)}(h*(struct snd_card *card, void *device_data)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj 1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj*1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,1modnameN classnameNjj)}j]j)}jj0sbc.snd_device_get_stateasbuh1hhj1ubj)}(h h]h }(hjJ1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjX1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hcardh]hcard}(hje1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hj~1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjz1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz1ubj%)}(h device_datah]h device_data}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjz1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0hhhj0hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhj0hKubah}(h]j0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hKhj0hhubjb)}(hhh]jg)}(h)Get the current state of the given deviceh]h)Get the current state of the given device}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1hhubah}(h]h ]h"]h$]h&]uh1jahj0hhhj0hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhj&hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``void *device_data`` the data pointer to release **Description** Returns the current state of the given device object. For the valid device, either **SNDRV_DEV_BUILD**, **SNDRV_DEV_REGISTERED** or **SNDRV_DEV_DISCONNECTED** is returned. Or for a non-existing device, -1 is returned as an error. **Return** the current state, or -1 if not foundh](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj2h]hstruct snd_card *card}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj 2ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj+2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'2hKhj(2ubah}(h]h ]h"]h$]h&]uh1jhj 2ubeh}(h]h ]h"]h$]h&]uh1jhj'2hKhj 2ubj)}(h2``void *device_data`` the data pointer to release h](j)}(h``void *device_data``h]j)}(hjK2h]hvoid *device_data}(hjM2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhjE2ubj)}(hhh]jg)}(hthe data pointer to releaseh]hthe data pointer to release}(hjd2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`2hKhja2ubah}(h]h ]h"]h$]h&]uh1jhjE2ubeh}(h]h ]h"]h$]h&]uh1jhj`2hKhj 2ubeh}(h]h ]h"]h$]h&]uh1jhj1ubjg)}(h**Description**h]j)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1ubjg)}(hReturns the current state of the given device object. For the valid device, either **SNDRV_DEV_BUILD**, **SNDRV_DEV_REGISTERED** or **SNDRV_DEV_DISCONNECTED** is returned. Or for a non-existing device, -1 is returned as an error.h](hTReturns the current state of the given device object. For the valid device, either }(hj2hhhNhNubj)}(h**SNDRV_DEV_BUILD**h]hSNDRV_DEV_BUILD}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh, }(hj2hhhNhNubj)}(h**SNDRV_DEV_REGISTERED**h]hSNDRV_DEV_REGISTERED}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh or }(hj2hhhNhNubj)}(h**SNDRV_DEV_DISCONNECTED**h]hSNDRV_DEV_DISCONNECTED}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubhG is returned. Or for a non-existing device, -1 is returned as an error.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1ubjg)}(h **Return**h]j)}(hj2h]hReturn}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1ubjg)}(h%the current state, or -1 if not foundh]h%the current state, or -1 if not found}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&hhhNhNubeh}(h]device-componentsah ]h"]device componentsah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h'Module requests and Device File Entriesh]h'Module requests and Device File Entries}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_request_card (C function)c.snd_request_cardhNtauh1hhj3hhhNhNubh)}(hhh](h)}(h void snd_request_card (int card)h]h)}(hvoid snd_request_card(int card)h](h)}(hvoidh]hvoid}(hjA3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=3hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKuh1jhj=3hhhjO3hKuh1jEhjv3ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj=3hhhjO3hKjSuh1hjTjUhj93hhhjO3hK4ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hj3ubjg)}(h{Tries to load the module "snd-card-X" for the given card number via request_module. Returns immediately if already loaded.h]hTries to load the module “snd-card-X” for the given card number via request_module. Returns immediately if already loaded.}(hjV4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_lookup_minor_data (C function)c.snd_lookup_minor_datahNtauh1hhj3hhhNhNubh)}(hhh](h)}(h;void * snd_lookup_minor_data (unsigned int minor, int type)h]h)}(h9void *snd_lookup_minor_data(unsigned int minor, int type)h](h)}(hvoidh]hvoid}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKcubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhj4hKcubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhj4hKcubj)}(hsnd_lookup_minor_datah]j%)}(hsnd_lookup_minor_datah]hsnd_lookup_minor_data}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhj4hKcubj@)}(h(unsigned int minor, int type)h](jF)}(hunsigned int minorh](h)}(hunsignedh]hunsigned}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hinth]hint}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(hminorh]hminor}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hint typeh](h)}(hinth]hint}(hj 5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hj.5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj%)}(htypeh]htype}(hj<5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4hhhj4hKcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}4hhhj4hKcubah}(h]jx4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hKchjz4hhubjb)}(hhh]jg)}(h$get user data of a registered deviceh]h$get user data of a registered device}(hjf5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUhjc5hhubah}(h]h ]h"]h$]h&]uh1jahjz4hhhj4hKcubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~5jj~5jjjuh1hhhhj3hNhNubj)}(hX**Parameters** ``unsigned int minor`` the minor number ``int type`` device type (SNDRV_DEVICE_TYPE_XXX) **Description** Checks that a minor device with the specified type is registered, and returns its user data pointer. This function increments the reference counter of the card instance if an associated instance with the given minor number and type is found. The caller must call snd_card_unref() appropriately later. **Return** The user data pointer if the specified device is found. ``NULL`` otherwise.h](jg)}(h**Parameters**h]j)}(hj5h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj5ubj)}(hhh](j)}(h(``unsigned int minor`` the minor number h](j)}(h``unsigned int minor``h]j)}(hj5h]hunsigned int minor}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKVhj5ubj)}(hhh]jg)}(hthe minor numberh]hthe minor number}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hKVhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hKVhj5ubj)}(h1``int type`` device type (SNDRV_DEVICE_TYPE_XXX) h](j)}(h ``int type``h]j)}(hj5h]hint type}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKWhj5ubj)}(hhh]jg)}(h#device type (SNDRV_DEVICE_TYPE_XXX)h]h#device type (SNDRV_DEVICE_TYPE_XXX)}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hKWhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hKWhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5ubjg)}(h**Description**h]j)}(hj6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj5ubjg)}(hdChecks that a minor device with the specified type is registered, and returns its user data pointer.h]hdChecks that a minor device with the specified type is registered, and returns its user data pointer.}(hj16hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj5ubjg)}(hThis function increments the reference counter of the card instance if an associated instance with the given minor number and type is found. The caller must call snd_card_unref() appropriately later.h]hThis function increments the reference counter of the card instance if an associated instance with the given minor number and type is found. The caller must call snd_card_unref() appropriately later.}(hj@6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK\hj5ubjg)}(h **Return**h]j)}(hjQ6h]hReturn}(hjS6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO6ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK`hj5ubjg)}(hKThe user data pointer if the specified device is found. ``NULL`` otherwise.h](h8The user data pointer if the specified device is found. }(hjg6hhhNhNubj)}(h``NULL``h]hNULL}(hjo6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg6ubh otherwise.}(hjg6hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK`hj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_register_device (C function)c.snd_register_devicehNtauh1hhj3hhhNhNubh)}(hhh](h)}(hint snd_register_device (int type, struct snd_card *card, int dev, const struct file_operations *f_ops, void *private_data, struct device *device)h]h)}(hint snd_register_device(int type, struct snd_card *card, int dev, const struct file_operations *f_ops, void *private_data, struct device *device)h](h)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhj6hKubj)}(hsnd_register_deviceh]j%)}(hsnd_register_deviceh]hsnd_register_device}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhj6hKubj@)}(hz(int type, struct snd_card *card, int dev, const struct file_operations *f_ops, void *private_data, struct device *device)h](jF)}(hint typeh](h)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj%)}(htypeh]htype}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj'7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj87hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj57ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:7modnameN classnameNjj)}j]j)}jj6sbc.snd_register_deviceasbuh1hhj7ubj)}(h h]h }(hjX7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjf7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hcardh]hcard}(hjs7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(hint devh](h)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hdevh]hdev}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(h#const struct file_operations *f_opsh](jL)}(hj\h]hconst}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubjL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jT7c.snd_register_deviceasbuh1hhj7ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hj&8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hf_opsh]hf_ops}(hj38hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjL8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjH8ubj)}(h h]h }(hjZ8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjH8ubj)}(hjh]h*}(hjh8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH8ubj%)}(h private_datah]h private_data}(hju8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjH8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]jT7c.snd_register_deviceasbuh1hhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hdeviceh]hdevice}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhj6hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhj6hKubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj6hKhj6hhubjb)}(hhh]jg)}(h*Register the ALSA device file for the cardh]h*Register the ALSA device file for the card}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj 9hhubah}(h]h ]h"]h$]h&]uh1jahj6hhhj6hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'9jj'9jjjuh1hhhhj3hNhNubj)}(hX**Parameters** ``int type`` the device type, SNDRV_DEVICE_TYPE_XXX ``struct snd_card *card`` the card instance ``int dev`` the device index ``const struct file_operations *f_ops`` the file operations ``void *private_data`` user pointer for f_ops->open() ``struct device *device`` the device to register **Description** Registers an ALSA device file for the given card. The operators have to be set in reg parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj19h]h Parameters}(hj39hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/9ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj+9ubj)}(hhh](j)}(h4``int type`` the device type, SNDRV_DEVICE_TYPE_XXX h](j)}(h ``int type``h]j)}(hjP9h]hint type}(hjR9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN9ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhjJ9ubj)}(hhh]jg)}(h&the device type, SNDRV_DEVICE_TYPE_XXXh]h&the device type, SNDRV_DEVICE_TYPE_XXX}(hji9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhje9hKhjf9ubah}(h]h ]h"]h$]h&]uh1jhjJ9ubeh}(h]h ]h"]h$]h&]uh1jhje9hKhjG9ubj)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj9h]hstruct snd_card *card}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj9ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hKhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKhjG9ubj)}(h``int dev`` the device index h](j)}(h ``int dev``h]j)}(hj9h]hint dev}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj9ubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hKhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hKhjG9ubj)}(h<``const struct file_operations *f_ops`` the file operations h](j)}(h'``const struct file_operations *f_ops``h]j)}(hj9h]h#const struct file_operations *f_ops}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj9ubj)}(hhh]jg)}(hthe file operationsh]hthe file operations}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hKhj:ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj:hKhjG9ubj)}(h6``void *private_data`` user pointer for f_ops->open() h](j)}(h``void *private_data``h]j)}(hj4:h]hvoid *private_data}(hj6:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2:ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj.:ubj)}(hhh]jg)}(huser pointer for f_ops->open()h]huser pointer for f_ops->open()}(hjM:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI:hKhjJ:ubah}(h]h ]h"]h$]h&]uh1jhj.:ubeh}(h]h ]h"]h$]h&]uh1jhjI:hKhjG9ubj)}(h1``struct device *device`` the device to register h](j)}(h``struct device *device``h]j)}(hjm:h]hstruct device *device}(hjo:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk:ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhjg:ubj)}(hhh]jg)}(hthe device to registerh]hthe device to register}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hKhj:ubah}(h]h ]h"]h$]h&]uh1jhjg:ubeh}(h]h ]h"]h$]h&]uh1jhj:hKhjG9ubeh}(h]h ]h"]h$]h&]uh1jhj+9ubjg)}(h**Description**h]j)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj+9ubjg)}(h`Registers an ALSA device file for the given card. The operators have to be set in reg parameter.h]h`Registers an ALSA device file for the given card. The operators have to be set in reg parameter.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj+9ubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj+9ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj+9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_unregister_device (C function)c.snd_unregister_devicehNtauh1hhj3hhhNhNubh)}(hhh](h)}(h.int snd_unregister_device (struct device *dev)h]h)}(h-int snd_unregister_device(struct device *dev)h](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM+ubj)}(h h]h }(hj#;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhj";hM+ubj)}(hsnd_unregister_deviceh]j%)}(hsnd_unregister_deviceh]hsnd_unregister_device}(hj5;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1;ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhj";hM+ubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjQ;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjM;ubj)}(h h]h }(hj^;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjM;ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjo;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq;modnameN classnameNjj)}j]j)}jj7;sbc.snd_unregister_deviceasbuh1hhjM;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjM;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM;ubj%)}(hdevh]hdev}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjM;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjI;ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhj";hM+ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj ;hhhj";hM+ubah}(h]j;ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj";hM+hj ;hhubjb)}(hhh]jg)}(h'unregister the device on the given cardh]h'unregister the device on the given card}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM#hj;hhubah}(h]h ]h"]h$]h&]uh1jahj ;hhhj";hM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1hhhhj3hNhNubj)}(h**Parameters** ``struct device *dev`` the device instance **Description** Unregisters the device file already registered via snd_register_device(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM'hj;ubj)}(hhh]j)}(h+``struct device *dev`` the device instance h](j)}(h``struct device *dev``h]j)}(hj<h]hstruct device *dev}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM$hj<ubj)}(hhh]jg)}(hthe device instanceh]hthe device instance}(hj.<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*<hM$hj+<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj*<hM$hj <ubah}(h]h ]h"]h$]h&]uh1jhj;ubjg)}(h**Description**h]j)}(hjP<h]h Description}(hjR<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN<ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM&hj;ubjg)}(hIUnregisters the device file already registered via snd_register_device().h]hIUnregisters the device file already registered via snd_register_device().}(hjf<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM&hj;ubjg)}(h **Return**h]j)}(hjw<h]hReturn}(hjy<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju<ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM)hj;ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM)hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubeh}(h]'module-requests-and-device-file-entriesah ]h"]'module requests and device file entriesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMemory Management Helpersh]hMemory Management Helpers}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_user_fromio (C function)c.copy_to_user_fromiohNtauh1hhj<hhhNhNubh)}(hhh](h)}(hZint copy_to_user_fromio (void __user *dst, const volatile void __iomem *src, size_t count)h]h)}(hYint copy_to_user_fromio(void __user *dst, volatile const void __iomem *src, size_t count)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhj<hKubj)}(hcopy_to_user_fromioh]j%)}(hcopy_to_user_fromioh]hcopy_to_user_fromio}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhj<hKubj@)}(hB(void __user *dst, volatile const void __iomem *src, size_t count)h](jF)}(hvoid __user *dsth](h)}(hvoidh]hvoid}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=ubj)}(h h]h }(hj =hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh__user}(hj=hhhNhNubj)}(h h]h }(hj2=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hj@=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(hdsth]hdst}(hjM=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj =ubjF)}(h volatile const void __iomem *srch](jL)}(hvolatileh]hvolatile}(hjf=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjb=ubj)}(h h]h }(hjt=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb=ubjL)}(hj\h]hconst}(hj=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjb=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb=ubh)}(hvoidh]hvoid}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjb=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb=ubh__iomem}(hjb=hhhNhNubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb=ubj%)}(hsrch]hsrc}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj =ubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jj<sbc.copy_to_user_fromioasbuh1hhj=ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hcounth]hcount}(hj">hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj =ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhj<hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhj<hKubah}(h]j<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj<hKhj<hhubjb)}(hhh]jg)}(h'copy data from mmio-space to user-spaceh]h'copy data from mmio-space to user-space}(hjL>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjI>hhubah}(h]h ]h"]h$]h&]uh1jahj<hhhj<hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjd>jjd>jjjuh1hhhhj<hNhNubj)}(hX<**Parameters** ``void __user *dst`` the destination pointer on user-space ``const volatile void __iomem *src`` the source pointer on mmio ``size_t count`` the data size to copy in bytes **Description** Copies the data from mmio-space to user-space. **Return** Zero if successful, or non-zero on failure.h](jg)}(h**Parameters**h]j)}(hjn>h]h Parameters}(hjp>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl>ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjh>ubj)}(hhh](j)}(h;``void __user *dst`` the destination pointer on user-space h](j)}(h``void __user *dst``h]j)}(hj>h]hvoid __user *dst}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj>ubj)}(hhh]jg)}(h%the destination pointer on user-spaceh]h%the destination pointer on user-space}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubj)}(h@``const volatile void __iomem *src`` the source pointer on mmio h](j)}(h$``const volatile void __iomem *src``h]j)}(hj>h]h const volatile void __iomem *src}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj>ubj)}(hhh]jg)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hj>h]h size_t count}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj>ubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hKhj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj?hKhj>ubeh}(h]h ]h"]h$]h&]uh1jhjh>ubjg)}(h**Description**h]j)}(hj:?h]h Description}(hjubjg)}(h.Copies the data from mmio-space to user-space.h]h.Copies the data from mmio-space to user-space.}(hjP?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjh>ubjg)}(h **Return**h]j)}(hja?h]hReturn}(hjc?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_?ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjh>ubjg)}(h+Zero if successful, or non-zero on failure.h]h+Zero if successful, or non-zero on failure.}(hjw?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjh>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_iter_fromio (C function)c.copy_to_iter_fromiohNtauh1hhj<hhhNhNubh)}(hhh](h)}(hXsize_t copy_to_iter_fromio (const void __iomem *src, size_t count, struct iov_iter *dst)h]h)}(hWsize_t copy_to_iter_fromio(const void __iomem *src, size_t count, struct iov_iter *dst)h](h)}(hhh]j%)}(hsize_th]hsize_t}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jcopy_to_iter_fromiosbc.copy_to_iter_fromioasbuh1hhj?hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK.ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhj?hK.ubj)}(hcopy_to_iter_fromioh]j%)}(hj?h]hcopy_to_iter_fromio}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhj?hK.ubj@)}(h=(const void __iomem *src, size_t count, struct iov_iter *dst)h](jF)}(hconst void __iomem *srch](jL)}(hj\h]hconst}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hj!@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh__iomem}(hj?hhhNhNubj)}(h h]h }(hj3@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjA@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hsrch]hsrc}(hjN@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl@modnameN classnameNjj)}j]j?c.copy_to_iter_fromioasbuh1hhjc@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc@ubj%)}(hcounth]hcount}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(hstruct iov_iter *dsth](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j?c.copy_to_iter_fromioasbuh1hhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hdsth]hdst}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj?hhhj?hK.ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhj?hK.ubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hK.hj?hhubjb)}(hhh]jg)}(h%copy data from mmio-space to iov_iterh]h%copy data from mmio-space to iov_iter}(hj0AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%hj-Ahhubah}(h]h ]h"]h$]h&]uh1jahj?hhhj?hK.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHAjjHAjjjuh1hhhhj<hNhNubj)}(hX**Parameters** ``const void __iomem *src`` the source pointer on mmio ``size_t count`` the data size to copy in bytes ``struct iov_iter *dst`` the destination iov_iter **Description** Copies the data from mmio-space to iov_iter. **Return** number of bytes to be copiedh](jg)}(h**Parameters**h]j)}(hjRAh]h Parameters}(hjTAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPAubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK)hjLAubj)}(hhh](j)}(h7``const void __iomem *src`` the source pointer on mmio h](j)}(h``const void __iomem *src``h]j)}(hjqAh]hconst void __iomem *src}(hjsAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoAubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK&hjkAubj)}(hhh]jg)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK&hjAubah}(h]h ]h"]h$]h&]uh1jhjkAubeh}(h]h ]h"]h$]h&]uh1jhjAhK&hjhAubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjAh]h size_t count}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK'hjAubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK'hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK'hjhAubj)}(h2``struct iov_iter *dst`` the destination iov_iter h](j)}(h``struct iov_iter *dst``h]j)}(hjAh]hstruct iov_iter *dst}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK(hjAubj)}(hhh]jg)}(hthe destination iov_iterh]hthe destination iov_iter}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK(hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK(hjhAubeh}(h]h ]h"]h$]h&]uh1jhjLAubjg)}(h**Description**h]j)}(hjBh]h Description}(hj BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK*hjLAubjg)}(h,Copies the data from mmio-space to iov_iter.h]h,Copies the data from mmio-space to iov_iter.}(hj4BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK*hjLAubjg)}(h **Return**h]j)}(hjEBh]hReturn}(hjGBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCBubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK,hjLAubjg)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hj[BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK,hjLAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_user_toio (C function)c.copy_from_user_toiohNtauh1hhj<hhhNhNubh)}(hhh](h)}(hZint copy_from_user_toio (volatile void __iomem *dst, const void __user *src, size_t count)h]h)}(hYint copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count)h](h)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKQubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjBhKQubj)}(hcopy_from_user_toioh]j%)}(hcopy_from_user_toioh]hcopy_from_user_toio}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjBhKQubj@)}(hB(volatile void __iomem *dst, const void __user *src, size_t count)h](jF)}(hvolatile void __iomem *dsth](jL)}(hjh=h]hvolatile}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hvoidh]hvoid}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh__iomem}(hjBhhhNhNubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(hdsth]hdst}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(hconst void __user *srch](jL)}(hj\h]hconst}(hj6ChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2Cubj)}(h h]h }(hjCChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2Cubh)}(hvoidh]hvoid}(hjQChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2Cubj)}(h h]h }(hj_ChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2Cubh__user}(hj2ChhhNhNubj)}(h h]h }(hjqChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2Cubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Cubj%)}(hsrch]hsrc}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2Cubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jjBsbc.copy_from_user_toioasbuh1hhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(hcounth]hcount}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjBhKQubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhjBhKQubah}(h]j}Bah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBhKQhjBhhubjb)}(hhh]jg)}(h'copy data from user-space to mmio-spaceh]h'copy data from user-space to mmio-space}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHhjChhubah}(h]h ]h"]h$]h&]uh1jahjBhhhjBhKQubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDjjDjjjuh1hhhhj<hNhNubj)}(hXB**Parameters** ``volatile void __iomem *dst`` the destination pointer on mmio-space ``const void __user *src`` the source pointer on user-space ``size_t count`` the data size to copy in bytes **Description** Copies the data from user-space to mmio-space. **Return** Zero if successful, or non-zero on failure.h](jg)}(h**Parameters**h]j)}(hj"Dh]h Parameters}(hj$DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Dubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKLhjDubj)}(hhh](j)}(hE``volatile void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``volatile void __iomem *dst``h]j)}(hjADh]hvolatile void __iomem *dst}(hjCDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?Dubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKIhj;Dubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjZDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVDhKIhjWDubah}(h]h ]h"]h$]h&]uh1jhj;Dubeh}(h]h ]h"]h$]h&]uh1jhjVDhKIhj8Dubj)}(h<``const void __user *src`` the source pointer on user-space h](j)}(h``const void __user *src``h]j)}(hjzDh]hconst void __user *src}(hj|DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxDubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKJhjtDubj)}(hhh]jg)}(h the source pointer on user-spaceh]h the source pointer on user-space}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhKJhjDubah}(h]h ]h"]h$]h&]uh1jhjtDubeh}(h]h ]h"]h$]h&]uh1jhjDhKJhj8Dubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjDh]h size_t count}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKKhjDubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhKKhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKKhj8Dubeh}(h]h ]h"]h$]h&]uh1jhjDubjg)}(h**Description**h]j)}(hjDh]h Description}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKMhjDubjg)}(h.Copies the data from user-space to mmio-space.h]h.Copies the data from user-space to mmio-space.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKMhjDubjg)}(h **Return**h]j)}(hjEh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKOhjDubjg)}(h+Zero if successful, or non-zero on failure.h]h+Zero if successful, or non-zero on failure.}(hj+EhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKOhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_iter_toio (C function)c.copy_from_iter_toiohNtauh1hhj<hhhNhNubh)}(hhh](h)}(hRsize_t copy_from_iter_toio (void __iomem *dst, size_t count, struct iov_iter *src)h]h)}(hQsize_t copy_from_iter_toio(void __iomem *dst, size_t count, struct iov_iter *src)h](h)}(hhh]j%)}(hsize_th]hsize_t}(hj]EhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_EmodnameN classnameNjj)}j]j)}jcopy_from_iter_toiosbc.copy_from_iter_toioasbuh1hhjVEhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKgubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVEhhhj~EhKgubj)}(hcopy_from_iter_toioh]j%)}(hj{Eh]hcopy_from_iter_toio}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVEhhhj~EhKgubj@)}(h7(void __iomem *dst, size_t count, struct iov_iter *src)h](jF)}(hvoid __iomem *dsth](h)}(hvoidh]hvoid}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh__iomem}(hjEhhhNhNubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(hdsth]hdst}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]jyEc.copy_from_iter_toioasbuh1hhjEubj)}(h h]h }(hj!FhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hcounth]hcount}(hj/FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hstruct iov_iter *srch](jL)}(hjOh]hstruct}(hjHFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDFubj)}(h h]h }(hjUFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDFubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hjfFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhFmodnameN classnameNjj)}j]jyEc.copy_from_iter_toioasbuh1hhjDFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDFubj%)}(hsrch]hsrc}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjVEhhhj~EhKgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjREhhhj~EhKgubah}(h]jMEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~EhKghjOEhhubjb)}(hhh]jg)}(h%copy data from iov_iter to mmio-spaceh]h%copy data from iov_iter to mmio-space}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^hjFhhubah}(h]h ]h"]h$]h&]uh1jahjOEhhhj~EhKgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhj<hNhNubj)}(hX**Parameters** ``void __iomem *dst`` the destination pointer on mmio-space ``size_t count`` the data size to copy in bytes ``struct iov_iter *src`` the source iov_iter **Description** Copies the data from iov_iter to mmio-space. **Return** number of bytes to be copiedh](jg)}(h**Parameters**h]j)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKbhjFubj)}(hhh](j)}(h<``void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``void __iomem *dst``h]j)}(hj Gh]hvoid __iomem *dst}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK_hjGubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hj#GhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhK_hj Gubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhK_hjGubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjCGh]h size_t count}(hjEGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAGubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK`hj=Gubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hj\GhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXGhK`hjYGubah}(h]h ]h"]h$]h&]uh1jhj=Gubeh}(h]h ]h"]h$]h&]uh1jhjXGhK`hjGubj)}(h-``struct iov_iter *src`` the source iov_iter h](j)}(h``struct iov_iter *src``h]j)}(hj|Gh]hstruct iov_iter *src}(hj~GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzGubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKahjvGubj)}(hhh]jg)}(hthe source iov_iterh]hthe source iov_iter}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhKahjGubah}(h]h ]h"]h$]h&]uh1jhjvGubeh}(h]h ]h"]h$]h&]uh1jhjGhKahjGubeh}(h]h ]h"]h$]h&]uh1jhjFubjg)}(h**Description**h]j)}(hjGh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKchjFubjg)}(h,Copies the data from iov_iter to mmio-space.h]h,Copies the data from iov_iter to mmio-space.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKchjFubjg)}(h **Return**h]j)}(hjGh]hReturn}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKehjFubjg)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKehjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dma_alloc_dir_pages (C function)c.snd_dma_alloc_dir_pageshNtauh1hhj<hhhNhNubh)}(hhh](h)}(hint snd_dma_alloc_dir_pages (int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h]h)}(hint snd_dma_alloc_dir_pages(int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h](h)}(hinth]hint}(hj#HhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK?ubj)}(h h]h }(hj2HhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhj1HhK?ubj)}(hsnd_dma_alloc_dir_pagesh]j%)}(hsnd_dma_alloc_dir_pagesh]hsnd_dma_alloc_dir_pages}(hjDHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@Hubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhj1HhK?ubj@)}(hh(int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h](jF)}(hint typeh](h)}(hinth]hint}(hj`HhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\Hubj)}(h h]h }(hjnHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\Hubj%)}(htypeh]htype}(hj|HhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\Hubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXHubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hjHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hhh]j%)}(hdeviceh]hdevice}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjFHsbc.snd_dma_alloc_dir_pagesasbuh1hhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hdeviceh]hdevice}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXHubjF)}(henum dma_data_direction dirh](jL)}(hj'h]henum}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hj%IhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"Iubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'ImodnameN classnameNjj)}j]jHc.snd_dma_alloc_dir_pagesasbuh1hhjIubj)}(h h]h }(hjCIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj%)}(hdirh]hdir}(hjQIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXHubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjmIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjoImodnameN classnameNjj)}j]jHc.snd_dma_alloc_dir_pagesasbuh1hhjfIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfIubj%)}(hsizeh]hsize}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXHubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]jHc.snd_dma_alloc_dir_pagesasbuh1hhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hdmabh]hdmab}(hj JhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXHubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhj1HhK?ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj1HhK?ubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1HhK?hjHhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type and directionh]hBallocate the buffer area according to the given type and direction}(hj3JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1hj0Jhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhj1HhK?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKJjjKJjjjuh1hhhhj<hNhNubj)}(hX**Parameters** ``int type`` the DMA buffer type ``struct device *device`` the device pointer ``enum dma_data_direction dir`` DMA direction ``size_t size`` the buffer size to allocate ``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data **Description** Calls the memory-allocator function for the corresponding buffer type. **Return** Zero if the buffer with the given size is allocated successfully, otherwise a negative value on error.h](jg)}(h**Parameters**h]j)}(hjUJh]h Parameters}(hjWJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK5hjOJubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjtJh]hint type}(hjvJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK3hjnJubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhK3hjJubah}(h]h ]h"]h$]h&]uh1jhjnJubeh}(h]h ]h"]h$]h&]uh1jhjJhK3hjkJubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hjJh]hstruct device *device}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK4hjJubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhK4hjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhK4hjkJubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjJh]henum dma_data_direction dir}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK5hjJubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhK5hjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhK5hjkJubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjKh]h size_t size}(hj!KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK6hjKubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hj8KhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4KhK6hj5Kubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhj4KhK6hjkJubj)}(hU``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjXKh]hstruct snd_dma_buffer *dmab}(hjZKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK7hjRKubj)}(hhh]jg)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjqKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmKhK7hjnKubah}(h]h ]h"]h$]h&]uh1jhjRKubeh}(h]h ]h"]h$]h&]uh1jhjmKhK7hjkJubeh}(h]h ]h"]h$]h&]uh1jhjOJubjg)}(h**Description**h]j)}(hjKh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK9hjOJubjg)}(hFCalls the memory-allocator function for the corresponding buffer type.h]hFCalls the memory-allocator function for the corresponding buffer type.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK9hjOJubjg)}(h **Return**h]j)}(hjKh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKuh1jhjKhhhj LhKfubj@)}(hK(int type, struct device *device, size_t size, struct snd_dma_buffer *dmab)h](jF)}(hint typeh](h)}(hinth]hint}(hjuh1jEhj4LubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hjqLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmLubj)}(h h]h }(hj~LhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmLubh)}(hhh]j%)}(hdeviceh]hdevice}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jj"Lsbc.snd_dma_alloc_pages_fallbackasbuh1hhjmLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmLubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmLubj%)}(hdeviceh]hdevice}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4LubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jLc.snd_dma_alloc_pages_fallbackasbuh1hhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj%)}(hsizeh]hsize}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4LubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj+MhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'Mubj)}(h h]h }(hj8MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'Mubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjIMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKMmodnameN classnameNjj)}j]jLc.snd_dma_alloc_pages_fallbackasbuh1hhj'Mubj)}(h h]h }(hjgMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'Mubj)}(hjh]h*}(hjuMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'Mubj%)}(hdmabh]hdmab}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'Mubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4Lubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjKhhhj LhKfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhj LhKfubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj LhKfhjKhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type with fallbackh]hBallocate the buffer area according to the given type with fallback}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKXhjMhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhj LhKfubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhj<hNhNubj)}(hXG**Parameters** ``int type`` the DMA buffer type ``struct device *device`` the device pointer ``size_t size`` the buffer size to allocate ``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data **Description** Calls the memory-allocator function for the corresponding buffer type. When no space is left, this function reduces the size and tries to allocate again. The size actually allocated is stored in res_size argument. **Return** Zero if the buffer with the given size is allocated successfully, otherwise a negative value on error.h](jg)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK\hjMubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjMh]hint type}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKYhjMubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKYhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjNhKYhjMubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hj&Nh]hstruct device *device}(hj(NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Nubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKZhj Nubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hj?NhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;NhKZhjuh1jhj;OhhhjMOhKubj@)}(h(struct snd_dma_buffer *dmab)h]jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj|OhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxOubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjbOsbc.snd_dma_free_pagesasbuh1hhjxOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxOubj%)}(hdmabh]hdmab}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtOubah}(h]h ]h"]h$]h&]j=j>uh1j?hj;OhhhjMOhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7OhhhjMOhKubah}(h]j2Oah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMOhKhj4Ohhubjb)}(hhh]jg)}(hrelease the allocated bufferh]hrelease the allocated buffer}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKzhjOhhubah}(h]h ]h"]h$]h&]uh1jahj4OhhhjMOhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhj<hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` the buffer allocation record to release **Description** Releases the allocated buffer via snd_dma_alloc_pages().h](jg)}(h**Parameters**h]j)}(hj!Ph]h Parameters}(hj#PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK~hjPubj)}(hhh]j)}(hH``struct snd_dma_buffer *dmab`` the buffer allocation record to release h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hj@Ph]hstruct snd_dma_buffer *dmab}(hjBPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>Pubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK{hj:Pubj)}(hhh]jg)}(h'the buffer allocation record to releaseh]h'the buffer allocation record to release}(hjYPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUPhK{hjVPubah}(h]h ]h"]h$]h&]uh1jhj:Pubeh}(h]h ]h"]h$]h&]uh1jhjUPhK{hj7Pubah}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hj{Ph]h Description}(hj}PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK}hjPubjg)}(h8Releases the allocated buffer via snd_dma_alloc_pages().h]h8Releases the allocated buffer via snd_dma_alloc_pages().}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK}hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_devm_alloc_dir_pages (C function)c.snd_devm_alloc_dir_pageshNtauh1hhj<hhhNhNubh)}(hhh](h)}(hystruct snd_dma_buffer * snd_devm_alloc_dir_pages (struct device *dev, int type, enum dma_data_direction dir, size_t size)h]h)}(hwstruct snd_dma_buffer *snd_devm_alloc_dir_pages(struct device *dev, int type, enum dma_data_direction dir, size_t size)h](jL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhKubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jsnd_devm_alloc_dir_pagessbc.snd_devm_alloc_dir_pagesasbuh1hhjPhhhjPhKubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhKubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjPhKubj)}(hsnd_devm_alloc_dir_pagesh]j%)}(hjPh]hsnd_devm_alloc_dir_pages}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjPhKubj@)}(hH(struct device *dev, int type, enum dma_data_direction dir, size_t size)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj:QhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6Qubj)}(h h]h }(hjGQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6Qubh)}(hhh]j%)}(hdeviceh]hdevice}(hjXQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZQmodnameN classnameNjj)}j]jPc.snd_devm_alloc_dir_pagesasbuh1hhj6Qubj)}(h h]h }(hjvQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6Qubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6Qubj%)}(hdevh]hdev}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6Qubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2QubjF)}(hint typeh](h)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj%)}(htypeh]htype}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2QubjF)}(henum dma_data_direction dirh](jL)}(hj'h]henum}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jPc.snd_devm_alloc_dir_pagesasbuh1hhjQubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj%)}(hdirh]hdir}(hj)RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2QubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjERhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGRmodnameN classnameNjj)}j]jPc.snd_devm_alloc_dir_pagesasbuh1hhj>Rubj)}(h h]h }(hjcRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>Rubj%)}(hsizeh]hsize}(hjqRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Rubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2Qubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjPhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjPhKubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhKhjPhhubjb)}(hhh]jg)}(h*allocate the buffer and manage with devresh]h*allocate the buffer and manage with devres}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRhhubah}(h]h ]h"]h$]h&]uh1jahjPhhhjPhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1hhhhj<hNhNubj)}(hXC**Parameters** ``struct device *dev`` the device pointer ``int type`` the DMA buffer type ``enum dma_data_direction dir`` DMA direction ``size_t size`` the buffer size to allocate **Description** Allocate buffer pages depending on the given type and manage using devres. The pages will be released automatically at the device removal. Unlike snd_dma_alloc_pages(), this function requires the real device pointer, hence it can't work with SNDRV_DMA_TYPE_CONTINUOUS or SNDRV_DMA_TYPE_VMALLOC type. **Return** the snd_dma_buffer object at success, or NULL if failedh](jg)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjRh]hstruct device *dev}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhKhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhjRubj)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjSh]hint type}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjSubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hj.ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*ShKhj+Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj*ShKhjRubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjNSh]henum dma_data_direction dir}(hjPShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjHSubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjgShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjcShKhjdSubah}(h]h ]h"]h$]h&]uh1jhjHSubeh}(h]h ]h"]h$]h&]uh1jhjcShKhjRubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjSh]h size_t size}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjSubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjRubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubjg)}(hAllocate buffer pages depending on the given type and manage using devres. The pages will be released automatically at the device removal.h]hAllocate buffer pages depending on the given type and manage using devres. The pages will be released automatically at the device removal.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubjg)}(hUnlike snd_dma_alloc_pages(), this function requires the real device pointer, hence it can't work with SNDRV_DMA_TYPE_CONTINUOUS or SNDRV_DMA_TYPE_VMALLOC type.h]hUnlike snd_dma_alloc_pages(), this function requires the real device pointer, hence it can’t work with SNDRV_DMA_TYPE_CONTINUOUS or SNDRV_DMA_TYPE_VMALLOC type.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubjg)}(h **Return**h]j)}(hjSh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubjg)}(h7the snd_dma_buffer object at success, or NULL if failedh]h7the snd_dma_buffer object at success, or NULL if failed}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_mmap (C function)c.snd_dma_buffer_mmaphNtauh1hhj<hhhNhNubh)}(hhh](h)}(hRint snd_dma_buffer_mmap (struct snd_dma_buffer *dmab, struct vm_area_struct *area)h]h)}(hQint snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](h)}(hinth]hint}(hj=ThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9Thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjLThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ThhhjKThKubj)}(hsnd_dma_buffer_mmaph]j%)}(hsnd_dma_buffer_mmaph]hsnd_dma_buffer_mmap}(hj^ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9ThhhjKThKubj@)}(h:(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjzThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvTubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jj`Tsbc.snd_dma_buffer_mmapasbuh1hhjvTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvTubj%)}(hdmabh]hdmab}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrTubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hj UhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj UmodnameN classnameNjj)}j]jTc.snd_dma_buffer_mmapasbuh1hhjTubj)}(h h]h }(hj(UhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hj6UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hareah]harea}(hjCUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrTubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj9ThhhjKThKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj5ThhhjKThKubah}(h]j0Tah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKThKhj2Thhubjb)}(hhh]jg)}(h$perform mmap of the given DMA bufferh]h$perform mmap of the given DMA buffer}(hjmUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjjUhhubah}(h]h ]h"]h$]h&]uh1jahj2ThhhjKThKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj<hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``struct vm_area_struct *area`` VM area information **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjUh]hstruct snd_dma_buffer *dmab}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjUubj)}(h4``struct vm_area_struct *area`` VM area information h](j)}(h``struct vm_area_struct *area``h]j)}(hjUh]hstruct vm_area_struct *area}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubj)}(hhh]jg)}(hVM area informationh]hVM area information}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjUubeh}(h]h ]h"]h$]h&]uh1jhjUubjg)}(h **Return**h]j)}(hj"Vh]hReturn}(hj$VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Vubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj8VhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_sync (C function)c.snd_dma_buffer_synchNtauh1hhj<hhhNhNubh)}(hhh](h)}(hSvoid snd_dma_buffer_sync (struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h]h)}(hRvoid snd_dma_buffer_sync(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](h)}(hvoidh]hvoid}(hjgVhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcVhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjvVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcVhhhjuVhKubj)}(hsnd_dma_buffer_synch]j%)}(hsnd_dma_buffer_synch]hsnd_dma_buffer_sync}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjcVhhhjuVhKubj@)}(h:(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjVsbc.snd_dma_buffer_syncasbuh1hhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hdmabh]hdmab}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubjF)}(henum snd_dma_sync_mode modeh](jL)}(hj'h]henum}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWubj)}(h h]h }(hj#WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(hsnd_dma_sync_modeh]hsnd_dma_sync_mode}(hj4WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1Wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6WmodnameN classnameNjj)}j]jVc.snd_dma_buffer_syncasbuh1hhjWubj)}(h h]h }(hjRWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hmodeh]hmode}(hj`WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjcVhhhjuVhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_VhhhjuVhKubah}(h]jZVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuVhKhj\Vhhubjb)}(hhh]jg)}(h&sync DMA buffer between CPU and deviceh]h&sync DMA buffer between CPU and device}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjWhhubah}(h]h ]h"]h$]h&]uh1jahj\VhhhjuVhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1hhhhj<hNhNubj)}(h|**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``enum snd_dma_sync_mode mode`` sync modeh](jg)}(h**Parameters**h]j)}(hjWh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjWubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjWh]hstruct snd_dma_buffer *dmab}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjWubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhKhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhjWubj)}(h)``enum snd_dma_sync_mode mode`` sync modeh](j)}(h``enum snd_dma_sync_mode mode``h]j)}(hjXh]henum snd_dma_sync_mode mode}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjWubj)}(hhh]jg)}(h sync modeh]h sync mode}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjXubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjWubeh}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_addr (C function)c.snd_sgbuf_get_addrhNtauh1hhj<hhhNhNubh)}(hhh](h)}(hJdma_addr_t snd_sgbuf_get_addr (struct snd_dma_buffer *dmab, size_t offset)h]h)}(hIdma_addr_t snd_sgbuf_get_addr(struct snd_dma_buffer *dmab, size_t offset)h](h)}(hhh]j%)}(h dma_addr_th]h dma_addr_t}(hjaXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcXmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_addrsbc.snd_sgbuf_get_addrasbuh1hhjZXhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZXhhhjXhKubj)}(hsnd_sgbuf_get_addrh]j%)}(hjXh]hsnd_sgbuf_get_addr}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjZXhhhjXhKubj@)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j}Xc.snd_sgbuf_get_addrasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hdmabh]hdmab}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(h size_t offseth](h)}(hhh]j%)}(hsize_th]hsize_t}(hj#YhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%YmodnameN classnameNjj)}j]j}Xc.snd_sgbuf_get_addrasbuh1hhjYubj)}(h h]h }(hjAYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hoffseth]hoffset}(hjOYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjZXhhhjXhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVXhhhjXhKubah}(h]jQXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjXhKhjSXhhubjb)}(hhh]jg)}(h7return the physical address at the corresponding offseth]h7return the physical address at the corresponding offset}(hjyYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjvYhhubah}(h]h ]h"]h$]h&]uh1jahjSXhhhjXhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYjjYjjjuh1hhhhj<hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``size_t offset`` offset in the ring buffer **Return** the physical addressh](jg)}(h**Parameters**h]j)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjYh]hstruct snd_dma_buffer *dmab}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjYubj)}(h,``size_t offset`` offset in the ring buffer h](j)}(h``size_t offset``h]j)}(hjYh]h size_t offset}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhj Zubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjYubeh}(h]h ]h"]h$]h&]uh1jhjYubjg)}(h **Return**h]j)}(hj.Zh]hReturn}(hj0ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Zubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYubjg)}(hthe physical addressh]hthe physical address}(hjDZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_page (C function)c.snd_sgbuf_get_pagehNtauh1hhj<hhhNhNubh)}(hhh](h)}(hMstruct page * snd_sgbuf_get_page (struct snd_dma_buffer *dmab, size_t offset)h]h)}(hKstruct page *snd_sgbuf_get_page(struct snd_dma_buffer *dmab, size_t offset)h](jL)}(hjOh]hstruct}(hjsZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoZhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoZhhhjZhKubh)}(hhh]j%)}(hpageh]hpage}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_pagesbc.snd_sgbuf_get_pageasbuh1hhjoZhhhjZhKubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoZhhhjZhKubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoZhhhjZhKubj)}(hsnd_sgbuf_get_pageh]j%)}(hjZh]hsnd_sgbuf_get_page}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjoZhhhjZhKubj@)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj [hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj [modnameN classnameNjj)}j]jZc.snd_sgbuf_get_pageasbuh1hhjZubj)}(h h]h }(hj)[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hj7[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(hdmabh]hdmab}(hjD[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(h size_t offseth](h)}(hhh]j%)}(hsize_th]hsize_t}(hj`[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj][ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb[modnameN classnameNjj)}j]jZc.snd_sgbuf_get_pageasbuh1hhjY[ubj)}(h h]h }(hj~[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjY[ubj%)}(hoffseth]hoffset}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjY[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjoZhhhjZhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkZhhhjZhKubah}(h]jfZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhKhjhZhhubjb)}(hhh]jg)}(h4return the physical page at the corresponding offseth]h4return the physical page at the corresponding offset}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[hhubah}(h]h ]h"]h$]h&]uh1jahjhZhhhjZhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj[jj[jjjuh1hhhhj<hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``size_t offset`` offset in the ring buffer **Return** the page pointerh](jg)}(h**Parameters**h]j)}(hj[h]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[ubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hj[h]hstruct snd_dma_buffer *dmab}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[ubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj \hKhj \ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj \hKhj[ubj)}(h,``size_t offset`` offset in the ring buffer h](j)}(h``size_t offset``h]j)}(hj0\h]h size_t offset}(hj2\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.\ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj*\ubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjI\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE\hKhjF\ubah}(h]h ]h"]h$]h&]uh1jhj*\ubeh}(h]h ]h"]h$]h&]uh1jhjE\hKhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[ubjg)}(h **Return**h]j)}(hjk\h]hReturn}(hjm\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji\ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[ubjg)}(hthe page pointerh]hthe page pointer}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_sgbuf_get_chunk_size (C function)c.snd_sgbuf_get_chunk_sizehNtauh1hhj<hhhNhNubh)}(hhh](h)}(hhunsigned int snd_sgbuf_get_chunk_size (struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h]h)}(hgunsigned int snd_sgbuf_get_chunk_size(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](h)}(hunsignedh]hunsigned}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhj\hMubh)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\hhhj\hMubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhj\hMubj)}(hsnd_sgbuf_get_chunk_sizeh]j%)}(hsnd_sgbuf_get_chunk_sizeh]hsnd_sgbuf_get_chunk_size}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhj\hMubj@)}(hB(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj ]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj']hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)]modnameN classnameNjj)}j]j)}jj\sbc.snd_sgbuf_get_chunk_sizeasbuh1hhj]ubj)}(h h]h }(hjG]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hjU]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj%)}(hdmabh]hdmab}(hjb]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj]ubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj{]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjw]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw]ubh)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjw]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw]ubj%)}(hofsh]hofs}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjw]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj]ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj%)}(hsizeh]hsize}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj]ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj\hhhj\hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj\hhhj\hMubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hMhj\hhubjb)}(hhh]jg)}(h=compute the max chunk size with continuous pages on sg-bufferh]h=compute the max chunk size with continuous pages on sg-buffer}(hj.^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMhj+^hhubah}(h]h ]h"]h$]h&]uh1jahj\hhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjF^jjF^jjjuh1hhhhj<hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``unsigned int ofs`` offset in the ring buffer ``unsigned int size`` the requested size **Return** the chunk sizeh](jg)}(h**Parameters**h]j)}(hjP^h]h Parameters}(hjR^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN^ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hjJ^ubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjo^h]hstruct snd_dma_buffer *dmab}(hjq^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm^ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hji^ubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hM hj^ubah}(h]h ]h"]h$]h&]uh1jhji^ubeh}(h]h ]h"]h$]h&]uh1jhj^hM hjf^ubj)}(h/``unsigned int ofs`` offset in the ring buffer h](j)}(h``unsigned int ofs``h]j)}(hj^h]hunsigned int ofs}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj^ubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hM hj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hM hjf^ubj)}(h)``unsigned int size`` the requested size h](j)}(h``unsigned int size``h]j)}(hj^h]hunsigned int size}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj^ubj)}(hhh]jg)}(hthe requested sizeh]hthe requested size}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hM hj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hM hjf^ubeh}(h]h ]h"]h$]h&]uh1jhjJ^ubjg)}(h **Return**h]j)}(hj_h]hReturn}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hjJ^ubjg)}(hthe chunk sizeh]hthe chunk size}(hj2_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hjJ^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubeh}(h]memory-management-helpersah ]h"]memory management helpersah$]h&]uh1hhhhhhhhKubeh}(h]management-of-cards-and-devicesah ]h"]management of cards and devicesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPCM APIh]hPCM API}(hj[_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX_hhhhhKubh)}(hhh](h)}(hPCM Coreh]hPCM Core}(hjl_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji_hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_format_name (C function)c.snd_pcm_format_namehNtauh1hhji_hhhNhNubh)}(hhh](h)}(h:const char * snd_pcm_format_name (snd_pcm_format_t format)h]h)}(h8const char *snd_pcm_format_name(snd_pcm_format_t format)h](jL)}(hj\h]hconst}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj_hhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_hhhj_hKubh)}(hcharh]hchar}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_hhhj_hKubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_hhhj_hKubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhhj_hKubj)}(hsnd_pcm_format_nameh]j%)}(hsnd_pcm_format_nameh]hsnd_pcm_format_name}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_hhhj_hKubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj_sbc.snd_pcm_format_nameasbuh1hhj_ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj%)}(hformath]hformat}(hj)`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj_hhhj_hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_hhhj_hKubah}(h]j_ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_hKhj_hhubjb)}(hhh]jg)}(h-Return a name string for the given PCM formath]h-Return a name string for the given PCM format}(hjS`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhjP`hhubah}(h]h ]h"]h$]h&]uh1jahj_hhhj_hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjk`jjk`jjjuh1hhhhji_hNhNubj)}(h\**Parameters** ``snd_pcm_format_t format`` PCM format **Return** the format name stringh](jg)}(h**Parameters**h]j)}(hju`h]h Parameters}(hjw`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs`ubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhjo`ubj)}(hhh]j)}(h'``snd_pcm_format_t format`` PCM format h](j)}(h``snd_pcm_format_t format``h]j)}(hj`h]hsnd_pcm_format_t format}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj`ubj)}(hhh]jg)}(h PCM formath]h PCM format}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhjo`ubjg)}(h **Return**h]j)}(hj`h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhjo`ubjg)}(hthe format name stringh]hthe format name string}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhjo`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_new_stream (C function)c.snd_pcm_new_streamhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hMint snd_pcm_new_stream (struct snd_pcm *pcm, int stream, int substream_count)h]h)}(hLint snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)h](h)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjahhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMsubj)}(h h]h }(hj#ahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhj"ahMsubj)}(hsnd_pcm_new_streamh]j%)}(hsnd_pcm_new_streamh]hsnd_pcm_new_stream}(hj5ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1aubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjahhhj"ahMsubj@)}(h6(struct snd_pcm *pcm, int stream, int substream_count)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjQahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMaubj)}(h h]h }(hj^ahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMaubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjoahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqamodnameN classnameNjj)}j]j)}jj7asbc.snd_pcm_new_streamasbuh1hhjMaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMaubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMaubj%)}(hpcmh]hpcm}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIaubjF)}(h int streamh](h)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hstreamh]hstream}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIaubjF)}(hint substream_counth](h)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hsubstream_counth]hsubstream_count}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjahhhj"ahMsubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj ahhhj"ahMsubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"ahMshj ahhubjb)}(hhh]jg)}(hcreate a new PCM streamh]hcreate a new PCM stream}(hj>bhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghj;bhhubah}(h]h ]h"]h$]h&]uh1jahj ahhhj"ahMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVbjjVbjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int stream`` the stream direction, SNDRV_PCM_STREAM_XXX ``int substream_count`` the number of substreams **Description** Creates a new stream for the pcm. The corresponding stream on the pcm must have been empty before calling this, i.e. zero must be given to the argument of snd_pcm_new(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj`bh]h Parameters}(hjbbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^bubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMkhjZbubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjbh]hstruct snd_pcm *pcm}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}bubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhjybubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhhjbubah}(h]h ]h"]h$]h&]uh1jhjybubeh}(h]h ]h"]h$]h&]uh1jhjbhMhhjvbubj)}(h:``int stream`` the stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int stream``h]j)}(hjbh]h int stream}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMihjbubj)}(hhh]jg)}(h*the stream direction, SNDRV_PCM_STREAM_XXXh]h*the stream direction, SNDRV_PCM_STREAM_XXX}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMihjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMihjvbubj)}(h1``int substream_count`` the number of substreams h](j)}(h``int substream_count``h]j)}(hjbh]hint substream_count}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjbubj)}(hhh]jg)}(hthe number of substreamsh]hthe number of substreams}(hj chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMjhjcubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjchMjhjvbubeh}(h]h ]h"]h$]h&]uh1jhjZbubjg)}(h**Description**h]j)}(hj,ch]h Description}(hj.chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*cubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMlhjZbubjg)}(hCreates a new stream for the pcm. The corresponding stream on the pcm must have been empty before calling this, i.e. zero must be given to the argument of snd_pcm_new().h]hCreates a new stream for the pcm. The corresponding stream on the pcm must have been empty before calling this, i.e. zero must be given to the argument of snd_pcm_new().}(hjBchhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMlhjZbubjg)}(h **Return**h]j)}(hjSch]hReturn}(hjUchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQcubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMqhjZbubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjichhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMqhjZbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_new (C function) c.snd_pcm_newhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_new (struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h]h)}(hint snd_pcm_new(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](h)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjchMubj)}(h snd_pcm_newh]j%)}(h snd_pcm_newh]h snd_pcm_new}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjchhhjchMubj@)}(hq(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jjcsb c.snd_pcm_newasbuh1hhjcubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hj!dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hcardh]hcard}(hj.dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjGdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCdubj)}(h h]h }(hjTdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCdubh)}(hcharh]hchar}(hjbdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjCdubj)}(h h]h }(hjpdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCdubj)}(hjh]h*}(hj~dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCdubj%)}(hidh]hid}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(h int deviceh](h)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hdeviceh]hdevice}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(hint playback_counth](h)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hplayback_counth]hplayback_count}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(hint capture_counth](h)}(hinth]hint}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj eubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj eubj%)}(h capture_counth]h capture_count}(hj*ehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj eubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(hstruct snd_pcm **rpcmh](jL)}(hjOh]hstruct}(hjCehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?eubj)}(h h]h }(hjPehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?eubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjaehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^eubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcemodnameN classnameNjj)}j]jd c.snd_pcm_newasbuh1hhj?eubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?eubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?eubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?eubj%)}(hrpcmh]hrpcm}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?eubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjchhhjchMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjchMubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchMhjchhubjb)}(hhh]jg)}(hcreate a new PCM instanceh]hcreate a new PCM instance}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjehhubah}(h]h ]h"]h$]h&]uh1jahjchhhjchMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1hhhhji_hNhNubj)}(hX"**Parameters** ``struct snd_card *card`` the card instance ``const char *id`` the id string ``int device`` the device index (zero based) ``int playback_count`` the number of substreams for playback ``int capture_count`` the number of substreams for capture ``struct snd_pcm **rpcm`` the pointer to store the new pcm instance **Description** Creates a new PCM instance. The pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjeh]h Parameters}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjfh]hstruct snd_card *card}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj fubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj+fhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'fhMhj(fubah}(h]h ]h"]h$]h&]uh1jhj fubeh}(h]h ]h"]h$]h&]uh1jhj'fhMhj fubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hjKfh]hconst char *id}(hjMfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjEfubj)}(hhh]jg)}(h the id stringh]h the id string}(hjdfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`fhMhjafubah}(h]h ]h"]h$]h&]uh1jhjEfubeh}(h]h ]h"]h$]h&]uh1jhj`fhMhj fubj)}(h-``int device`` the device index (zero based) h](j)}(h``int device``h]j)}(hjfh]h int device}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj~fubj)}(hhh]jg)}(hthe device index (zero based)h]hthe device index (zero based)}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jhj~fubeh}(h]h ]h"]h$]h&]uh1jhjfhMhj fubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hjfh]hint playback_count}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjfubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhMhj fubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjfh]hint capture_count}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjfubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ghMhj gubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhj ghMhj fubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hj/gh]hstruct snd_pcm **rpcm}(hj1ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-gubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj)gubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjHghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDghMhjEgubah}(h]h ]h"]h$]h&]uh1jhj)gubeh}(h]h ]h"]h$]h&]uh1jhjDghMhj fubeh}(h]h ]h"]h$]h&]uh1jhjeubjg)}(h**Description**h]j)}(hjjgh]h Description}(hjlghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhgubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubjg)}(hCreates a new PCM instance.h]hCreates a new PCM instance.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubjg)}(hVThe pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops().h]hVThe pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops().}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubjg)}(h **Return**h]j)}(hjgh]hReturn}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_new_internal (C function)c.snd_pcm_new_internalhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_new_internal (struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h]h)}(hint snd_pcm_new_internal(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjghMubj)}(hsnd_pcm_new_internalh]j%)}(hsnd_pcm_new_internalh]hsnd_pcm_new_internal}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjghhhjghMubj@)}(hq(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj"hhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hj/hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj@hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBhmodnameN classnameNjj)}j]j)}jjhsbc.snd_pcm_new_internalasbuh1hhjhubj)}(h h]h }(hj`hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjnhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hcardh]hcard}(hj{hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hcharh]hchar}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hidh]hid}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(h int deviceh](h)}(hinth]hint}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj%)}(hdeviceh]hdevice}(hj ihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(hint playback_counth](h)}(hinth]hint}(hj&ihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"iubj)}(h h]h }(hj4ihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"iubj%)}(hplayback_counth]hplayback_count}(hjBihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"iubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(hint capture_counth](h)}(hinth]hint}(hj[ihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWiubj)}(h h]h }(hjiihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWiubj%)}(h capture_counth]h capture_count}(hjwihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(hstruct snd_pcm **rpcmh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j\hc.snd_pcm_new_internalasbuh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(hrpcmh]hrpcm}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjghMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjghhhjghMubah}(h]jgah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghMhjghhubjb)}(hhh]jg)}(h"create a new internal PCM instanceh]h"create a new internal PCM instance}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjjhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjghMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jjj6jjjjuh1hhhhji_hNhNubj)}(hXf**Parameters** ``struct snd_card *card`` the card instance ``const char *id`` the id string ``int device`` the device index (zero based - shared with normal PCMs) ``int playback_count`` the number of substreams for playback ``int capture_count`` the number of substreams for capture ``struct snd_pcm **rpcm`` the pointer to store the new pcm instance **Description** Creates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data. The pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj@jh]h Parameters}(hjBjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>jubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hj:jubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj_jh]hstruct snd_card *card}(hjajhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]jubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjYjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjxjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjtjhM hjujubah}(h]h ]h"]h$]h&]uh1jhjYjubeh}(h]h ]h"]h$]h&]uh1jhjtjhM hjVjubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hjjh]hconst char *id}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjjubj)}(hhh]jg)}(h the id stringh]h the id string}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhM hjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhM hjVjubj)}(hG``int device`` the device index (zero based - shared with normal PCMs) h](j)}(h``int device``h]j)}(hjjh]h int device}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjjubj)}(hhh]jg)}(h7the device index (zero based - shared with normal PCMs)h]h7the device index (zero based - shared with normal PCMs)}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhM hjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhM hjVjubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hj kh]hint playback_count}(hj khhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjkubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hj#khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhM hj kubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhM hjVjubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjCkh]hint capture_count}(hjEkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAkubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hj=kubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hj\khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXkhM hjYkubah}(h]h ]h"]h$]h&]uh1jhj=kubeh}(h]h ]h"]h$]h&]uh1jhjXkhM hjVjubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hj|kh]hstruct snd_pcm **rpcm}(hj~khhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzkubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjvkubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjvkubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjVjubeh}(h]h ]h"]h$]h&]uh1jhj:jubjg)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj:jubjg)}(hXECreates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data.h]hXECreates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj:jubjg)}(hVThe pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops().h]hVThe pcm operators have to be set afterwards to the new instance via snd_pcm_set_ops().}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj:jubjg)}(h **Return**h]j)}(hjkh]hReturn}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj:jubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj:jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_notify (C function)c.snd_pcm_notifyhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h=int snd_pcm_notify (struct snd_pcm_notify *notify, int nfree)h]h)}(huh1jhj.lhhhj@lhMpubj@)}(h*(struct snd_pcm_notify *notify, int nfree)h](jF)}(hstruct snd_pcm_notify *notifyh](jL)}(hjOh]hstruct}(hjolhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjklubj)}(h h]h }(hj|lhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjklubh)}(hhh]j%)}(hsnd_pcm_notifyh]hsnd_pcm_notify}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j)}jjUlsbc.snd_pcm_notifyasbuh1hhjklubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjklubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjklubj%)}(hnotifyh]hnotify}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjklubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjglubjF)}(h int nfreeh](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj%)}(hnfreeh]hnfree}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjglubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj.lhhhj@lhMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj*lhhhj@lhMpubah}(h]j%lah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@lhMphj'lhhubjb)}(hhh]jg)}(hAdd/remove the notify listh]hAdd/remove the notify list}(hj'mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMfhj$mhhubah}(h]h ]h"]h$]h&]uh1jahj'lhhhj@lhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?mjj?mjjjuh1hhhhji_hNhNubj)}(hX^**Parameters** ``struct snd_pcm_notify *notify`` PCM notify list ``int nfree`` 0 = register, 1 = unregister **Description** This adds the given notifier to the global list so that the callback is called for each registered PCM devices. This exists only for PCM OSS emulation, so far. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjImh]h Parameters}(hjKmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGmubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjCmubj)}(hhh](j)}(h2``struct snd_pcm_notify *notify`` PCM notify list h](j)}(h!``struct snd_pcm_notify *notify``h]j)}(hjhmh]hstruct snd_pcm_notify *notify}(hjjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfmubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghjbmubj)}(hhh]jg)}(hPCM notify listh]hPCM notify list}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}mhMghj~mubah}(h]h ]h"]h$]h&]uh1jhjbmubeh}(h]h ]h"]h$]h&]uh1jhj}mhMghj_mubj)}(h+``int nfree`` 0 = register, 1 = unregister h](j)}(h ``int nfree``h]j)}(hjmh]h int nfree}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhjmubj)}(hhh]jg)}(h0 = register, 1 = unregisterh]h0 = register, 1 = unregister}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhMhhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhMhhj_mubeh}(h]h ]h"]h$]h&]uh1jhjCmubjg)}(h**Description**h]j)}(hjmh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjCmubjg)}(hThis adds the given notifier to the global list so that the callback is called for each registered PCM devices. This exists only for PCM OSS emulation, so far.h]hThis adds the given notifier to the global list so that the callback is called for each registered PCM devices. This exists only for PCM OSS emulation, so far.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjCmubjg)}(h **Return**h]j)}(hjnh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMnhjCmubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMnhjCmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_set_ops (C function)c.snd_pcm_set_opshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hXvoid snd_pcm_set_ops (struct snd_pcm *pcm, int direction, const struct snd_pcm_ops *ops)h]h)}(hWvoid snd_pcm_set_ops(struct snd_pcm *pcm, int direction, const struct snd_pcm_ops *ops)h](h)}(hvoidh]hvoid}(hjHnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDnhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjWnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDnhhhjVnhMubj)}(hsnd_pcm_set_opsh]j%)}(hsnd_pcm_set_opsh]hsnd_pcm_set_ops}(hjinhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjenubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjDnhhhjVnhMubj@)}(hC(struct snd_pcm *pcm, int direction, const struct snd_pcm_ops *ops)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jjknsbc.snd_pcm_set_opsasbuh1hhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hpcmh]hpcm}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}nubjF)}(h int directionh](h)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj%)}(h directionh]h direction}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}nubjF)}(hconst struct snd_pcm_ops *opsh](jL)}(hj\h]hconst}(hj,ohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(oubj)}(h h]h }(hj9ohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(oubjL)}(hjOh]hstruct}(hjGohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(oubj)}(h h]h }(hjTohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(oubh)}(hhh]j%)}(h snd_pcm_opsh]h snd_pcm_ops}(hjeohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjboubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgomodnameN classnameNjj)}j]jnc.snd_pcm_set_opsasbuh1hhj(oubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(oubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(oubj%)}(hopsh]hops}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(oubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}nubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjDnhhhjVnhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@nhhhjVnhMubah}(h]j;nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjVnhMhj=nhhubjb)}(hhh]jg)}(hset the PCM operatorsh]hset the PCM operators}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjohhubah}(h]h ]h"]h$]h&]uh1jahj=nhhhjVnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int direction`` stream direction, SNDRV_PCM_STREAM_XXX ``const struct snd_pcm_ops *ops`` the operator table **Description** Sets the given PCM operators to the pcm instance.h](jg)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjoubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj ph]hstruct snd_pcm *pcm}(hj phhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjpubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj"phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphMhjpubj)}(h9``int direction`` stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hjBph]h int direction}(hjDphhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@pubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjuh1jhjphhhj qhM ubj@)}(hr(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, const unsigned char *id, unsigned int len)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj8qhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4qubj)}(h h]h }(hjEqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4qubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjVqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXqmodnameN classnameNjj)}j]j)}jjqsbc.snd_pcm_set_sync_per_cardasbuh1hhj4qubj)}(h h]h }(hjvqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4qubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4qubj%)}(h substreamh]h substream}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4qubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0qubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jrqc.snd_pcm_set_sync_per_cardasbuh1hhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj%)}(hparamsh]hparams}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0qubjF)}(hconst unsigned char *idh](jL)}(hj\h]hconst}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hj'rhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hunsignedh]hunsigned}(hj5rhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjCrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hcharh]hchar}(hjQrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hj_rhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjmrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hidh]hid}(hjzrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0qubjF)}(hunsigned int lenh](h)}(hunsignedh]hunsigned}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(hlenh]hlen}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0qubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjphhhj qhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjphhhj qhM ubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj qhM hjphhubjb)}(hhh]jg)}(h$set the PCM sync id with card numberh]h$set the PCM sync id with card number}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjrhhubah}(h]h ]h"]h$]h&]uh1jahjphhhj qhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj sjj sjjjuh1hhhhji_hNhNubj)}(hX3**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream ``struct snd_pcm_hw_params *params`` modified hardware parameters ``const unsigned char *id`` identifier (max 12 bytes) ``unsigned int len`` identifier length (max 12 bytes) **Description** Sets the PCM sync identifier for the card with zero padding. User space or any user should use this 16-byte identifier for a comparison only to check if two IDs are similar or different. Special case is the identifier containing only zeros. Interpretation for this combination is - empty (not set). The contents of the identifier should not be interpreted in any other way. The synchronization ID must be unique per clock source (usually one sound card, but multiple soundcard may use one PCM word clock source which means that they are fully synchronized). This routine composes this ID using card number in first four bytes and 12-byte additional ID. When other ID composition is used (e.g. for multiple sound cards), make sure that the composition does not clash with this composition scheme.h](jg)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjsubj)}(hhh](j)}(h:``struct snd_pcm_substream *substream`` the pcm substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj6sh]h#struct snd_pcm_substream *substream}(hj8shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4subah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj0subj)}(hhh]jg)}(hthe pcm substreamh]hthe pcm substream}(hjOshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKshM hjLsubah}(h]h ]h"]h$]h&]uh1jhj0subeh}(h]h ]h"]h$]h&]uh1jhjKshM hj-subj)}(hB``struct snd_pcm_hw_params *params`` modified hardware parameters h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjosh]h struct snd_pcm_hw_params *params}(hjqshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmsubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjisubj)}(hhh]jg)}(hmodified hardware parametersh]hmodified hardware parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM hjsubah}(h]h ]h"]h$]h&]uh1jhjisubeh}(h]h ]h"]h$]h&]uh1jhjshM hj-subj)}(h6``const unsigned char *id`` identifier (max 12 bytes) h](j)}(h``const unsigned char *id``h]j)}(hjsh]hconst unsigned char *id}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjsubj)}(hhh]jg)}(hidentifier (max 12 bytes)h]hidentifier (max 12 bytes)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshM hj-subj)}(h6``unsigned int len`` identifier length (max 12 bytes) h](j)}(h``unsigned int len``h]j)}(hjsh]hunsigned int len}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjsubj)}(hhh]jg)}(h identifier length (max 12 bytes)h]h identifier length (max 12 bytes)}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMhj-subeh}(h]h ]h"]h$]h&]uh1jhjsubjg)}(h**Description**h]j)}(hjth]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjsubjg)}(huh1jhjthhhjthMrubj@)}(h6(struct snd_interval *i, const struct snd_interval *v)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjtsbc.snd_interval_refineasbuh1hhjtubj)}(h h]h }(hj uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hih]hi}(hj$uhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hconst struct snd_interval *vh](jL)}(hj\h]hconst}(hj=uhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9uubj)}(h h]h }(hjJuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9uubjL)}(hjOh]hstruct}(hjXuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9uubj)}(h h]h }(hjeuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9uubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjvuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxumodnameN classnameNjj)}j]juc.snd_interval_refineasbuh1hhj9uubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9uubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9uubj%)}(hvh]hv}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjthhhjthMrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjthhhjthMrubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthMrhjthhubjb)}(hhh]jg)}(h)refine the interval value of configuratorh]h)refine the interval value of configurator}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMghjuhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjthMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` the interval value to refine ``const struct snd_interval *v`` the interval value to refer to **Description** Refines the interval value with the reference value. The interval is changed to the range satisfying both intervals. The interval status (min, max, integer, etc.) are evaluated. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjuubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjvh]hstruct snd_interval *i}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhhjvubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hj3vhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/vhMhhj0vubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhj/vhMhhjvubj)}(h@``const struct snd_interval *v`` the interval value to refer to h](j)}(h ``const struct snd_interval *v``h]j)}(hjSvh]hconst struct snd_interval *v}(hjUvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMihjMvubj)}(hhh]jg)}(hthe interval value to refer toh]hthe interval value to refer to}(hjlvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhvhMihjivubah}(h]h ]h"]h$]h&]uh1jhjMvubeh}(h]h ]h"]h$]h&]uh1jhjhvhMihjvubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjuubjg)}(hRefines the interval value with the reference value. The interval is changed to the range satisfying both intervals. The interval status (min, max, integer, etc.) are evaluated.h]hRefines the interval value with the reference value. The interval is changed to the range satisfying both intervals. The interval status (min, max, integer, etc.) are evaluated.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjuubjg)}(h **Return**h]j)}(hjvh]hReturn}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMohjuubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMohjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_interval_div (C function)c.snd_interval_divhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hjvoid snd_interval_div (const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c)h]h)}(hivoid snd_interval_div(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c)h](h)}(hvoidh]hvoid}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvhhhjwhMubj)}(hsnd_interval_divh]j%)}(hsnd_interval_divh]hsnd_interval_div}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvhhhjwhMubj@)}(hT(const struct snd_interval *a, const struct snd_interval *b, struct snd_interval *c)h](jF)}(hconst struct snd_interval *ah](jL)}(hj\h]hconst}(hj7whhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3wubj)}(h h]h }(hjDwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3wubjL)}(hjOh]hstruct}(hjRwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3wubj)}(h h]h }(hj_whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3wubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjpwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrwmodnameN classnameNjj)}j]j)}jjwsbc.snd_interval_divasbuh1hhj3wubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3wubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3wubj%)}(hah]ha}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3wubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/wubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubjL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jwc.snd_interval_divasbuh1hhjwubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hj)xhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hbh]hb}(hj6xhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/wubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hjOxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKxubj)}(h h]h }(hj\xhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKxubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjmxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjoxmodnameN classnameNjj)}j]jwc.snd_interval_divasbuh1hhjKxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKxubj%)}(hjh]hc}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/wubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjvhhhjwhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjwhMubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjwhMhjvhhubjb)}(hhh]jg)}(h'refine the interval value with divisionh]h'refine the interval value with division}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjwhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``const struct snd_interval *a`` dividend ``const struct snd_interval *b`` divisor ``struct snd_interval *c`` quotient **Description** c = a / b Returns non-zero if the value is changed, zero if not changed.h](jg)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj)}(hhh](j)}(h*``const struct snd_interval *a`` dividend h](j)}(h ``const struct snd_interval *a``h]j)}(hjyh]hconst struct snd_interval *a}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj yubj)}(hhh]jg)}(hdividendh]hdividend}(hj)yhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%yhMhj&yubah}(h]h ]h"]h$]h&]uh1jhj yubeh}(h]h ]h"]h$]h&]uh1jhj%yhMhjyubj)}(h)``const struct snd_interval *b`` divisor h](j)}(h ``const struct snd_interval *b``h]j)}(hjIyh]hconst struct snd_interval *b}(hjKyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGyubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjCyubj)}(hhh]jg)}(hdivisorh]hdivisor}(hjbyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^yhMhj_yubah}(h]h ]h"]h$]h&]uh1jhjCyubeh}(h]h ]h"]h$]h&]uh1jhj^yhMhjyubj)}(h$``struct snd_interval *c`` quotient h](j)}(h``struct snd_interval *c``h]j)}(hjyh]hstruct snd_interval *c}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|yubj)}(hhh]jg)}(hquotienth]hquotient}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jhj|yubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjyubeh}(h]h ]h"]h$]h&]uh1jhjxubjg)}(h**Description**h]j)}(hjyh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubjg)}(h c = a / bh]h c = a / b}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubjg)}(h>Returns non-zero if the value is changed, zero if not changed.h]h>Returns non-zero if the value is changed, zero if not changed.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_interval_muldivk (C function)c.snd_interval_muldivkhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h~void snd_interval_muldivk (const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h]h)}(h}void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h](h)}(hvoidh]hvoid}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj zhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj zhhhjzhMubj)}(hsnd_interval_muldivkh]j%)}(hsnd_interval_muldivkh]hsnd_interval_muldivk}(hj2zhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.zubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj zhhhjzhMubj@)}(hd(const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h](jF)}(hconst struct snd_interval *ah](jL)}(hj\h]hconst}(hjNzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJzubj)}(h h]h }(hj[zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJzubjL)}(hjOh]hstruct}(hjizhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJzubj)}(h h]h }(hjvzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJzubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj4zsbc.snd_interval_muldivkasbuh1hhjJzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJzubj%)}(hjwh]ha}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFzubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]jzc.snd_interval_muldivkasbuh1hhjzubj)}(h h]h }(hj1{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hj?{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hj8xh]hb}(hjL{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFzubjF)}(hunsigned int kh](h)}(hunsignedh]hunsigned}(hjd{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`{ubj)}(h h]h }(hjr{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`{ubh)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`{ubj%)}(hjXh]hk}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFzubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hj{hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]jzc.snd_interval_muldivkasbuh1hhj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj%)}(hjh]hc}(hj |hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFzubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj zhhhjzhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj zhhhjzhMubah}(h]jzah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzhMhjzhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hj4|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj1|hhubah}(h]h ]h"]h$]h&]uh1jahjzhhhjzhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjL|jjL|jjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``const struct snd_interval *a`` dividend 1 ``const struct snd_interval *b`` dividend 2 ``unsigned int k`` divisor (as integer) ``struct snd_interval *c`` result **Description** c = a * b / k Returns non-zero if the value is changed, zero if not changed.h](jg)}(h**Parameters**h]j)}(hjV|h]h Parameters}(hjX|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT|ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjP|ubj)}(hhh](j)}(h,``const struct snd_interval *a`` dividend 1 h](j)}(h ``const struct snd_interval *a``h]j)}(hju|h]hconst struct snd_interval *a}(hjw|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs|ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjo|ubj)}(hhh]jg)}(h dividend 1h]h dividend 1}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj|ubah}(h]h ]h"]h$]h&]uh1jhjo|ubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjl|ubj)}(h,``const struct snd_interval *b`` dividend 2 h](j)}(h ``const struct snd_interval *b``h]j)}(hj|h]hconst struct snd_interval *b}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubj)}(hhh]jg)}(h dividend 2h]h dividend 2}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjl|ubj)}(h(``unsigned int k`` divisor (as integer) h](j)}(h``unsigned int k``h]j)}(hj|h]hunsigned int k}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubj)}(hhh]jg)}(hdivisor (as integer)h]hdivisor (as integer)}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjl|ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hj }h]hstruct snd_interval *c}(hj"}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubj)}(hhh]jg)}(hresulth]hresult}(hj9}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5}hMhj6}ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj5}hMhjl|ubeh}(h]h ]h"]h$]h&]uh1jhjP|ubjg)}(h**Description**h]j)}(hj[}h]h Description}(hj]}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY}ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjP|ubjg)}(h c = a * b / kh]h c = a * b / k}(hjq}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjP|ubjg)}(h>Returns non-zero if the value is changed, zero if not changed.h]h>Returns non-zero if the value is changed, zero if not changed.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjP|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_interval_mulkdiv (C function)c.snd_interval_mulkdivhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h~void snd_interval_mulkdiv (const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h]h)}(h}void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h](h)}(hvoidh]hvoid}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}hhhj}hMubj)}(hsnd_interval_mulkdivh]j%)}(hsnd_interval_mulkdivh]hsnd_interval_mulkdiv}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj}hhhj}hMubj@)}(hd(const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h](jF)}(hconst struct snd_interval *ah](jL)}(hj\h]hconst}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubjL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj%~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'~modnameN classnameNjj)}j]j)}jj}sbc.snd_interval_mulkdivasbuh1hhj}ubj)}(h h]h }(hjE~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjS~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hjwh]ha}(hj`~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}ubjF)}(hunsigned int kh](h)}(hunsignedh]hunsigned}(hjx~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjt~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjt~ubh)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjt~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjt~ubj%)}(hjXh]hk}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjt~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}ubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubjL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jA~c.snd_interval_mulkdivasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(hj8xh]hb}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}ubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jA~c.snd_interval_mulkdivasbuh1hhjNubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj%)}(hjh]hc}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj}ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj}hhhj}hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}hhhj}hMubah}(h]j}ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj}hMhj}hhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj}hhhj}hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``const struct snd_interval *a`` dividend 1 ``unsigned int k`` dividend 2 (as integer) ``const struct snd_interval *b`` divisor ``struct snd_interval *c`` result **Description** c = a * k / b Returns non-zero if the value is changed, zero if not changed.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h,``const struct snd_interval *a`` dividend 1 h](j)}(h ``const struct snd_interval *a``h]j)}(hjh]hconst struct snd_interval *a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh]jg)}(h dividend 1h]h dividend 1}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(hMhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhj ubj)}(h+``unsigned int k`` dividend 2 (as integer) h](j)}(h``unsigned int k``h]j)}(hjLh]hunsigned int k}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjFubj)}(hhh]jg)}(hdividend 2 (as integer)h]hdividend 2 (as integer)}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMhj ubj)}(h)``const struct snd_interval *b`` divisor h](j)}(h ``const struct snd_interval *b``h]j)}(hjh]hconst struct snd_interval *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hdivisorh]hdivisor}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hjh]hstruct snd_interval *c}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hresulth]hresult}(hj׀hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjӀhMhjԀubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjӀhMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h c = a * k / bh]h c = a * k / b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h>Returns non-zero if the value is changed, zero if not changed.h]h>Returns non-zero if the value is changed, zero if not changed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ratnum (C function)c.snd_interval_ratnumhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_interval_ratnum (struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h]h)}(hint snd_interval_ratnum(struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h](h)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM?ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhj[hM?ubj)}(hsnd_interval_ratnumh]j%)}(hsnd_interval_ratnumh]hsnd_interval_ratnum}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhj[hM?ubj@)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjpsbc.snd_interval_ratnumasbuh1hhjubj)}(h h]h }(hjȁhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjցhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hj&uh]hi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rats_counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h rats_counth]h rats_count}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst struct snd_ratnum *ratsh](jL)}(hj\h]hconst}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubjL)}(hjOh]hstruct}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hhh]j%)}(h snd_ratnumh]h snd_ratnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jāc.snd_interval_ratnumasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hratsh]hrats}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *numph](h)}(hunsignedh]hunsigned}(hjׂhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjӂubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjӂubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjӂubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjӂubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӂubj%)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjӂubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *denph](h)}(hunsignedh]hunsigned}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hdenph]hdenp}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhj[hM?ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhj[hM?ubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hM?hjBhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjhhubah}(h]h ]h"]h$]h&]uh1jahjBhhhj[hM?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` interval to refine ``unsigned int rats_count`` number of ratnum_t ``const struct snd_ratnum *rats`` ratnum_t array ``unsigned int *nump`` pointer to store the resultant numerator ``unsigned int *denp`` pointer to store the resultant denominator **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjƃh]h Parameters}(hjȃhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjăubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hj߃ubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhj߃ubeh}(h]h ]h"]h$]h&]uh1jhjhM6hj܃ubj)}(h/``unsigned int rats_count`` number of ratnum_t h](j)}(h``unsigned int rats_count``h]j)}(hjh]hunsigned int rats_count}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]jg)}(hnumber of ratnum_th]hnumber of ratnum_t}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3hM7hj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hM7hj܃ubj)}(h1``const struct snd_ratnum *rats`` ratnum_t array h](j)}(h!``const struct snd_ratnum *rats``h]j)}(hjWh]hconst struct snd_ratnum *rats}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjQubj)}(hhh]jg)}(hratnum_t arrayh]hratnum_t array}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhM8hjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhM8hj܃ubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hjh]hunsigned int *nump}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjubj)}(hhh]jg)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9hj܃ubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjɄh]hunsigned int *denp}(hj˄hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDŽubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjÄubj)}(hhh]jg)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjބhM:hj߄ubah}(h]h ]h"]h$]h&]uh1jhjÄubeh}(h]h ]h"]h$]h&]uh1jhjބhM:hj܃ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hjubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ratden (C function)c.snd_interval_ratdenhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_interval_ratden (struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h]h)}(hint snd_interval_ratden(struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h](h)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEhhhjWhMubj)}(hsnd_interval_ratdenh]j%)}(hsnd_interval_ratdenh]hsnd_interval_ratden}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjEhhhjWhMubj@)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjlsbc.snd_interval_ratdenasbuh1hhjubj)}(h h]h }(hjąhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj҅hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hj&uh]hi}(hj߅hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(hunsigned int rats_counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h rats_counth]h rats_count}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(hconst struct snd_ratden *ratsh](jL)}(hj\h]hconst}(hjHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubjL)}(hjOh]hstruct}(hjchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hhh]j%)}(h snd_ratdenh]h snd_ratden}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_interval_ratdenasbuh1hhjDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj%)}(hratsh]hrats}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(hunsigned int *numph](h)}(hunsignedh]hunsigned}(hjӆhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjφubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjφubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjφubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjφubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjφubj%)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjφubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(hunsigned int *denph](h)}(hunsignedh]hunsigned}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubh)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hdenph]hdenp}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjEhhhjWhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhjWhMubah}(h]j<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhMhj>hhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj>hhhjWhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` interval to refine ``unsigned int rats_count`` number of struct ratden ``const struct snd_ratden *rats`` struct ratden array ``unsigned int *nump`` pointer to store the resultant numerator ``unsigned int *denp`` pointer to store the resultant denominator **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hj‡h]h Parameters}(hjćhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj߇ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjۇubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjۇubeh}(h]h ]h"]h$]h&]uh1jhjhMhj؇ubj)}(h4``unsigned int rats_count`` number of struct ratden h](j)}(h``unsigned int rats_count``h]j)}(hjh]hunsigned int rats_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hnumber of struct ratdenh]hnumber of struct ratden}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj؇ubj)}(h6``const struct snd_ratden *rats`` struct ratden array h](j)}(h!``const struct snd_ratden *rats``h]j)}(hjSh]hconst struct snd_ratden *rats}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjMubj)}(hhh]jg)}(hstruct ratden arrayh]hstruct ratden array}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhMhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhj؇ubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hjh]hunsigned int *nump}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj؇ubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjňh]hunsigned int *denp}(hjLjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjÈubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjވhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjڈhMhjۈubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjڈhMhj؇ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_interval_list (C function)c.snd_interval_listhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hoint snd_interval_list (struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h]h)}(hnint snd_interval_list(struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h](h)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhjShMubj)}(hsnd_interval_listh]j%)}(hsnd_interval_listh]hsnd_interval_list}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhjShMubj@)}(hY(struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_interval_listasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjΉhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(hj&uh]hi}(hjۉhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hunsigned int counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcounth]hcount}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hconst unsigned int *listh](jL)}(hj\h]hconst}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hunsignedh]hunsigned}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjˊhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjيhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhjShMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=hhhjShMubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShMhj:hhubjb)}(hhh]jg)}(h'refine the interval value from the listh]h'refine the interval value from the list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahj:hhhjShMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` the interval value to refine ``unsigned int count`` the number of elements in the list ``const unsigned int *list`` the value list ``unsigned int mask`` the bit-mask to evaluate **Description** Refines the interval value from the list. When mask is non-zero, only the elements corresponding to bit 1 are evaluated. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjAh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hj`h]hstruct snd_interval *i}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjZubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjWubj)}(h:``unsigned int count`` the number of elements in the list h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h"the number of elements in the listh]h"the number of elements in the list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjWubj)}(h,``const unsigned int *list`` the value list h](j)}(h``const unsigned int *list``h]j)}(hjҋh]hconst unsigned int *list}(hjԋhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjЋubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj̋ubj)}(hhh]jg)}(hthe value listh]hthe value list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj̋ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjWubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hj h]hunsigned int mask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjWubeh}(h]h ]h"]h$]h&]uh1jhj;ubjg)}(h**Description**h]j)}(hjFh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubjg)}(hxRefines the interval value from the list. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.h]hxRefines the interval value from the list. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubjg)}(h **Return**h]j)}(hjmh]hReturn}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ranges (C function)c.snd_interval_rangeshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hzint snd_interval_ranges (struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h]h)}(hyint snd_interval_ranges(struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMAubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMAubj)}(hsnd_interval_rangesh]j%)}(hsnd_interval_rangesh]hsnd_interval_ranges}(hjӌhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjόubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMAubj@)}(hb(struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjՌsbc.snd_interval_rangesasbuh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hj&uh]hi}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int counth](h)}(hunsignedh]hunsigned}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hinth]hint}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h!const struct snd_interval *rangesh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hj̍hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjٍhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)c.snd_interval_rangesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrangesh]hranges}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj%)}(hmaskh]hmask}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMAubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMAubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMAhjhhubjb)}(hhh]jg)}(h1refine the interval value from the list of rangesh]h1refine the interval value from the list of ranges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMAubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` the interval value to refine ``unsigned int count`` the number of elements in the list of ranges ``const struct snd_interval *ranges`` the ranges list ``unsigned int mask`` the bit-mask to evaluate **Description** Refines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjŽhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjߎh]hstruct snd_interval *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݎubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjَubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjَubeh}(h]h ]h"]h$]h&]uh1jhjhM5hj֎ubj)}(hD``unsigned int count`` the number of elements in the list of ranges h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjubj)}(hhh]jg)}(h,the number of elements in the list of rangesh]h,the number of elements in the list of ranges}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hM6hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM6hj֎ubj)}(h6``const struct snd_interval *ranges`` the ranges list h](j)}(h%``const struct snd_interval *ranges``h]j)}(hjQh]h!const struct snd_interval *ranges}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjKubj)}(hhh]jg)}(hthe ranges listh]hthe ranges list}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhM7hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM7hj֎ubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjubj)}(hhh]jg)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hj֎ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjŏh]h Description}(hjǏhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjÏubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubjg)}(hRefines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.h]hRefines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.}(hjۏhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hjubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_hw_rule_add (C function)c.snd_pcm_hw_rule_addhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_hw_rule_add (struct snd_pcm_runtime *runtime, unsigned int cond, int var, snd_pcm_hw_rule_func_t func, void *private, int dep, ...)h]h)}(hint snd_pcm_hw_rule_add(struct snd_pcm_runtime *runtime, unsigned int cond, int var, snd_pcm_hw_rule_func_t func, void *private, int dep, ...)h](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj?hMubj)}(hsnd_pcm_hw_rule_addh]j%)}(hsnd_pcm_hw_rule_addh]hsnd_pcm_hw_rule_add}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj?hMubj@)}(hw(struct snd_pcm_runtime *runtime, unsigned int cond, int var, snd_pcm_hw_rule_func_t func, void *private, int dep, ...)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjTsbc.snd_pcm_hw_rule_addasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hruntimeh]hruntime}(hjǐhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjܐubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjܐubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjܐubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjܐubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjܐubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hint varh](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj%)}(hvarh]hvar}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hsnd_pcm_hw_rule_func_t funch](h)}(hhh]j%)}(hsnd_pcm_hw_rule_func_th]hsnd_pcm_hw_rule_func_t}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jc.snd_pcm_hw_rule_addasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj%)}(hfunch]hfunc}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h void *privateh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjʑhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hprivateh]hprivate}(hjבhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hint deph](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hdeph]hdep}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h...h]j)}(h...h]h...}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj?hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj)hhhj?hMubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hMhj&hhubjb)}(hhh]jg)}(hadd the hw-constraint ruleh]hadd the hw-constraint rule}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjLhhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` the pcm runtime instance ``unsigned int cond`` condition bits ``int var`` the variable to evaluate ``snd_pcm_hw_rule_func_t func`` the evaluation function ``void *private`` the private data pointer passed to function ``int dep`` the dependent variables ``...`` variable arguments **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjqh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjkubj)}(hhh](j)}(h=``struct snd_pcm_runtime *runtime`` the pcm runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe pcm runtime instanceh]hthe pcm runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjɒh]hunsigned int cond}(hj˒hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǒubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjÒubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjޒhMhjߒubah}(h]h ]h"]h$]h&]uh1jhjÒubeh}(h]h ]h"]h$]h&]uh1jhjޒhMhjubj)}(h%``int var`` the variable to evaluate h](j)}(h ``int var``h]j)}(hjh]hint var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe variable to evaluateh]hthe variable to evaluate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h8``snd_pcm_hw_rule_func_t func`` the evaluation function h](j)}(h``snd_pcm_hw_rule_func_t func``h]j)}(hj;h]hsnd_pcm_hw_rule_func_t func}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj5ubj)}(hhh]jg)}(hthe evaluation functionh]hthe evaluation function}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhjubj)}(h>``void *private`` the private data pointer passed to function h](j)}(h``void *private``h]j)}(hjth]h void *private}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjnubj)}(hhh]jg)}(h+the private data pointer passed to functionh]h+the private data pointer passed to function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h$``int dep`` the dependent variables h](j)}(h ``int dep``h]j)}(hjh]hint dep}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe dependent variablesh]hthe dependent variables}(hjƓhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj“hMhjÓubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj“hMhjubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjh]h...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hvariable argumentsh]hvariable arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjkubjg)}(h **Return**h]j)}(hj!h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjkubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_mask (C function)c.snd_pcm_hw_constraint_maskhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hhint snd_pcm_hw_constraint_mask (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h]h)}(hgint snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h](h)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjthMubj)}(hsnd_pcm_hw_constraint_maskh]j%)}(hsnd_pcm_hw_constraint_maskh]hsnd_pcm_hw_constraint_mask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbhhhjthMubj@)}(hI(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjÔmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_maskasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jݔc.snd_pcm_hw_constraint_maskasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hu_int32_t maskh](h)}(hhh]j%)}(h u_int32_th]h u_int32_t}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]jݔc.snd_pcm_hw_constraint_maskasbuh1hhjYubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjbhhhjthMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhjthMubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthMhj[hhubjb)}(hhh]jg)}(h&apply the given bitmap mask constrainth]h&apply the given bitmap mask constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj[hhhjthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjΕjjΕjjjuh1hhhhji_hNhNubj)}(hXU**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the mask ``u_int32_t mask`` the bitmap mask **Description** Apply the constraint of the given bitmap mask to a 32-bit mask parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjؕh]h Parameters}(hjڕhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj֕ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjҕubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h@``snd_pcm_hw_param_t var`` hw_params variable to apply the mask h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj0h]hsnd_pcm_hw_param_t var}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj*ubj)}(hhh]jg)}(h$hw_params variable to apply the maskh]h$hw_params variable to apply the mask}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjubj)}(h#``u_int32_t mask`` the bitmap mask h](j)}(h``u_int32_t mask``h]j)}(hjih]hu_int32_t mask}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjcubj)}(hhh]jg)}(hthe bitmap maskh]hthe bitmap mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hMhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hMhjubeh}(h]h ]h"]h$]h&]uh1jhjҕubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjҕubjg)}(hIApply the constraint of the given bitmap mask to a 32-bit mask parameter.h]hIApply the constraint of the given bitmap mask to a 32-bit mask parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjҕubjg)}(h **Return**h]j)}(hj˖h]hReturn}(hj͖hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɖubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjҕubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjҕubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_mask64 (C function)c.snd_pcm_hw_constraint_mask64hNtauh1hhji_hhhNhNubh)}(hhh](h)}(hjint snd_pcm_hw_constraint_mask64 (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h]h)}(hiint snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_pcm_hw_constraint_mask64h]j%)}(hsnd_pcm_hw_constraint_mask64h]hsnd_pcm_hw_constraint_mask64}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(hI(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sbc.snd_pcm_hw_constraint_mask64asbuh1hhjIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj—hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjėmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_mask64asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hu_int64_t maskh](h)}(hhh]j%)}(h u_int64_th]h u_int64_t}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_mask64asbuh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&apply the given bitmap mask constrainth]h&apply the given bitmap mask constraint}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj]hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1hhhhji_hNhNubj)}(hX[**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the mask ``u_int64_t mask`` the 64bit bitmap mask **Description** Apply the constraint of the given bitmap mask to a 64-bit mask parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h@``snd_pcm_hw_param_t var`` hw_params variable to apply the mask h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjژh]hsnd_pcm_hw_param_t var}(hjܘhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjؘubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjԘubj)}(hhh]jg)}(h$hw_params variable to apply the maskh]h$hw_params variable to apply the mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjԘubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``u_int64_t mask`` the 64bit bitmap mask h](j)}(h``u_int64_t mask``h]j)}(hjh]hu_int64_t mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh]jg)}(hthe 64bit bitmap maskh]hthe 64bit bitmap mask}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(hMhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhjubeh}(h]h ]h"]h$]h&]uh1jhj|ubjg)}(h**Description**h]j)}(hjNh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubjg)}(hIApply the constraint of the given bitmap mask to a 64-bit mask parameter.h]hIApply the constraint of the given bitmap mask to a 64-bit mask parameter.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubjg)}(h **Return**h]j)}(hjuh]hReturn}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_integer (C function)c.snd_pcm_hw_constraint_integerhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h[int snd_pcm_hw_constraint_integer (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h]h)}(hZint snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjəhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjșhMubj)}(hsnd_pcm_hw_constraint_integerh]j%)}(hsnd_pcm_hw_constraint_integerh]hsnd_pcm_hw_constraint_integer}(hjۙhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjיubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjșhMubj@)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjݙsbc.snd_pcm_hw_constraint_integerasbuh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j1c.snd_pcm_hw_constraint_integerasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjșhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjșhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjșhMhjhhubjb)}(hhh]jg)}(h*apply an integer constraint to an intervalh]h*apply an integer constraint to an interval}(hjšhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjșhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjښjjښjjjuh1hhhhji_hNhNubj)}(hXJ**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the integer constraint **Description** Apply the constraint of integer to an interval parameter. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjޚubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the integer constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj<h]hsnd_pcm_hw_param_t var}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj6ubj)}(hhh]jg)}(h2hw_params variable to apply the integer constrainth]h2hw_params variable to apply the integer constraint}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhMhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjubeh}(h]h ]h"]h$]h&]uh1jhjޚubjg)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjޚubjg)}(h9Apply the constraint of integer to an interval parameter.h]h9Apply the constraint of integer to an interval parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjޚubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjޚubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjޚubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_minmax (C function)c.snd_pcm_hw_constraint_minmaxhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h~int snd_pcm_hw_constraint_minmax (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int min, unsigned int max)h]h)}(h}int snd_pcm_hw_constraint_minmax(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int min, unsigned int max)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjߛhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjߛhhhjhMubj)}(hsnd_pcm_hw_constraint_minmaxh]j%)}(hsnd_pcm_hw_constraint_minmaxh]hsnd_pcm_hw_constraint_minmax}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjߛhhhjhMubj@)}(h](struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int min, unsigned int max)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_minmaxasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jZc.snd_pcm_hw_constraint_minmaxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int minh](h)}(hunsignedh]hunsigned}(hjڜhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj֜ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj֜ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj֜ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj֜ubj%)}(hminh]hmin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj֜ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maxh](h)}(hunsignedh]hunsigned}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubh)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj%)}(hmaxh]hmax}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjߛhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjۛhhhjhMubah}(h]j֛ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj؛hhubjb)}(hhh]jg)}(h/apply a min/max range constraint to an intervalh]h/apply a min/max range constraint to an interval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj؛hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the range ``unsigned int min`` the minimal value ``unsigned int max`` the maximal value **Description** Apply the min/max range constraint to an interval parameter. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjΝh]hstruct snd_pcm_runtime *runtime}(hjНhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̝ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjȝubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjȝubeh}(h]h ]h"]h$]h&]uh1jhjhMhjŝubj)}(hA``snd_pcm_hw_param_t var`` hw_params variable to apply the range h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h%hw_params variable to apply the rangeh]h%hw_params variable to apply the range}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjŝubj)}(h'``unsigned int min`` the minimal value h](j)}(h``unsigned int min``h]j)}(hj@h]hunsigned int min}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj:ubj)}(hhh]jg)}(hthe minimal valueh]hthe minimal value}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjŝubj)}(h'``unsigned int max`` the maximal value h](j)}(h``unsigned int max``h]j)}(hjyh]hunsigned int max}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjsubj)}(hhh]jg)}(hthe maximal valueh]hthe maximal value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjŝubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(huh1jhjhhhj.hM$ubj@)}(hx(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_list *l)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.snd_pcm_hw_constraint_listasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjϟhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj˟ubj)}(h h]h }(hjݟhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj˟ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj˟ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj˟ubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj˟ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_listasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(h*const struct snd_pcm_hw_constraint_list *lh](jL)}(hj\h]hconst}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_listh]hsnd_pcm_hw_constraint_list}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_listasbuh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hj͠hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hlh]hl}(hjڠhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj.hM$ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj.hM$ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.hM$hjhhubjb)}(hhh]jg)}(h*apply a list of constraints to a parameterh]h*apply a list of constraints to a parameter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj.hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the list constraint ``const struct snd_pcm_hw_constraint_list *l`` list **Description** Apply the list of constraints to an interval parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjEh]hstruct snd_pcm_runtime *runtime}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj?ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhMhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhMhj<ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hj~h]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhj<ubj)}(hK``snd_pcm_hw_param_t var`` hw_params variable to apply the list constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h/hw_params variable to apply the list constrainth]h/hw_params variable to apply the list constraint}(hjСhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj̡hMhj͡ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj̡hMhj<ubj)}(h4``const struct snd_pcm_hw_constraint_list *l`` list h](j)}(h.``const struct snd_pcm_hw_constraint_list *l``h]j)}(hjh]h*const struct snd_pcm_hw_constraint_list *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hlisth]hlist}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj<ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj+h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj ubjg)}(h7Apply the list of constraints to an interval parameter.h]h7Apply the list of constraints to an interval parameter.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj ubjg)}(h **Return**h]j)}(hjRh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM"hj ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM"hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_ranges (C function)c.snd_pcm_hw_constraint_rangeshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_hw_constraint_ranges (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ranges *r)h]h)}(hint snd_pcm_hw_constraint_ranges(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ranges *r)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMCubj)}(hsnd_pcm_hw_constraint_rangesh]j%)}(hsnd_pcm_hw_constraint_rangesh]hsnd_pcm_hw_constraint_ranges}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMCubj@)}(hz(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ranges *r)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjԢhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjТubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjТubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_rangesasbuh1hhjТubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjТubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjТubj%)}(hruntimeh]hruntime}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjТubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̢ubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(hcondh]hcond}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̢ubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_rangesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjƣhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̢ubjF)}(h,const struct snd_pcm_hw_constraint_ranges *rh](jL)}(hj\h]hconst}(hjߣhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjۣubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjۣubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjۣubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjۣubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_rangesh]hsnd_pcm_hw_constraint_ranges}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_rangesasbuh1hhjۣubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjۣubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjۣubj%)}(hrh]hr}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjۣubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̢ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMCubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMCubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMChjhhubjb)}(hhh]jg)}(h.apply list of range constraints to a parameterh]h.apply list of range constraints to a parameter}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjxhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the list of range constraints ``const struct snd_pcm_hw_constraint_ranges *r`` ranges **Description** Apply the list of range constraints to an interval parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=hjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjդhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjѤhM:hjҤubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѤhM:hjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM;hjubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM;hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM;hjubj)}(hU``snd_pcm_hw_param_t var`` hw_params variable to apply the list of range constraints h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj.h]hsnd_pcm_hw_param_t var}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hj(ubj)}(hhh]jg)}(h9hw_params variable to apply the list of range constraintsh]h9hw_params variable to apply the list of range constraints}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChM<hjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChM<hjubj)}(h8``const struct snd_pcm_hw_constraint_ranges *r`` ranges h](j)}(h0``const struct snd_pcm_hw_constraint_ranges *r``h]j)}(hjgh]h,const struct snd_pcm_hw_constraint_ranges *r}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=hjaubj)}(hhh]jg)}(hrangesh]hranges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hM=hj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hM=hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM?hjubjg)}(h=Apply the list of range constraints to an interval parameter.h]h=Apply the list of range constraints to an interval parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM?hjubjg)}(h **Return**h]j)}(hjɥh]hReturn}(hj˥hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǥubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMAhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjߥhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMAhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_ratnums (C function)c.snd_pcm_hw_constraint_ratnumshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_hw_constraint_ratnums (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratnums *r)h]h)}(hint snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratnums *r)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMfubj)}(hsnd_pcm_hw_constraint_ratnumsh]j%)}(hsnd_pcm_hw_constraint_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMfubj@)}(h{(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratnums *r)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.snd_pcm_hw_constraint_ratnumsasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj˦hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj٦hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_ratnumsasbuh1hhj ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hvarh]hvar}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(h-const struct snd_pcm_hw_constraint_ratnums *rh](jL)}(hj\h]hconst}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubjL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_ratnumsasbuh1hhjRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hjSh]hr}(hjȧhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMfubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMfhjhhubjb)}(hhh]jg)}(h'apply ratnums constraint to a parameterh]h'apply ratnums constraint to a parameter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM^hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMfubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhji_hNhNubj)}(hX]**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the ratnums constraint ``const struct snd_pcm_hw_constraint_ratnums *r`` struct snd_ratnums constriants **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhj ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj2h]hstruct snd_pcm_runtime *runtime}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM_hj,ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhM_hjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhM_hj)ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjkh]hunsigned int cond}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM`hjeubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM`hjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhM`hj)ubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the ratnums constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMahjubj)}(hhh]jg)}(h2hw_params variable to apply the ratnums constrainth]h2hw_params variable to apply the ratnums constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMahjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMahj)ubj)}(hQ``const struct snd_pcm_hw_constraint_ratnums *r`` struct snd_ratnums constriants h](j)}(h1``const struct snd_pcm_hw_constraint_ratnums *r``h]j)}(hjݨh]h-const struct snd_pcm_hw_constraint_ratnums *r}(hjߨhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjۨubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhjרubj)}(hhh]jg)}(hstruct snd_ratnums constriantsh]hstruct snd_ratnums constriants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMbhjubah}(h]h ]h"]h$]h&]uh1jhjרubeh}(h]h ]h"]h$]h&]uh1jhjhMbhj)ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMdhj ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMdhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_ratdens (C function)c.snd_pcm_hw_constraint_ratdenshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_hw_constraint_ratdens (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratdens *r)h]h)}(hint snd_pcm_hw_constraint_ratdens(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratdens *r)h](h)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjkhMubj)}(hsnd_pcm_hw_constraint_ratdensh]j%)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjkhMubj@)}(h{(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratdens *r)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_ratdensasbuh1hhjubj)}(h h]h }(hjةhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]jԩc.snd_pcm_hw_constraint_ratdensasbuh1hhjYubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h-const struct snd_pcm_hw_constraint_ratdens *rh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjͪhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hjުhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj۪ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jԩc.snd_pcm_hw_constraint_ratdensasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjSh]hr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjYhhhjkhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhjkhMubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhMhjRhhubjb)}(hhh]jg)}(h'apply ratdens constraint to a parameterh]h'apply ratdens constraint to a parameter}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jahjRhhhjkhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhji_hNhNubj)}(hX]**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the ratdens constraint ``const struct snd_pcm_hw_constraint_ratdens *r`` struct snd_ratdens constriants **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjbh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj\ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjӫhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjϫhMhjЫubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϫhMhjxubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the ratdens constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h2hw_params variable to apply the ratdens constrainth]h2hw_params variable to apply the ratdens constraint}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(hQ``const struct snd_pcm_hw_constraint_ratdens *r`` struct snd_ratdens constriants h](j)}(h1``const struct snd_pcm_hw_constraint_ratdens *r``h]j)}(hj,h]h-const struct snd_pcm_hw_constraint_ratdens *r}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj&ubj)}(hhh]jg)}(hstruct snd_ratdens constriantsh]hstruct snd_ratdens constriants}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjxubeh}(h]h ]h"]h$]h&]uh1jhj\ubjg)}(h **Return**h]j)}(hjgh]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj\ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_msbits (C function)c.snd_pcm_hw_constraint_msbitshNtauh1hhji_hhhNhNubh)}(hhh](h)}(h~int snd_pcm_hw_constraint_msbits (struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h]h)}(h}int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_constraint_msbitsh]j%)}(hsnd_pcm_hw_constraint_msbitsh]hsnd_pcm_hw_constraint_msbits}(hjͬhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjɬubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h](struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjϬsbc.snd_pcm_hw_constraint_msbitsasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hinth]hint}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int widthh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjȭhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj֭hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hwidthh]hwidth}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int msbitsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmsbitsh]hmsbits}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hadd a hw constraint msbits ruleh]hadd a hw constraint msbits rule}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj\hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``unsigned int width`` sample bits width ``unsigned int msbits`` msbits width **Description** This constraint will set the number of most significant bits (msbits) if a sample format with the specified width has been select. If width is set to 0 the msbits will be set for any sample format with a width larger than the specified msbits. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjٮh]hunsigned int cond}(hjۮhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj׮ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjӮubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjӮubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``unsigned int width`` sample bits width h](j)}(h``unsigned int width``h]j)}(hjh]hunsigned int width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh]jg)}(hsample bits widthh]hsample bits width}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hMhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hMhjubj)}(h%``unsigned int msbits`` msbits width h](j)}(h``unsigned int msbits``h]j)}(hjKh]hunsigned int msbits}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjEubj)}(hhh]jg)}(h msbits widthh]h msbits width}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMhjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hMhjubeh}(h]h ]h"]h$]h&]uh1jhj{ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubjg)}(hThis constraint will set the number of most significant bits (msbits) if a sample format with the specified width has been select. If width is set to 0 the msbits will be set for any sample format with a width larger than the specified msbits.h]hThis constraint will set the number of most significant bits (msbits) if a sample format with the specified width has been select. If width is set to 0 the msbits will be set for any sample format with a width larger than the specified msbits.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjïhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_step (C function)c.snd_pcm_hw_constraint_stephNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_hw_constraint_step (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, unsigned long step)h]h)}(h~int snd_pcm_hw_constraint_step(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, unsigned long step)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_constraint_steph]j%)}(hsnd_pcm_hw_constraint_steph]hsnd_pcm_hw_constraint_step}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h`(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, unsigned long step)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_stepasbuh1hhj+ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj˰hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hjٰhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jic.snd_pcm_hw_constraint_stepasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hunsigned long steph](h)}(hunsignedh]hunsigned}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hlongh]hlong}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj%)}(hsteph]hstep}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hadd a hw constraint step ruleh]hadd a hw constraint step rule}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX***Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the step constraint ``unsigned long step`` step size **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjݱh]hstruct snd_pcm_runtime *runtime}(hj߱hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj۱ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjױubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjױubeh}(h]h ]h"]h$]h&]uh1jhjhMhjԱubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj+hMhj,ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj+hMhjԱubj)}(hK``snd_pcm_hw_param_t var`` hw_params variable to apply the step constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjOh]hsnd_pcm_hw_param_t var}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjIubj)}(hhh]jg)}(h/hw_params variable to apply the step constrainth]h/hw_params variable to apply the step constraint}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjԱubj)}(h!``unsigned long step`` step size h](j)}(h``unsigned long step``h]j)}(hjh]hunsigned long step}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h step sizeh]h step size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjԱubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjòh]hReturn}(hjŲhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjٲhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_pow2 (C function)c.snd_pcm_hw_constraint_pow2hNtauh1hhji_hhhNhNubh)}(hhh](h)}(hkint snd_pcm_hw_constraint_pow2 (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h]h)}(hjint snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_constraint_pow2h]j%)}(hsnd_pcm_hw_constraint_pow2h]hsnd_pcm_hw_constraint_pow2}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hL(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjEhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jj+sbc.snd_pcm_hw_constraint_pow2asbuh1hhjAubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=ubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjųhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjӳhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=ubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_pow2asbuh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h#add a hw constraint power-of-2 ruleh]h#add a hw constraint power-of-2 rule}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj^hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhji_hNhNubj)}(hX **Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the power-of-2 constraint **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hj۴h]hunsigned int cond}(hjݴhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjٴubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjմubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjմubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hQ``snd_pcm_hw_param_t var`` hw_params variable to apply the power-of-2 constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h5hw_params variable to apply the power-of-2 constrainth]h5hw_params variable to apply the power-of-2 constraint}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hMhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hMhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h **Return**h]j)}(hjOh]hReturn}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_rule_noresample (C function)c.snd_pcm_hw_rule_noresamplehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hXint snd_pcm_hw_rule_noresample (struct snd_pcm_runtime *runtime, unsigned int base_rate)h]h)}(hWint snd_pcm_hw_rule_noresample(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_pcm_hw_rule_noresampleh]j%)}(hsnd_pcm_hw_rule_noresampleh]hsnd_pcm_hw_rule_noresample}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h9(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjѵhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj͵ubj)}(h h]h }(hj޵hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj͵ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_rule_noresampleasbuh1hhj͵ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj͵ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj͵ubj%)}(hruntimeh]hruntime}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj͵ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjɵubjF)}(hunsigned int base_rateh](h)}(hunsignedh]hunsigned}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hinth]hint}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj%)}(h base_rateh]h base_rate}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjɵubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h+add a rule to allow disabling hw resamplingh]h+add a rule to allow disabling hw resampling}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int base_rate`` the rate at which the hardware does not resample **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjǶh]h Parameters}(hjɶhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjŶubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjݶubj)}(hL``unsigned int base_rate`` the rate at which the hardware does not resample h](j)}(h``unsigned int base_rate``h]j)}(hjh]hunsigned int base_rate}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h0the rate at which the hardware does not resampleh]h0the rate at which the hardware does not resample}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjݶubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjZh]hReturn}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_value (C function)c.snd_pcm_hw_param_valuehNtauh1hhji_hhhNhNubh)}(hhh](h)}(heint snd_pcm_hw_param_value (const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h]h)}(hdint snd_pcm_hw_param_value(const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM=ubj)}(hsnd_pcm_hw_param_valueh]j%)}(hsnd_pcm_hw_param_valueh]hsnd_pcm_hw_param_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM=ubj@)}(hJ(const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jF)}(h&const struct snd_pcm_hw_params *paramsh](jL)}(hj\h]hconst}(hjܷhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjطubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjطubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjطubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjطubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj·sbc.snd_pcm_hw_param_valueasbuh1hhjطubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjطubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjطubj%)}(hparamsh]hparams}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjطubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԷubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j1c.snd_pcm_hw_param_valueasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԷubjF)}(hint *dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj͸hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdirh]hdir}(hjڸhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԷubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM=ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM=ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM=hjhhubjb)}(hhh]jg)}(h%return **params** field **var** valueh](hreturn }(hjhhhNhNubj)}(h **params**h]hparams}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field }(hjhhhNhNubj)}(h**var**h]hvar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM=ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1hhhhji_hNhNubj)}(hXA**Parameters** ``const struct snd_pcm_hw_params *params`` the hw_params instance ``snd_pcm_hw_param_t var`` parameter to retrieve ``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` **Return** The value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](jg)}(h**Parameters**h]j)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjDubj)}(hhh](j)}(hB``const struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjih]h&const struct snd_pcm_hw_params *params}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjcubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM6hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM6hj`ubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM7hj`ubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hj۹h]hint *dir}(hjݹhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjٹubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjչubj)}(hhh]jg)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjչubeh}(h]h ]h"]h$]h&]uh1jhjhM8hj`ubeh}(h]h ]h"]h$]h&]uh1jhjDubjg)}(h **Return**h]j)}(hj$h]hReturn}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjDubjg)}(hnThe value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](hThe value for field }(hj:hhhNhNubj)}(h**var**h]hvar}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh3 if it’s fixed in configuration space defined by }(hj:hhhNhNubj)}(h **params**h]hparams}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh. -}(hj:hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubh otherwise.}(hj:hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_first (C function)c.snd_pcm_hw_param_firsthNtauh1hhji_hhhNhNubh)}(hhh](h)}(h~int snd_pcm_hw_param_first (struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h]h)}(h}int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_param_firsth]j%)}(hsnd_pcm_hw_param_firsth]hsnd_pcm_hw_param_first}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hc(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jF)}(hstruct snd_pcm_substream *pcmh](jL)}(hjOh]hstruct}(hjܺhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjغubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjغubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjºsbc.snd_pcm_hw_param_firstasbuh1hhjغubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjغubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjغubj%)}(hpcmh]hpcm}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjغubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԺubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԺubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjûmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhjubj)}(h h]h }(hj߻hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԺubjF)}(hint *dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdirh]hdir}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԺubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,refine config space and return minimum valueh]h,refine config space and return minimum value}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMxhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *pcm`` PCM instance ``struct snd_pcm_hw_params *params`` the hw_params instance ``snd_pcm_hw_param_t var`` parameter to retrieve ``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` **Description** Inside configuration space defined by **params** remove from **var** all values > minimum. Reduce configuration space accordingly. **Return** The minimum, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM|hjuubj)}(hhh](j)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hjh]hstruct snd_pcm_substream *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMyhjubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMyhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjӼh]h struct snd_pcm_hw_params *params}(hjռhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjѼubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMzhjͼubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjͼubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj h]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM{hjubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hM{hj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hM{hjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjEh]hint *dir}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM|hj?ubj)}(hhh]jg)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hj^hhhNhNubj)}(h``NULL``h]hNULL}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jfhjZhM|hj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhM|hjubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM~hjuubjg)}(hInside configuration space defined by **params** remove from **var** all values > minimum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh remove from }(hjhhhNhNubj)}(h**var**h]hvar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh> all values > minimum. Reduce configuration space accordingly.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM~hjuubjg)}(h **Return**h]j)}(hjٽh]hReturn}(hj۽hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj׽ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjuubjg)}(h1The minimum, or a negative error code on failure.h]h1The minimum, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_hw_param_last (C function)c.snd_pcm_hw_param_lasthNtauh1hhji_hhhNhNubh)}(hhh](h)}(h}int snd_pcm_hw_param_last (struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h]h)}(h|int snd_pcm_hw_param_last(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj,hMubj)}(hsnd_pcm_hw_param_lasth]j%)}(hsnd_pcm_hw_param_lasth]hsnd_pcm_hw_param_last}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj,hMubj@)}(hc(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jF)}(hstruct snd_pcm_substream *pcmh](jL)}(hjOh]hstruct}(hj[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjAsbc.snd_pcm_hw_param_lastasbuh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjɾubj)}(h h]h }(hjھhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjɾubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_lastasbuh1hhjɾubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjɾubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɾubj%)}(hparamsh]hparams}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjɾubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_lastasbuh1hhj9ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj%)}(hvarh]hvar}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(hint *dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj,hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj,hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj,hMhjhhubjb)}(hhh]jg)}(h,refine config space and return maximum valueh]h,refine config space and return maximum value}(hjؿhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjտhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *pcm`` PCM instance ``struct snd_pcm_hw_params *params`` the hw_params instance ``snd_pcm_hw_param_t var`` parameter to retrieve ``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` **Description** Inside configuration space defined by **params** remove from **var** all values < maximum. Reduce configuration space accordingly. **Return** The maximum, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hjh]hstruct snd_pcm_substream *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjRh]h struct snd_pcm_hw_params *params}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjLubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghMhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghMhjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjh]hint *dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(hInside configuration space defined by **params** remove from **var** all values < maximum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hj#hhhNhNubj)}(h **params**h]hparams}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh remove from }(hj#hhhNhNubj)}(h**var**h]hvar}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubh> all values < maximum. Reduce configuration space accordingly.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h **Return**h]j)}(hjXh]hReturn}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h1The maximum, or a negative error code on failure.h]h1The maximum, or a negative error code on failure.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_params_bits (C function)c.snd_pcm_hw_params_bitshNtauh1hhji_hhhNhNubh)}(hhh](h)}(h>int snd_pcm_hw_params_bits (const struct snd_pcm_hw_params *p)h]h)}(h=int snd_pcm_hw_params_bits(const struct snd_pcm_hw_params *p)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_params_bitsh]j%)}(hsnd_pcm_hw_params_bitsh]hsnd_pcm_hw_params_bits}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_params_bitsasbuh1hhjubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&Get the number of bits per the sample.h]h&Get the number of bits per the sample.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjthhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``const struct snd_pcm_hw_params *p`` hardware parameters **Return** The number of bits per sample based on the format, subformat and msbits the specified hw params has.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j)}(h:``const struct snd_pcm_hw_params *p`` hardware parameters h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hhardware parametersh]hhardware parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(hdThe number of bits per sample based on the format, subformat and msbits the specified hw params has.h]hdThe number of bits per sample based on the format, subformat and msbits the specified hw params has.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_lib_ioctl (C function)c.snd_pcm_lib_ioctlhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hXint snd_pcm_lib_ioctl (struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h]h)}(hWint snd_pcm_lib_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](h)}(hinth]hint}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM@ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhjFhM@ubj)}(hsnd_pcm_lib_ioctlh]j%)}(hsnd_pcm_lib_ioctlh]hsnd_pcm_lib_ioctl}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhjFhM@ubj@)}(hB(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj[sbc.snd_pcm_lib_ioctlasbuh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(hunsigned int cmdh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcmdh]hcmd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(h void *argh](h)}(hvoidh]hvoid}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(hargh]harg}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4hhhjFhM@ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhjFhM@ubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhM@hj-hhubjb)}(hhh]jg)}(ha generic PCM ioctl callbackh]ha generic PCM ioctl callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjhhubah}(h]h ]h"]h$]h&]uh1jahj-hhhjFhM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hXQ**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``unsigned int cmd`` ioctl command ``void *arg`` ioctl argument **Description** Processes the generic ioctl commands for PCM. Can be passed as the ioctl callback for PCM ops. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjubj)}(h#``unsigned int cmd`` ioctl command h](j)}(h``unsigned int cmd``h]j)}(hjh]hunsigned int cmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjubj)}(hhh]jg)}(h ioctl commandh]h ioctl command}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubj)}(h``void *arg`` ioctl argument h](j)}(h ``void *arg``h]j)}(hj>h]h void *arg}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hj8ubj)}(hhh]jg)}(hioctl argumenth]hioctl argument}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShM9hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShM9hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjyh]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM;hjubjg)}(h^Processes the generic ioctl commands for PCM. Can be passed as the ioctl callback for PCM ops.h]h^Processes the generic ioctl commands for PCM. Can be passed as the ioctl callback for PCM ops.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM;hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h5snd_pcm_period_elapsed_under_stream_lock (C function)*c.snd_pcm_period_elapsed_under_stream_lockhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hSvoid snd_pcm_period_elapsed_under_stream_lock (struct snd_pcm_substream *substream)h]h)}(hRvoid snd_pcm_period_elapsed_under_stream_lock(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMlubj)}(h(snd_pcm_period_elapsed_under_stream_lockh]j%)}(h(snd_pcm_period_elapsed_under_stream_lockh]h(snd_pcm_period_elapsed_under_stream_lock}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMlubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jjsb*c.snd_pcm_period_elapsed_under_stream_lockasbuh1hhjubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMlubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMlhjhhubjb)}(hhh]jg)}(hVupdate the status of runtime for the next period under acquired lock of PCM substream.h]hVupdate the status of runtime for the next period under acquired lock of PCM substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMRhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX[**Parameters** ``struct snd_pcm_substream *substream`` the instance of pcm substream. **Description** This function is called when the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission. The call of function updates the status of runtime with the latest position of audio data transmission, checks overrun and underrun over buffer, awaken user processes from waiting for available audio data frames, sampling audio timestamp, and performs stop or drain the PCM substream according to configured threshold. The function is intended to use for the case that PCM driver operates audio data frames under acquired lock of PCM substream; e.g. in callback of any operation of :c:type:`snd_pcm_ops` in process context. In any interrupt context, it's preferrable to use ``snd_pcm_period_elapsed()`` instead since lock of PCM substream should be acquired in advance. Developer should pay enough attention that some callbacks in :c:type:`snd_pcm_ops` are done by the call of function: - .pointer - to retrieve current position of audio data transmission by frame count or XRUN state. - .trigger - with SNDRV_PCM_TRIGGER_STOP at XRUN or DRAINING state. - .get_time_info - to retrieve audio time stamp if needed. Even if more than one periods have elapsed since the last call, you have to call this only once.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjubj)}(hhh]j)}(hG``struct snd_pcm_substream *substream`` the instance of pcm substream. h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMThjubj)}(hhh]jg)}(hthe instance of pcm substream.h]hthe instance of pcm substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj!h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjubjg)}(hThis function is called when the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.h]hThis function is called when the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjubjg)}(hX>The call of function updates the status of runtime with the latest position of audio data transmission, checks overrun and underrun over buffer, awaken user processes from waiting for available audio data frames, sampling audio timestamp, and performs stop or drain the PCM substream according to configured threshold.h]hX>The call of function updates the status of runtime with the latest position of audio data transmission, checks overrun and underrun over buffer, awaken user processes from waiting for available audio data frames, sampling audio timestamp, and performs stop or drain the PCM substream according to configured threshold.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMYhjubjg)}(hX^The function is intended to use for the case that PCM driver operates audio data frames under acquired lock of PCM substream; e.g. in callback of any operation of :c:type:`snd_pcm_ops` in process context. In any interrupt context, it's preferrable to use ``snd_pcm_period_elapsed()`` instead since lock of PCM substream should be acquired in advance.h](hThe function is intended to use for the case that PCM driver operates audio data frames under acquired lock of PCM substream; e.g. in callback of any operation of }(hjUhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hj_h]h snd_pcm_ops}(hjahhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]refdoc sound/kernel-api/alsa-driver-api refdomainjreftypetype refexplicitrefwarnjj)}j]sb reftarget snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM^hjUubhI in process context. In any interrupt context, it’s preferrable to use }(hjUhhhNhNubj)}(h``snd_pcm_period_elapsed()``h]hsnd_pcm_period_elapsed()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubhC instead since lock of PCM substream should be acquired in advance.}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhjhM^hjubjg)}(htDeveloper should pay enough attention that some callbacks in :c:type:`snd_pcm_ops` are done by the call of function:h](h=Developer should pay enough attention that some callbacks in }(hjhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hjh]h snd_pcm_ops}(hjhhhNhNubah}(h]h ](jkjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjw refdomainjreftypetype refexplicitrefwarnjj}j snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMchjubh" are done by the call of function:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhjhMchjubh bullet_list)}(hhh](h list_item)}(h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.h]jg)}(hjh]h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMfhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hA.trigger - with SNDRV_PCM_TRIGGER_STOP at XRUN or DRAINING state.h]jg)}(hjh]hA.trigger - with SNDRV_PCM_TRIGGER_STOP at XRUN or DRAINING state.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMghjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h9.get_time_info - to retrieve audio time stamp if needed. h]jg)}(h8.get_time_info - to retrieve audio time stamp if needed.h]h8.get_time_info - to retrieve audio time stamp if needed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhjhMfhjubjg)}(h`Even if more than one periods have elapsed since the last call, you have to call this only once.h]h`Even if more than one periods have elapsed since the last call, you have to call this only once.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMjhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_period_elapsed (C function)c.snd_pcm_period_elapsedhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hAvoid snd_pcm_period_elapsed (struct snd_pcm_substream *substream)h]h)}(h@void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjThhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjThhhjfhMubj)}(hsnd_pcm_period_elapsedh]j%)}(hsnd_pcm_period_elapsedh]hsnd_pcm_period_elapsed}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjThhhjfhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sbc.snd_pcm_period_elapsedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjThhhjfhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjfhMubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhMhjMhhubjb)}(hhh]jg)}(hTupdate the status of runtime for the next period by acquiring lock of PCM substream.h]hTupdate the status of runtime for the next period by acquiring lock of PCM substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjMhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` the instance of PCM substream. **Description** This function is mostly similar to ``snd_pcm_period_elapsed_under_stream_lock()`` except for acquiring lock of PCM substream voluntarily. It's typically called by any type of IRQ handler when hardware IRQ occurs to notify event that the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.h](jg)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj4ubj)}(hhh]j)}(hG``struct snd_pcm_substream *substream`` the instance of PCM substream. h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjYh]h#struct snd_pcm_substream *substream}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjSubj)}(hhh]jg)}(hthe instance of PCM substream.h]hthe instance of PCM substream.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj4ubjg)}(hThis function is mostly similar to ``snd_pcm_period_elapsed_under_stream_lock()`` except for acquiring lock of PCM substream voluntarily.h](h#This function is mostly similar to }(hjhhhNhNubj)}(h.``snd_pcm_period_elapsed_under_stream_lock()``h]h*snd_pcm_period_elapsed_under_stream_lock()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh8 except for acquiring lock of PCM substream voluntarily.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj4ubjg)}(hIt's typically called by any type of IRQ handler when hardware IRQ occurs to notify event that the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.h]hIt’s typically called by any type of IRQ handler when hardware IRQ occurs to notify event that the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_add_chmap_ctls (C function)c.snd_pcm_add_chmap_ctlshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hint snd_pcm_add_chmap_ctls (struct snd_pcm *pcm, int stream, const struct snd_pcm_chmap_elem *chmap, int max_channels, unsigned long private_value, struct snd_pcm_chmap **info_ret)h]h)}(hint snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream, const struct snd_pcm_chmap_elem *chmap, int max_channels, unsigned long private_value, struct snd_pcm_chmap **info_ret)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_pcm_add_chmap_ctlsh]j%)}(hsnd_pcm_add_chmap_ctlsh]hsnd_pcm_add_chmap_ctls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_pcm *pcm, int stream, const struct snd_pcm_chmap_elem *chmap, int max_channels, unsigned long private_value, struct snd_pcm_chmap **info_ret)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_add_chmap_ctlsasbuh1hhj3ubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(h&const struct snd_pcm_chmap_elem *chmaph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_chmap_elemh]hsnd_pcm_chmap_elem}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jqc.snd_pcm_add_chmap_ctlsasbuh1hhjubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hchmaph]hchmap}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hint max_channelsh](h)}(hinth]hint}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjeubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj%)}(h max_channelsh]h max_channels}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hunsigned long private_valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h private_valueh]h private_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hstruct snd_pcm_chmap **info_reth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_pcm_chmaph]h snd_pcm_chmap}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jqc.snd_pcm_add_chmap_ctlsasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hinfo_reth]hinfo_ret}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h'create channel-mapping control elementsh]h'create channel-mapping control elements}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjzhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hXD**Parameters** ``struct snd_pcm *pcm`` the assigned PCM instance ``int stream`` stream direction ``const struct snd_pcm_chmap_elem *chmap`` channel map elements (for query) ``int max_channels`` the max number of channels for the stream ``unsigned long private_value`` the value passed to each kcontrol's private_value field ``struct snd_pcm_chmap **info_ret`` store struct snd_pcm_chmap instance if non-NULL **Description** Create channel-mapping control elements assigned to the given PCM stream(s). **Return** Zero if successful, or a negative error value.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh](j)}(h2``struct snd_pcm *pcm`` the assigned PCM instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjh]hstruct snd_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]jg)}(hthe assigned PCM instanceh]hthe assigned PCM instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h ``int stream`` stream direction h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]jg)}(hstream directionh]hstream direction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM hjubj)}(hL``const struct snd_pcm_chmap_elem *chmap`` channel map elements (for query) h](j)}(h*``const struct snd_pcm_chmap_elem *chmap``h]j)}(hj0h]h&const struct snd_pcm_chmap_elem *chmap}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj*ubj)}(hhh]jg)}(h channel map elements (for query)h]h channel map elements (for query)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhM hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM hjubj)}(h?``int max_channels`` the max number of channels for the stream h](j)}(h``int max_channels``h]j)}(hjih]hint max_channels}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjcubj)}(hhh]jg)}(h)the max number of channels for the streamh]h)the max number of channels for the stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM hjubj)}(hX``unsigned long private_value`` the value passed to each kcontrol's private_value field h](j)}(h``unsigned long private_value``h]j)}(hjh]hunsigned long private_value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]jg)}(h7the value passed to each kcontrol's private_value fieldh]h9the value passed to each kcontrol’s private_value field}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hT``struct snd_pcm_chmap **info_ret`` store struct snd_pcm_chmap instance if non-NULL h](j)}(h#``struct snd_pcm_chmap **info_ret``h]j)}(hjh]hstruct snd_pcm_chmap **info_ret}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]jg)}(h/store struct snd_pcm_chmap instance if non-NULLh]h/store struct snd_pcm_chmap instance if non-NULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubjg)}(hLCreate channel-mapping control elements assigned to the given PCM stream(s).h]hLCreate channel-mapping control elements assigned to the given PCM stream(s).}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubjg)}(h **Return**h]j)}(hj=h]hReturn}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubjg)}(h.Zero if successful, or a negative error value.h]h.Zero if successful, or a negative error value.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_stream_lock (C function)c.snd_pcm_stream_lockhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h>void snd_pcm_stream_lock (struct snd_pcm_substream *substream)h]h)}(h=void snd_pcm_stream_lock(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhKlubj)}(hsnd_pcm_stream_lockh]j%)}(hsnd_pcm_stream_lockh]hsnd_pcm_stream_lock}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhjhKlubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_lockasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj~hhhjhKlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhKlubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKlhjwhhubjb)}(hhh]jg)}(hLock the PCM streamh]hLock the PCM stream}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKehj?hhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhKlubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhji_hNhNubj)}(hX%**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This locks the PCM stream's spinlock or mutex depending on the nonatomic flag of the given substream. This also takes the global link rw lock (or rw sem), too, for avoiding the race with linked streams.h](jg)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKihj^ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKfhj}ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKfhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhKfhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhhj^ubjg)}(hThis locks the PCM stream's spinlock or mutex depending on the nonatomic flag of the given substream. This also takes the global link rw lock (or rw sem), too, for avoiding the race with linked streams.h]hThis locks the PCM stream’s spinlock or mutex depending on the nonatomic flag of the given substream. This also takes the global link rw lock (or rw sem), too, for avoiding the race with linked streams.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_stream_unlock (C function)c.snd_pcm_stream_unlockhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h@void snd_pcm_stream_unlock (struct snd_pcm_substream *substream)h]h)}(h?void snd_pcm_stream_unlock(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKxubj)}(hsnd_pcm_stream_unlockh]j%)}(hsnd_pcm_stream_unlockh]hsnd_pcm_stream_unlock}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKxubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj&sbc.snd_pcm_stream_unlockasbuh1hhj<ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKxubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKxhjhhubjb)}(hhh]jg)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKshjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This unlocks the PCM stream that has been locked via snd_pcm_stream_lock().h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKwhjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKthjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj?h]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKvhjubjg)}(hKThis unlocks the PCM stream that has been locked via snd_pcm_stream_lock().h]hKThis unlocks the PCM stream that has been locked via snd_pcm_stream_lock().}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKvhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_stream_lock_irq (C function)c.snd_pcm_stream_lock_irqhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hBvoid snd_pcm_stream_lock_irq (struct snd_pcm_substream *substream)h]h)}(hAvoid snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_pcm_stream_lock_irqh]j%)}(hsnd_pcm_stream_lock_irqh]hsnd_pcm_stream_lock_irq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_lock_irqasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhKubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjyhhubjb)}(hhh]jg)}(hLock the PCM streamh]hLock the PCM stream}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjAhhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhji_hNhNubj)}(hX **Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This locks the PCM stream like snd_pcm_stream_lock() and disables the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h](jg)}(h**Parameters**h]j)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj`ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj`ubjg)}(hThis locks the PCM stream like snd_pcm_stream_lock() and disables the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h]hThis locks the PCM stream like snd_pcm_stream_lock() and disables the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_stream_unlock_irq (C function)c.snd_pcm_stream_unlock_irqhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hDvoid snd_pcm_stream_unlock_irq (struct snd_pcm_substream *substream)h]h)}(hCvoid snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_pcm_stream_unlock_irqh]j%)}(hsnd_pcm_stream_unlock_irqh]hsnd_pcm_stream_unlock_irq}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jj(sbc.snd_pcm_stream_unlock_irqasbuh1hhj>ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This is a counter-part of snd_pcm_stream_lock_irq().h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjAh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubjg)}(h4This is a counter-part of snd_pcm_stream_lock_irq().h]h4This is a counter-part of snd_pcm_stream_lock_irq().}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_pcm_stream_unlock_irqrestore (C function)"c.snd_pcm_stream_unlock_irqrestorehNtauh1hhji_hhhNhNubh)}(hhh](h)}(h`void snd_pcm_stream_unlock_irqrestore (struct snd_pcm_substream *substream, unsigned long flags)h]h)}(h_void snd_pcm_stream_unlock_irqrestore(struct snd_pcm_substream *substream, unsigned long flags)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(h snd_pcm_stream_unlock_irqrestoreh]j%)}(h snd_pcm_stream_unlock_irqrestoreh]h snd_pcm_stream_unlock_irqrestore}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h:(struct snd_pcm_substream *substream, unsigned long flags)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb"c.snd_pcm_stream_unlock_irqrestoreasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long flagsh](h)}(hunsignedh]hunsigned}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hlongh]hlong}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj%)}(hflagsh]hflags}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhjhKubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhj{hhubjb)}(hhh]jg)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahj{hhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``unsigned long flags`` irq flags **Description** This is a counter-part of snd_pcm_stream_lock_irqsave().h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h"``unsigned long flags`` irq flags h](j)}(h``unsigned long flags``h]j)}(hjh]hunsigned long flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj ubj)}(hhh]jg)}(h irq flagsh]h irq flags}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hKhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjLh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubjg)}(h8This is a counter-part of snd_pcm_stream_lock_irqsave().h]h8This is a counter-part of snd_pcm_stream_lock_irqsave().}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_hw_params_choose (C function)c.snd_pcm_hw_params_choosehNtauh1hhji_hhhNhNubh)}(hhh](h)}(h^int snd_pcm_hw_params_choose (struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h]h)}(h]int snd_pcm_hw_params_choose(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_params_chooseh]j%)}(hsnd_pcm_hw_params_chooseh]hsnd_pcm_hw_params_choose}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hA(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](jF)}(hstruct snd_pcm_substream *pcmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_params_chooseasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jc.snd_pcm_hw_params_chooseasbuh1hhj<ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,choose a configuration defined by **params**h](h"choose a configuration defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *pcm`` PCM instance ``struct snd_pcm_hw_params *params`` the hw_params instance **Description** Choose one configuration from configuration space defined by **params**. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick time **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh](j)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hjh]hstruct snd_pcm_substream *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj ubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjIh]h struct snd_pcm_hw_params *params}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjCubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(hChoose one configuration from configuration space defined by **params**. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick timeh](h=Choose one configuration from configuration space defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick time}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_start (C function)c.snd_pcm_starthNtauh1hhji_hhhNhNubh)}(hhh](h)}(h7int snd_pcm_start (struct snd_pcm_substream *substream)h]h)}(h6int snd_pcm_start(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h snd_pcm_starth]j%)}(h snd_pcm_starth]h snd_pcm_start}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj%sbc.snd_pcm_startasbuh1hhj;ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hstart all linked streamsh]hstart all linked streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream instance **Return** Zero if successful, or a negative error code. The stream lock must be acquired before calling this function.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj>h]hReturn}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(hlZero if successful, or a negative error code. The stream lock must be acquired before calling this function.h]hlZero if successful, or a negative error code. The stream lock must be acquired before calling this function.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stop (C function)c.snd_pcm_stophNtauh1hhji_hhhNhNubh)}(hhh](h)}(hMint snd_pcm_stop (struct snd_pcm_substream *substream, snd_pcm_state_t state)h]h)}(hLint snd_pcm_stop(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h snd_pcm_stoph]j%)}(h snd_pcm_stoph]h snd_pcm_stop}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h<(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stopasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_state_t stateh](h)}(hhh]j%)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jc.snd_pcm_stopasbuh1hhj.ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(hstateh]hstate}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{hhhjhMubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjxhhubjb)}(hhh]jg)}(h6try to stop all running streams in the substream grouph]h6try to stop all running streams in the substream group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX/**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream instance ``snd_pcm_state_t state`` PCM state after stopping the stream **Description** The state of each stream is then changed to the given state unconditionally. **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h>``snd_pcm_state_t state`` PCM state after stopping the stream h](j)}(h``snd_pcm_state_t state``h]j)}(hjh]hsnd_pcm_state_t state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(h#PCM state after stopping the streamh]h#PCM state after stopping the stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj@h]h Description}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(hLThe state of each stream is then changed to the given state unconditionally.h]hLThe state of each stream is then changed to the given state unconditionally.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h **Return**h]j)}(hjgh]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_drain_done (C function)c.snd_pcm_drain_donehNtauh1hhji_hhhNhNubh)}(hhh](h)}(huh1jhjhhhjhM%ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_drain_doneasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM%ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM%hjhhubjb)}(hhh]jg)}(h3stop the DMA only when the given stream is playbackh]h3stop the DMA only when the given stream is playback}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjihhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream **Description** After stopping, the state is changed to SETUP. Unlike snd_pcm_stop(), this affects only the given stream. **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM!hjubj)}(hhh]j)}(h:``struct snd_pcm_substream *substream`` the PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(hthe PCM substreamh]hthe PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM hjubjg)}(hiAfter stopping, the state is changed to SETUP. Unlike snd_pcm_stop(), this affects only the given stream.h]hiAfter stopping, the state is changed to SETUP. Unlike snd_pcm_stop(), this affects only the given stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM#hjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM#hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stop_xrun (C function)c.snd_pcm_stop_xrunhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h;int snd_pcm_stop_xrun (struct snd_pcm_substream *substream)h]h)}(h:int snd_pcm_stop_xrun(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM4ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjbhM4ubj)}(hsnd_pcm_stop_xrunh]j%)}(hsnd_pcm_stop_xrunh]hsnd_pcm_stop_xrun}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjbhM4ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjwsbc.snd_pcm_stop_xrunasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjbhM4ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjbhM4ubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhM4hjIhhubjb)}(hhh]jg)}(h stop the running streams as XRUNh]h stop the running streams as XRUN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM,hjhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjbhM4ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhji_hNhNubj)}(hX6**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream instance **Description** This stops the given running substream (and all linked substreams) as XRUN. Unlike snd_pcm_stop(), this function takes the substream lock by itself. **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM0hj0ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjUh]h#struct snd_pcm_substream *substream}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM-hjOubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhM-hjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhM-hjLubah}(h]h ]h"]h$]h&]uh1jhj0ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hj0ubjg)}(hThis stops the given running substream (and all linked substreams) as XRUN. Unlike snd_pcm_stop(), this function takes the substream lock by itself.h]hThis stops the given running substream (and all linked substreams) as XRUN. Unlike snd_pcm_stop(), this function takes the substream lock by itself.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hj0ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM2hj0ubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM2hj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_suspend_all (C function)c.snd_pcm_suspend_allhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h-int snd_pcm_suspend_all (struct snd_pcm *pcm)h]h)}(h,int snd_pcm_suspend_all(struct snd_pcm *pcm)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hsnd_pcm_suspend_allh]j%)}(hsnd_pcm_suspend_allh]hsnd_pcm_suspend_all}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(h(struct snd_pcm *pcm)h]jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_suspend_allasbuh1hhj5ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(h2trigger SUSPEND to all substreams in the given pcmh]h2trigger SUSPEND to all substreams in the given pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm *pcm`` the PCM instance **Description** After this call, all streams are changed to SUSPENDED state. **Return** Zero if successful (or **pcm** is ``NULL``), or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]j)}(h)``struct snd_pcm *pcm`` the PCM instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjh]hstruct snd_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(hthe PCM instanceh]hthe PCM instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj8h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(huh1jhjhhhjhMubj@)}(h8(struct snd_pcm_substream *substream, struct file *file)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_prepareasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct file *fileh](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(hhh]j%)}(hfileh]hfile}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j?c.snd_pcm_prepareasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(hfileh]hfile}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h+prepare the PCM substream to be triggerableh]h+prepare the PCM substream to be triggerable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream instance ``struct file *file`` file to refer f_flags **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj9h]h#struct snd_pcm_substream *substream}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj3ubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhMhjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhMhj0ubj)}(h,``struct file *file`` file to refer f_flags h](j)}(h``struct file *file``h]j)}(hjrh]hstruct file *file}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjlubj)}(hhh]jg)}(hfile to refer f_flagsh]hfile to refer f_flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhMhj0ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_kernel_ioctl (C function)c.snd_pcm_kernel_ioctlhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h[int snd_pcm_kernel_ioctl (struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h]h)}(hZint snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMn ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMn ubj)}(hsnd_pcm_kernel_ioctlh]j%)}(hsnd_pcm_kernel_ioctlh]hsnd_pcm_kernel_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMn ubj@)}(hB(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_kernel_ioctlasbuh1hhj+ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hunsigned int cmdh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcmdh]hcmd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(h void *argh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMn ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMn ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMn hjhhubjb)}(hhh]jg)}(h%Execute PCM ioctl in the kernel-spaceh]h%Execute PCM ioctl in the kernel-space}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMc hjBhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMn ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``unsigned int cmd`` IOCTL cmd ``void *arg`` IOCTL argument **Description** The function is provided primarily for OSS layer and USB gadget drivers, and it allows only the limited set of ioctls (hw_params, sw_params, prepare, start, drain, drop, forward). **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMg hjaubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMd hjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMd hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMd hj}ubj)}(h``unsigned int cmd`` IOCTL cmd h](j)}(h``unsigned int cmd``h]j)}(hjh]hunsigned int cmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMe hjubj)}(hhh]jg)}(h IOCTL cmdh]h IOCTL cmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMe hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMe hj}ubj)}(h``void *arg`` IOCTL argument h](j)}(h ``void *arg``h]j)}(hjh]h void *arg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMf hjubj)}(hhh]jg)}(hIOCTL argumenth]hIOCTL argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMf hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMf hj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubjg)}(h**Description**h]j)}(hj3h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMh hjaubjg)}(hThe function is provided primarily for OSS layer and USB gadget drivers, and it allows only the limited set of ioctls (hw_params, sw_params, prepare, start, drain, drop, forward).h]hThe function is provided primarily for OSS layer and USB gadget drivers, and it allows only the limited set of ioctls (hw_params, sw_params, prepare, start, drain, drop, forward).}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMh hjaubjg)}(h **Return**h]j)}(hjZh]hReturn}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMl hjaubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMl hjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_default_mmap (C function)c.snd_pcm_lib_default_mmaphNtauh1hhji_hhhNhNubh)}(hhh](h)}(h_int snd_pcm_lib_default_mmap (struct snd_pcm_substream *substream, struct vm_area_struct *area)h]h)}(h^int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream, struct vm_area_struct *area)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_lib_default_mmaph]j%)}(hsnd_pcm_lib_default_mmaph]hsnd_pcm_lib_default_mmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hB(struct snd_pcm_substream *substream, struct vm_area_struct *area)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_lib_default_mmapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jc.snd_pcm_lib_default_mmapasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hareah]harea}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hDefault PCM data mmap functionh]hDefault PCM data mmap function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX***Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``struct vm_area_struct *area`` VMA **Description** This is the default mmap handler for PCM data. When mmap pcm_ops is NULL, this function is invoked implicitly. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhjubj)}(h$``struct vm_area_struct *area`` VMA h](j)}(h``struct vm_area_struct *area``h]j)}(hjIh]hstruct vm_area_struct *area}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjCubj)}(hhh]jg)}(hVMAh]hVMA}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(hoThis is the default mmap handler for PCM data. When mmap pcm_ops is NULL, this function is invoked implicitly.h]hoThis is the default mmap handler for PCM data. When mmap pcm_ops is NULL, this function is invoked implicitly.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_mmap_iomem (C function)c.snd_pcm_lib_mmap_iomemhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h]int snd_pcm_lib_mmap_iomem (struct snd_pcm_substream *substream, struct vm_area_struct *area)h]h)}(h\int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_struct *area)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM5ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM5ubj)}(hsnd_pcm_lib_mmap_iomemh]j%)}(hsnd_pcm_lib_mmap_iomemh]hsnd_pcm_lib_mmap_iomem}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM5ubj@)}(hB(struct snd_pcm_substream *substream, struct vm_area_struct *area)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj-hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_lib_mmap_iomemasbuh1hhj)ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jgc.snd_pcm_lib_mmap_iomemasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hareah]harea}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM5ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM5hjhhubjb)}(hhh]jg)}(h*Default PCM data mmap function for I/O memh]h*Default PCM data mmap function for I/O mem}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM+hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhji_hNhNubj)}(hXy**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``struct vm_area_struct *area`` VMA **Description** When your hardware uses the iomapped pages as the hardware buffer and wants to mmap it, pass this function as mmap pcm_ops. Note that this is supposed to work only on limited architectures. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hj<ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjah]h#struct snd_pcm_substream *substream}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM,hj[ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhM,hjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhM,hjXubj)}(h$``struct vm_area_struct *area`` VMA h](j)}(h``struct vm_area_struct *area``h]j)}(hjh]hstruct vm_area_struct *area}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM-hjubj)}(hhh]jg)}(hVMAh]hVMA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM-hjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hj<ubjg)}(hWhen your hardware uses the iomapped pages as the hardware buffer and wants to mmap it, pass this function as mmap pcm_ops. Note that this is supposed to work only on limited architectures.h]hWhen your hardware uses the iomapped pages as the hardware buffer and wants to mmap it, pass this function as mmap pcm_ops. Note that this is supposed to work only on limited architectures.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hj<ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM3hj<ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM3hj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_stream_linked (C function)c.snd_pcm_stream_linkedhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h?int snd_pcm_stream_linked (struct snd_pcm_substream *substream)h]h)}(h>int snd_pcm_stream_linked(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMxubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=hhhjOhMxubj)}(hsnd_pcm_stream_linkedh]j%)}(hsnd_pcm_stream_linkedh]hsnd_pcm_stream_linked}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj=hhhjOhMxubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjdsbc.snd_pcm_stream_linkedasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubah}(h]h ]h"]h$]h&]j=j>uh1j?hj=hhhjOhMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhjOhMxubah}(h]j4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhMxhj6hhubjb)}(hhh]jg)}(h1Check whether the substream is linked with othersh]h1Check whether the substream is linked with others}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMshjhhubah}(h]h ]h"]h$]h&]uh1jahj6hhhjOhMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` substream to check **Return** true if the given substream is being linked with othersh](jg)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwhjubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjBh]h#struct snd_pcm_substream *substream}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMthj<ubj)}(hhh]jg)}(hsubstream to checkh]hsubstream to check}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhMthjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMthj9ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj}h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMvhjubjg)}(h7true if the given substream is being linked with othersh]h7true if the given substream is being linked with others}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMvhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_stream_lock_irqsave (C macro)c.snd_pcm_stream_lock_irqsavehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hsnd_pcm_stream_lock_irqsaveh]h)}(hsnd_pcm_stream_lock_irqsaveh]j)}(hsnd_pcm_stream_lock_irqsaveh]j%)}(hjh]hsnd_pcm_stream_lock_irqsave}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubjg)}(h2``snd_pcm_stream_lock_irqsave (substream, flags)``h]j)}(hjh]h.snd_pcm_stream_lock_irqsave (substream, flags)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhji_hhubh block_quote)}(hLock the PCM stream h]jg)}(hLock the PCM streamh]hLock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubah}(h]h ]h"]h$]h&]uh1jhj"hMhji_hhubj)}(hX**Parameters** ``substream`` PCM substream ``flags`` irq flags **Description** This locks the PCM stream like snd_pcm_stream_lock() but with the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h](jg)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj)ubj)}(hhh](j)}(h``substream`` PCM substream h](j)}(h ``substream``h]j)}(hjNh]h substream}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjHubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMhjEubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjEubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj)ubjg)}(hThis locks the PCM stream like snd_pcm_stream_lock() but with the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h]hThis locks the PCM stream like snd_pcm_stream_lock() but with the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_pcm_stream_lock_irqsave_nested (C macro)$c.snd_pcm_stream_lock_irqsave_nestedhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h"snd_pcm_stream_lock_irqsave_nestedh]h)}(h"snd_pcm_stream_lock_irqsave_nestedh]j)}(h"snd_pcm_stream_lock_irqsave_nestedh]j%)}(hjh]h"snd_pcm_stream_lock_irqsave_nested}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjj7jj7jjjuh1hhhhji_hNhNubjg)}(h9``snd_pcm_stream_lock_irqsave_nested (substream, flags)``h]j)}(hj=h]h5snd_pcm_stream_lock_irqsave_nested (substream, flags)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhji_hhubj)}(h!Single-nested PCM stream locking h]jg)}(h Single-nested PCM stream lockingh]h Single-nested PCM stream locking}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjSubah}(h]h ]h"]h$]h&]uh1jhjehMhji_hhubj)}(h**Parameters** ``substream`` PCM substream ``flags`` irq flags **Description** This locks the PCM stream like snd_pcm_stream_lock_irqsave() but with the single-depth lockdep subclass.h](jg)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjlubj)}(hhh](j)}(h``substream`` PCM substream h](j)}(h ``substream``h]j)}(hjh]h substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjlubjg)}(hhThis locks the PCM stream like snd_pcm_stream_lock_irqsave() but with the single-depth lockdep subclass.h]hhThis locks the PCM stream like snd_pcm_stream_lock_irqsave() but with the single-depth lockdep subclass.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_group_for_each_entry (C macro)c.snd_pcm_group_for_each_entryhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hsnd_pcm_group_for_each_entryh]h)}(hsnd_pcm_group_for_each_entryh]j)}(hsnd_pcm_group_for_each_entryh]j%)}(hjDh]hsnd_pcm_group_for_each_entry}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhjahMubah}(h]j=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhj?hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj?hhhjahMubeh}(h]h ](jmacroeh"]h$]h&]jjjjzjjzjjjuh1hhhhji_hNhNubjg)}(h/``snd_pcm_group_for_each_entry (s, substream)``h]j)}(hjh]h+snd_pcm_group_for_each_entry (s, substream)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhji_hhubj)}(h#iterate over the linked substreams h]jg)}(h"iterate over the linked substreamsh]h"iterate over the linked substreams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjhMhji_hhubj)}(h**Parameters** ``s`` the iterator ``substream`` the substream **Description** Iterate over the all linked substreams to the given **substream**. When **substream** isn't linked with any others, this gives returns **substream** itself once.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h``s`` the iterator h](j)}(h``s``h]j)}(hjh]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h the iteratorh]h the iterator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``substream`` the substream h](j)}(h ``substream``h]j)}(hj h]h substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h the substreamh]h the substream}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjHh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hIterate over the all linked substreams to the given **substream**. When **substream** isn't linked with any others, this gives returns **substream** itself once.h](h4Iterate over the all linked substreams to the given }(hj^hhhNhNubj)}(h **substream**h]h substream}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh. When }(hj^hhhNhNubj)}(h **substream**h]h substream}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh4 isn’t linked with any others, this gives returns }(hj^hhhNhNubj)}(h **substream**h]h substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh itself once.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_running (C function)c.snd_pcm_runninghNtauh1hhji_hhhNhNubh)}(hhh](h)}(h9int snd_pcm_running (struct snd_pcm_substream *substream)h]h)}(h8int snd_pcm_running(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_runningh]j%)}(hsnd_pcm_runningh]hsnd_pcm_running}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_runningasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h1Check whether the substream is in a running stateh]h1Check whether the substream is in a running state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` substream to check **Return** true if the given substream is in the state RUNNING, or in the state DRAINING for playback.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hsubstream to checkh]hsubstream to check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h[true if the given substream is in the state RUNNING, or in the state DRAINING for playback.h]h[true if the given substream is in the state RUNNING, or in the state DRAINING for playback.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h __snd_pcm_set_state (C function)c.__snd_pcm_set_statehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hQvoid __snd_pcm_set_state (struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h]h)}(hPvoid __snd_pcm_set_state(struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h](h)}(hvoidh]hvoid}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjRhMubj)}(h__snd_pcm_set_stateh]j%)}(h__snd_pcm_set_stateh]h__snd_pcm_set_state}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjRhMubj@)}(h8(struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjgsbc.__snd_pcm_set_stateasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hsnd_pcm_state_t stateh](h)}(hhh]j%)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.__snd_pcm_set_stateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstateh]hstate}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj@hhhjRhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhjRhMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhMhj9hhubjb)}(hhh]jg)}(hChange the current PCM stateh]hChange the current PCM state}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjIhhubah}(h]h ]h"]h$]h&]uh1jahj9hhhjRhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime to set ``snd_pcm_state_t state`` the current state to set **Description** Call within the stream lockh](jg)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhubj)}(hhh](j)}(h7``struct snd_pcm_runtime *runtime`` PCM runtime to set h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime to seth]hPCM runtime to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h3``snd_pcm_state_t state`` the current state to set h](j)}(h``snd_pcm_state_t state``h]j)}(hjh]hsnd_pcm_state_t state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hthe current state to seth]hthe current state to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhubjg)}(hCall within the stream lockh]hCall within the stream lock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hbytes_to_samples (C function)c.bytes_to_sampleshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hHssize_t bytes_to_samples (struct snd_pcm_runtime *runtime, ssize_t size)h]h)}(hGssize_t bytes_to_samples(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j%)}(hssize_th]hssize_t}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jbytes_to_samplessbc.bytes_to_samplesasbuh1hhjBhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjjhMubj)}(hbytes_to_samplesh]j%)}(hjgh]hbytes_to_samples}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjjhMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jec.bytes_to_samplesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h ssize_t sizeh](h)}(hhh]j%)}(hssize_th]hssize_t}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jec.bytes_to_samplesasbuh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhjjhMubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMhj;hhubjb)}(hhh]jg)}(h1Unit conversion of the size from bytes to samplesh]h1Unit conversion of the size from bytes to samples}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj^hhubah}(h]h ]h"]h$]h&]uh1jahj;hhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``ssize_t size`` size in bytes **Return** the size in samplesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj}ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``ssize_t size`` size in bytes h](j)}(h``ssize_t size``h]j)}(hjh]h ssize_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h size in bytesh]h size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj}ubjg)}(hthe size in samplesh]hthe size in samples}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hbytes_to_frames (C function)c.bytes_to_frameshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hQsnd_pcm_sframes_t bytes_to_frames (struct snd_pcm_runtime *runtime, ssize_t size)h]h)}(hPsnd_pcm_sframes_t bytes_to_frames(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j%)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jbytes_to_framessbc.bytes_to_framesasbuh1hhjWhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWhhhjhMubj)}(hbytes_to_framesh]j%)}(hj|h]hbytes_to_frames}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjWhhhjhMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.bytes_to_framesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h ssize_t sizeh](h)}(hhh]j%)}(hssize_th]hssize_t}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jzc.bytes_to_framesasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjWhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjShhhjhMubah}(h]jNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjPhhubjb)}(hhh]jg)}(h0Unit conversion of the size from bytes to framesh]h0Unit conversion of the size from bytes to frames}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjshhubah}(h]h ]h"]h$]h&]uh1jahjPhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``ssize_t size`` size in bytes **Return** the size in framesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``ssize_t size`` size in bytes h](j)}(h``ssize_t size``h]j)}(hjh]h ssize_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h size in bytesh]h size in bytes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj+h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe size in framesh]hthe size in frames}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsamples_to_bytes (C function)c.samples_to_byteshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hHssize_t samples_to_bytes (struct snd_pcm_runtime *runtime, ssize_t size)h]h)}(hGssize_t samples_to_bytes(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j%)}(hssize_th]hssize_t}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jsamples_to_bytessbc.samples_to_bytesasbuh1hhjlhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjhMubj)}(hsamples_to_bytesh]j%)}(hjh]hsamples_to_bytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjhMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.samples_to_bytesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h ssize_t sizeh](h)}(hhh]j%)}(hssize_th]hssize_t}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jc.samples_to_bytesasbuh1hhj.ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(hsizeh]hsize}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhhjhMubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjehhubjb)}(hhh]jg)}(h1Unit conversion of the size from samples to bytesh]h1Unit conversion of the size from samples to bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjehhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``ssize_t size`` size in samples **Return** the byte sizeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h!``ssize_t size`` size in samples h](j)}(h``ssize_t size``h]j)}(hjh]h ssize_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hsize in samplesh]hsize in samples}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj@h]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h the byte sizeh]h the byte size}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hframes_to_bytes (C function)c.frames_to_byteshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hQssize_t frames_to_bytes (struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h]h)}(hPssize_t frames_to_bytes(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](h)}(hhh]j%)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jframes_to_bytessbc.frames_to_bytesasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hframes_to_bytesh]j%)}(hjh]hframes_to_bytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.frames_to_bytesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hsnd_pcm_sframes_t sizeh](h)}(hhh]j%)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jc.frames_to_bytesasbuh1hhjCubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(hsizeh]hsize}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}hhhjhMubah}(h]jxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjzhhubjb)}(hhh]jg)}(h0Unit conversion of the size from frames to bytesh]h0Unit conversion of the size from frames to bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjzhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_sframes_t size`` size in frames **Return** the byte sizeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h*``snd_pcm_sframes_t size`` size in frames h](j)}(h``snd_pcm_sframes_t size``h]j)}(hjh]hsnd_pcm_sframes_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hsize in framesh]hsize in frames}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjUh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h the byte sizeh]h the byte size}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hframe_aligned (C function)c.frame_alignedhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hBint frame_aligned (struct snd_pcm_runtime *runtime, ssize_t bytes)h]h)}(hAint frame_aligned(struct snd_pcm_runtime *runtime, ssize_t bytes)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h frame_alignedh]j%)}(h frame_alignedh]h frame_aligned}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h0(struct snd_pcm_runtime *runtime, ssize_t bytes)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.frame_alignedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h ssize_t bytesh](h)}(hhh]j%)}(hssize_th]hssize_t}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]jc.frame_alignedasbuh1hhjEubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hbytesh]hbytes}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h0Check whether the byte size is aligned to framesh]h0Check whether the byte size is aligned to frames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``ssize_t bytes`` size in bytes **Return** true if aligned, or false if noth](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h ``ssize_t bytes`` size in bytes h](j)}(h``ssize_t bytes``h]j)}(hjh]h ssize_t bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h size in bytesh]h size in bytes}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjWh]hReturn}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h true if aligned, or false if noth]h true if aligned, or false if not}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_buffer_bytes (C function)c.snd_pcm_lib_buffer_byteshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hEsize_t snd_pcm_lib_buffer_bytes (struct snd_pcm_substream *substream)h]h)}(hDsize_t snd_pcm_lib_buffer_bytes(struct snd_pcm_substream *substream)h](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_lib_buffer_bytessbc.snd_pcm_lib_buffer_bytesasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_lib_buffer_bytesh]j%)}(hjh]hsnd_pcm_lib_buffer_bytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_lib_buffer_bytesasbuh1hhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h/Get the buffer size of the current PCM in bytesh]h/Get the buffer size of the current PCM in bytes}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjlhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** buffer byte sizeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hbuffer byte sizeh]hbuffer byte size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_period_bytes (C function)c.snd_pcm_lib_period_byteshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hEsize_t snd_pcm_lib_period_bytes (struct snd_pcm_substream *substream)h]h)}(hDsize_t snd_pcm_lib_period_bytes(struct snd_pcm_substream *substream)h](h)}(hhh]j%)}(hsize_th]hsize_t}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jsnd_pcm_lib_period_bytessbc.snd_pcm_lib_period_bytesasbuh1hhj,hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM*ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhjThM*ubj)}(hsnd_pcm_lib_period_bytesh]j%)}(hjQh]hsnd_pcm_lib_period_bytes}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,hhhjThM*ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jOc.snd_pcm_lib_period_bytesasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubah}(h]h ]h"]h$]h&]j=j>uh1j?hj,hhhjThM*ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(hhhjThM*ubah}(h]j#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThM*hj%hhubjb)}(hhh]jg)}(h/Get the period size of the current PCM in bytesh]h/Get the period size of the current PCM in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM%hjhhubah}(h]h ]h"]h$]h&]uh1jahj%hhhjThM*ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** period byte sizeh](jg)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM)hjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjDh]h#struct snd_pcm_substream *substream}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM&hj>ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM&hjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhM&hj;ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM(hjubjg)}(hperiod byte sizeh]hperiod byte size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM(hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_avail (C function)c.snd_pcm_playback_availhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hJsnd_pcm_uframes_t snd_pcm_playback_avail (struct snd_pcm_runtime *runtime)h]h)}(hIsnd_pcm_uframes_t snd_pcm_playback_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j%)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_availsbc.snd_pcm_playback_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM8ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM8ubj)}(hsnd_pcm_playback_availh]j%)}(hjh]hsnd_pcm_playback_avail}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM8ubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]jc.snd_pcm_playback_availasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM8ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM8ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM8hjhhubjb)}(hhh]jg)}(h/Get the available (writable) space for playbackh]h/Get the available (writable) space for playback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM8ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Description** Result is between 0 ... (boundary - 1) **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM5hjubj)}(hhh]j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM2hjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM4hjubjg)}(h&Result is between 0 ... (boundary - 1)h]h&Result is between 0 ... (boundary - 1)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM4hjubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM6hjubjg)}(havailable frame sizeh]havailable frame size}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM6hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_avail (C function)c.snd_pcm_capture_availhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hIsnd_pcm_uframes_t snd_pcm_capture_avail (struct snd_pcm_runtime *runtime)h]h)}(hHsnd_pcm_uframes_t snd_pcm_capture_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j%)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_availsbc.snd_pcm_capture_availasbuh1hhj{hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{hhhjhMJubj)}(hsnd_pcm_capture_availh]j%)}(hjh]hsnd_pcm_capture_avail}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj{hhhjhMJubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_capture_availasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj{hhhjhMJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhMJubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMJhjthhubjb)}(hhh]jg)}(h.Get the available (readable) space for captureh]h.Get the available (readable) space for capture}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMChjOhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhMJubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Description** Result is between 0 ... (boundary - 1) **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMGhjnubj)}(hhh]j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMDhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMDhjubah}(h]h ]h"]h$]h&]uh1jhjnubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhjnubjg)}(h&Result is between 0 ... (boundary - 1)h]h&Result is between 0 ... (boundary - 1)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhjnubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMHhjnubjg)}(havailable frame sizeh]havailable frame size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMHhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_playback_hw_avail (C function)c.snd_pcm_playback_hw_availhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hMsnd_pcm_sframes_t snd_pcm_playback_hw_avail (struct snd_pcm_runtime *runtime)h]h)}(hLsnd_pcm_sframes_t snd_pcm_playback_hw_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j%)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jsnd_pcm_playback_hw_availsbc.snd_pcm_playback_hw_availasbuh1hhj6hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMXubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhj^hMXubj)}(hsnd_pcm_playback_hw_availh]j%)}(hj[h]hsnd_pcm_playback_hw_avail}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhj^hMXubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jYc.snd_pcm_playback_hw_availasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhj^hMXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhj^hMXubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMXhj/hhubjb)}(hhh]jg)}(h!Get the queued space for playbackh]h!Get the queued space for playback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMShj hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj^hMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhji_hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMWhj)ubj)}(hhh]j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjNh]hstruct snd_pcm_runtime *runtime}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMThjHubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMThjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMThjEubah}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMVhj)ubjg)}(havailable frame sizeh]havailable frame size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMVhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_capture_hw_avail (C function)c.snd_pcm_capture_hw_availhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hLsnd_pcm_sframes_t snd_pcm_capture_hw_avail (struct snd_pcm_runtime *runtime)h]h)}(hKsnd_pcm_sframes_t snd_pcm_capture_hw_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j%)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_hw_availsbc.snd_pcm_capture_hw_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMcubj)}(hsnd_pcm_capture_hw_availh]j%)}(hjh]hsnd_pcm_capture_hw_avail}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMcubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]jc.snd_pcm_capture_hw_availasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMcubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMchjhhubjb)}(hhh]jg)}(hGet the free space for captureh]hGet the free space for capture}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMbhjubj)}(hhh]j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM_hjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMahjubjg)}(havailable frame sizeh]havailable frame size}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMahjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_ready (C function)c.snd_pcm_playback_readyhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h@int snd_pcm_playback_ready (struct snd_pcm_substream *substream)h]h)}(h?int snd_pcm_playback_ready(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMpubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjphMpubj)}(hsnd_pcm_playback_readyh]j%)}(hsnd_pcm_playback_readyh]hsnd_pcm_playback_ready}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhjphMpubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_playback_readyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj^hhhjphMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjphMpubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphMphjWhhubjb)}(hhh]jg)}(h.check whether the playback buffer is availableh]h.check whether the playback buffer is available}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihj hhubah}(h]h ]h"]h$]h&]uh1jahjWhhhjphMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjj: jj: jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether enough free space is available on the playback buffer. **Return** Non-zero if available, or zero if not.h](jg)}(h**Parameters**h]j)}(hjD h]h Parameters}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmhj> ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjc h]h#struct snd_pcm_substream *substream}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMjhj] ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjx hMjhjy ubah}(h]h ]h"]h$]h&]uh1jhj] ubeh}(h]h ]h"]h$]h&]uh1jhjx hMjhjZ ubah}(h]h ]h"]h$]h&]uh1jhj> ubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMlhj> ubjg)}(hEChecks whether enough free space is available on the playback buffer.h]hEChecks whether enough free space is available on the playback buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMlhj> ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMnhj> ubjg)}(h&Non-zero if available, or zero if not.h]h&Non-zero if available, or zero if not.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMnhj> ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_ready (C function)c.snd_pcm_capture_readyhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h?int snd_pcm_capture_ready (struct snd_pcm_substream *substream)h]h)}(h>int snd_pcm_capture_ready(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM~ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM~ubj)}(hsnd_pcm_capture_readyh]j%)}(hsnd_pcm_capture_readyh]hsnd_pcm_capture_ready}(hj+ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj' ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hM~ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjG hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjC ubj)}(h h]h }(hjT hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hje hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjg modnameN classnameNjj)}j]j)}jj- sbc.snd_pcm_capture_readyasbuh1hhjC ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj? ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hM~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hM~ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM~hj hhubjb)}(hhh]jg)}(h-check whether the capture buffer is availableh]h-check whether the capture buffer is available}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwhj hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether enough capture data is available on the capture buffer. **Return** Non-zero if available, or zero if not.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM{hj ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj h]h#struct snd_pcm_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMxhj ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMxhj! ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMxhj ubah}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjF h]h Description}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMzhj ubjg)}(hFChecks whether enough capture data is available on the capture buffer.h]hFChecks whether enough capture data is available on the capture buffer.}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMzhj ubjg)}(h **Return**h]j)}(hjm h]hReturn}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM|hj ubjg)}(h&Non-zero if available, or zero if not.h]h&Non-zero if available, or zero if not.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM|hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_playback_data (C function)c.snd_pcm_playback_datahNtauh1hhji_hhhNhNubh)}(hhh](h)}(h?int snd_pcm_playback_data (struct snd_pcm_substream *substream)h]h)}(h>int snd_pcm_playback_data(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubj)}(hsnd_pcm_playback_datah]j%)}(hsnd_pcm_playback_datah]hsnd_pcm_playback_data}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_pcm_playback_dataasbuh1hhj ubj)}(h h]h }(hj- hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj; hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hjH hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhj hhubjb)}(hhh]jg)}(h4check whether any data exists on the playback bufferh]h4check whether any data exists on the playback buffer}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjo hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhji_hNhNubj)}(hX5**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether any data exists on the playback buffer. **Return** Non-zero if any data exists, or zero if not. If stop_threshold is bigger or equal to boundary, then this function returns always non-zero.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj h]h#struct snd_pcm_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(h6Checks whether any data exists on the playback buffer.h]h6Checks whether any data exists on the playback buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(hNon-zero if any data exists, or zero if not. If stop_threshold is bigger or equal to boundary, then this function returns always non-zero.h]hNon-zero if any data exists, or zero if not. If stop_threshold is bigger or equal to boundary, then this function returns always non-zero.}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_empty (C function)c.snd_pcm_playback_emptyhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h@int snd_pcm_playback_empty (struct snd_pcm_substream *substream)h]h)}(h?int snd_pcm_playback_empty(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjZ hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjV hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hji hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV hhhjh hMubj)}(hsnd_pcm_playback_emptyh]j%)}(hsnd_pcm_playback_emptyh]hsnd_pcm_playback_empty}(hj{ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjw ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjV hhhjh hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj} sbc.snd_pcm_playback_emptyasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjV hhhjh hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjR hhhjh hMubah}(h]jM ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjh hMhjO hhubjb)}(hhh]jg)}(h*check whether the playback buffer is emptyh]h*check whether the playback buffer is empty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjO hhhjh hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether the playback buffer is empty. **Return** Non-zero if empty, or zero if not.h](jg)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj[h]h#struct snd_pcm_substream *substream}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjUubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubjg)}(h,Checks whether the playback buffer is empty.h]h,Checks whether the playback buffer is empty.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubjg)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_empty (C function)c.snd_pcm_capture_emptyhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h?int snd_pcm_capture_empty (struct snd_pcm_substream *substream)h]h)}(h>int snd_pcm_capture_empty(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_capture_emptyh]j%)}(hsnd_pcm_capture_emptyh]hsnd_pcm_capture_empty}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj%sbc.snd_pcm_capture_emptyasbuh1hhj;ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h)check whether the capture buffer is emptyh]h)check whether the capture buffer is empty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether the capture buffer is empty. **Return** Non-zero if empty, or zero if not.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj>h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h+Checks whether the capture buffer is empty.h]h+Checks whether the capture buffer is empty.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h **Return**h]j)}(hjeh]hReturn}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_trigger_done (C function)c.snd_pcm_trigger_donehNtauh1hhji_hhhNhNubh)}(hhh](h)}(havoid snd_pcm_trigger_done (struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h]h)}(h`void snd_pcm_trigger_done(struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_trigger_doneh]j%)}(hsnd_pcm_trigger_doneh]hsnd_pcm_trigger_done}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hG(struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_trigger_doneasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h struct snd_pcm_substream *masterh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j!c.snd_pcm_trigger_doneasbuh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hMark the master substreamh]hMark the master substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX***Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``struct snd_pcm_substream *master`` the linked master substream **Description** When multiple substreams of the same card are linked and the hardware supports the single-shot operation, the driver calls this in the loop in snd_pcm_group_for_each_entry() for marking the substream as "done". Then most of trigger operations are performed only to the given master substream. The trigger_master mark is cleared at timestamp updates at the end of trigger operations.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhjubj)}(hA``struct snd_pcm_substream *master`` the linked master substream h](j)}(h$``struct snd_pcm_substream *master``h]j)}(hjTh]h struct snd_pcm_substream *master}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjNubj)}(hhh]jg)}(hthe linked master substreamh]hthe linked master substream}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihMhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hX$When multiple substreams of the same card are linked and the hardware supports the single-shot operation, the driver calls this in the loop in snd_pcm_group_for_each_entry() for marking the substream as "done". Then most of trigger operations are performed only to the given master substream.h]hX(When multiple substreams of the same card are linked and the hardware supports the single-shot operation, the driver calls this in the loop in snd_pcm_group_for_each_entry() for marking the substream as “done”. Then most of trigger operations are performed only to the given master substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hYThe trigger_master mark is cleared at timestamp updates at the end of trigger operations.h]hYThe trigger_master mark is cleared at timestamp updates at the end of trigger operations.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_channels (C function)c.params_channelshNtauh1hhji_hhhNhNubh)}(hhh](h)}(h@unsigned int params_channels (const struct snd_pcm_hw_params *p)h]h)}(h?unsigned int params_channels(const struct snd_pcm_hw_params *p)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hparams_channelsh]j%)}(hparams_channelsh]hparams_channels}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubjL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jj"sbc.params_channelsasbuh1hhj8ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h-Get the number of channels from the hw paramsh]h-Get the number of channels from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(he**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the number of channelsh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h hw paramsh]h hw params}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjUh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe number of channelsh]hthe number of channels}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_rate (C function) c.params_ratehNtauh1hhji_hhhNhNubh)}(hhh](h)}(huh1jhjhhhjhMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jjsb c.params_rateasbuh1hhjubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&Get the sample rate from the hw paramsh]h&Get the sample rate from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(h^**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the sample rateh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe sample rateh]hthe sample rate}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_period_size (C function)c.params_period_sizehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hCunsigned int params_period_size (const struct snd_pcm_hw_params *p)h]h)}(hBunsigned int params_period_size(const struct snd_pcm_hw_params *p)h](h)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhj_hMubh)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhj_hMubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhj_hMubj)}(hparams_period_sizeh]j%)}(hparams_period_sizeh]hparams_period_size}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj_hMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.params_period_sizeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjMhhhj_hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhj_hMubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_hMhjFhhubjb)}(hhh]jg)}(h2Get the period size (in frames) from the hw paramsh]h2Get the period size (in frames) from the hw params}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjDhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhj_hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhji_hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the period size in framesh](jg)}(h**Parameters**h]j)}(hjih]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjcubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjcubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjcubjg)}(hthe period size in framesh]hthe period size in frames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_periods (C function)c.params_periodshNtauh1hhji_hhhNhNubh)}(hhh](h)}(h?unsigned int params_periods (const struct snd_pcm_hw_params *p)h]h)}(h>unsigned int params_periods(const struct snd_pcm_hw_params *p)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hparams_periodsh]j%)}(hparams_periodsh]hparams_periods}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubjL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjGsbc.params_periodsasbuh1hhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,Get the number of periods from the hw paramsh]h,Get the number of periods from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hd**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the number of periodsh](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hj?h]h!const struct snd_pcm_hw_params *p}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hj9ubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM hj6ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjzh]hReturn}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe number of periodsh]hthe number of periods}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_buffer_size (C function)c.params_buffer_sizehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hCunsigned int params_buffer_size (const struct snd_pcm_hw_params *p)h]h)}(hBunsigned int params_buffer_size(const struct snd_pcm_hw_params *p)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hparams_buffer_sizeh]j%)}(hparams_buffer_sizeh]hparams_buffer_size}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjsbc.params_buffer_sizeasbuh1hhjubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h2Get the buffer size (in frames) from the hw paramsh]h2Get the buffer size (in frames) from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in framesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj1h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe buffer size in framesh]hthe buffer size in frames}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h params_buffer_bytes (C function)c.params_buffer_byteshNtauh1hhji_hhhNhNubh)}(hhh](h)}(hDunsigned int params_buffer_bytes (const struct snd_pcm_hw_params *p)h]h)}(hCunsigned int params_buffer_bytes(const struct snd_pcm_hw_params *p)h](h)}(hunsignedh]hunsigned}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM'ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjhM'ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhjhM'ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjhM'ubj)}(hparams_buffer_bytesh]j%)}(hparams_buffer_bytesh]hparams_buffer_bytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrhhhjhM'ubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.params_buffer_bytesasbuh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjrhhhjhM'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnhhhjhM'ubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM'hjkhhubjb)}(hhh]jg)}(h1Get the buffer size (in bytes) from the hw paramsh]h1Get the buffer size (in bytes) from the hw params}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM"hjihhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjhM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hg**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in bytesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM&hjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM#hjubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM%hjubjg)}(hthe buffer size in bytesh]hthe buffer size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM%hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_single (C function)c.snd_pcm_hw_constraint_singlehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hlint snd_pcm_hw_constraint_single (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h]h)}(hkint snd_pcm_hw_constraint_single(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h](h)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)hhhj;hMkubj)}(hsnd_pcm_hw_constraint_singleh]j%)}(hsnd_pcm_hw_constraint_singleh]hsnd_pcm_hw_constraint_single}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj)hhhj;hMkubj@)}(hK(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjPsbc.snd_pcm_hw_constraint_singleasbuh1hhjfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_singleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hinth]hint}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hvalh]hval}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj)hhhj;hMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj%hhhj;hMkubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj;hMkhj"hhubjb)}(hhh]jg)}(h%Constrain parameter to a single valueh]h%Constrain parameter to a single value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMchjhhubah}(h]h ]h"]h$]h&]uh1jahj"hhhj;hMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhji_hNhNubj)}(hX!**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` The hw_params variable to constrain ``unsigned int val`` The value to constrain to **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMdhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMdhjubj)}(h?``snd_pcm_hw_param_t var`` The hw_params variable to constrain h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMehjubj)}(hhh]jg)}(h#The hw_params variable to constrainh]h#The hw_params variable to constrain}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMehjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMehjubj)}(h/``unsigned int val`` The value to constrain to h](j)}(h``unsigned int val``h]j)}(hj9h]hunsigned int val}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMfhj3ubj)}(hhh]jg)}(hThe value to constrain toh]hThe value to constrain to}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhMfhjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhMfhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjth]hReturn}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhhjubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_cpu_endian (C function)c.snd_pcm_format_cpu_endianhNtauh1hhji_hhhNhNubh)}(hhh](h)}(h7int snd_pcm_format_cpu_endian (snd_pcm_format_t format)h]h)}(h6int snd_pcm_format_cpu_endian(snd_pcm_format_t format)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_format_cpu_endianh]j%)}(hsnd_pcm_format_cpu_endianh]hsnd_pcm_format_cpu_endian}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_format_cpu_endianasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hformath]hformat}(hj' hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h"Check the PCM format is CPU-endianh]h"Check the PCM format is CPU-endian}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMyhjN hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjji jji jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is CPU-endian, 0 if opposite, or a negative error code if endian not specified.h](jg)}(h**Parameters**h]j)}(hjs h]h Parameters}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM}hjm ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj h]hsnd_pcm_format_t format}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMzhj ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMzhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMzhj ubah}(h]h ]h"]h$]h&]uh1jhjm ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM|hjm ubjg)}(hi1 if the given PCM format is CPU-endian, 0 if opposite, or a negative error code if endian not specified.h]hi1 if the given PCM format is CPU-endian, 0 if opposite, or a negative error code if endian not specified.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM|hjm ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_set_sync (C function)c.snd_pcm_set_synchNtauh1hhji_hhhNhNubh)}(hhh](h)}(h;void snd_pcm_set_sync (struct snd_pcm_substream *substream)h]h)}(h:void snd_pcm_set_sync(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj!!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!hhhj !hMubj)}(hsnd_pcm_set_synch]j%)}(hsnd_pcm_set_synch]hsnd_pcm_set_sync}(hj3!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!hhhj !hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjO!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjK!ubj)}(h h]h }(hj\!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjK!ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjm!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjo!modnameN classnameNjj)}j]j)}jj5!sbc.snd_pcm_set_syncasbuh1hhjK!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjK!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjK!ubj%)}(h substreamh]h substream}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjK!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjG!ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj!hhhj !hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj !hhhj !hMubah}(h]j!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj !hMhj!hhubjb)}(hhh]jg)}(hset the PCM sync idh]hset the PCM sync id}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!hhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj !hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream **Description** Use the default PCM sync identifier for the specific card.h](jg)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!ubj)}(hhh]j)}(h:``struct snd_pcm_substream *substream`` the pcm substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj"h]h#struct snd_pcm_substream *substream}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj "ubj)}(hhh]jg)}(hthe pcm substreamh]hthe pcm substream}(hj,"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj("hMhj)"ubah}(h]h ]h"]h$]h&]uh1jhj "ubeh}(h]h ]h"]h$]h&]uh1jhj("hMhj "ubah}(h]h ]h"]h$]h&]uh1jhj!ubjg)}(h**Description**h]j)}(hjN"h]h Description}(hjP"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL"ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!ubjg)}(h:Use the default PCM sync identifier for the specific card.h]h:Use the default PCM sync identifier for the specific card.}(hjd"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_set_runtime_buffer (C function)c.snd_pcm_set_runtime_bufferhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hbvoid snd_pcm_set_runtime_buffer (struct snd_pcm_substream *substream, struct snd_dma_buffer *bufp)h]h)}(havoid snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, struct snd_dma_buffer *bufp)h](h)}(hvoidh]hvoid}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj"hMubj)}(hsnd_pcm_set_runtime_bufferh]j%)}(hsnd_pcm_set_runtime_bufferh]hsnd_pcm_set_runtime_buffer}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhj"hMubj@)}(hB(struct snd_pcm_substream *substream, struct snd_dma_buffer *bufp)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jj"sbc.snd_pcm_set_runtime_bufferasbuh1hhj"ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(h substreamh]h substream}(hj)#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"ubjF)}(hstruct snd_dma_buffer *bufph](jL)}(hjOh]hstruct}(hjB#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>#ubj)}(h h]h }(hjO#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>#ubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj`#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb#modnameN classnameNjj)}j]j #c.snd_pcm_set_runtime_bufferasbuh1hhj>#ubj)}(h h]h }(hj~#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>#ubj%)}(hbufph]hbufp}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj"hhhj"hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"hhhj"hMubah}(h]j"ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hMhj"hhubjb)}(hhh]jg)}(hSet the PCM runtime bufferh]hSet the PCM runtime buffer}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj#hhubah}(h]h ]h"]h$]h&]uh1jahj"hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhji_hNhNubj)}(hX+**Parameters** ``struct snd_pcm_substream *substream`` PCM substream to set ``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear **Description** Copy the buffer information to runtime->dma_buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](jg)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj#ubj)}(hhh](j)}(h=``struct snd_pcm_substream *substream`` PCM substream to set h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj$h]h#struct snd_pcm_substream *substream}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj#ubj)}(hhh]jg)}(hPCM substream to seth]hPCM substream to set}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhj#ubj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hj=$h]hstruct snd_dma_buffer *bufp}(hj?$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;$ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj7$ubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjV$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjR$hMhjS$ubah}(h]h ]h"]h$]h&]uh1jhj7$ubeh}(h]h ]h"]h$]h&]uh1jhjR$hMhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubjg)}(h**Description**h]j)}(hjx$h]h Description}(hjz$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv$ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj#ubjg)}(hCopy the buffer information to runtime->dma_buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](h8Copy the buffer information to runtime->dma_buffer when }(hj$hhhNhNubj)}(h**bufp**h]hbufp}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubhA is non-NULL. Otherwise it clears the current buffer information.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_gettime (C function)c.snd_pcm_gettimehNtauh1hhji_hhhNhNubh)}(hhh](h)}(hMvoid snd_pcm_gettime (struct snd_pcm_runtime *runtime, struct timespec64 *tv)h]h)}(hLvoid snd_pcm_gettime(struct snd_pcm_runtime *runtime, struct timespec64 *tv)h](h)}(hvoidh]hvoid}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj$hMubj)}(hsnd_pcm_gettimeh]j%)}(hsnd_pcm_gettimeh]hsnd_pcm_gettime}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj$hhhj$hMubj@)}(h8(struct snd_pcm_runtime *runtime, struct timespec64 *tv)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj %hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj*%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,%modnameN classnameNjj)}j]j)}jj$sbc.snd_pcm_gettimeasbuh1hhj%ubj)}(h h]h }(hjJ%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hjX%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(hruntimeh]hruntime}(hje%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hstruct timespec64 *tvh](jL)}(hjOh]hstruct}(hj~%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjz%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz%ubh)}(hhh]j%)}(h timespec64h]h timespec64}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]jF%c.snd_pcm_gettimeasbuh1hhjz%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjz%ubj%)}(htvh]htv}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjz%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj$hhhj$hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj$hMubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hMhj$hhubjb)}(hhh]jg)}(h3Fill the timespec64 depending on the timestamp modeh]h3Fill the timespec64 depending on the timestamp mode}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj%hhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhji_hNhNubj)}(hz**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``struct timespec64 *tv`` timespec64 to fillh](jg)}(h**Parameters**h]j)}(hj!&h]h Parameters}(hj#&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj@&h]hstruct snd_pcm_runtime *runtime}(hjB&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>&ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:&ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjY&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjU&hMhjV&ubah}(h]h ]h"]h$]h&]uh1jhj:&ubeh}(h]h ]h"]h$]h&]uh1jhjU&hMhj7&ubj)}(h,``struct timespec64 *tv`` timespec64 to fillh](j)}(h``struct timespec64 *tv``h]j)}(hjy&h]hstruct timespec64 *tv}(hj{&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw&ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjs&ubj)}(hhh]jg)}(htimespec64 to fillh]htimespec64 to fill}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjs&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj7&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_set_fixed_buffer (C function)c.snd_pcm_set_fixed_bufferhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hnint snd_pcm_set_fixed_buffer (struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h]h)}(hmint snd_pcm_set_fixed_buffer(struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h](h)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM:ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj&hM:ubj)}(hsnd_pcm_set_fixed_bufferh]j%)}(hsnd_pcm_set_fixed_bufferh]hsnd_pcm_set_fixed_buffer}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj&hM:ubj@)}(hQ(struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj 'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 'ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj.'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0'modnameN classnameNjj)}j]j)}jj&sbc.snd_pcm_set_fixed_bufferasbuh1hhj 'ubj)}(h h]h }(hjN'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 'ubj)}(hjh]h*}(hj\'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 'ubj%)}(h substreamh]h substream}(hji'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hint typeh](h)}(hinth]hint}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~'ubj%)}(htypeh]htype}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]jJ'c.snd_pcm_set_fixed_bufferasbuh1hhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hdatah]hdata}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj*(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,(modnameN classnameNjj)}j]jJ'c.snd_pcm_set_fixed_bufferasbuh1hhj#(ubj)}(h h]h }(hjH(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#(ubj%)}(hsizeh]hsize}(hjV(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&hhhj&hM:ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&hhhj&hM:ubah}(h]j&ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj&hM:hj&hhubjb)}(hhh]jg)}(h0Preallocate and set up the fixed size PCM bufferh]h0Preallocate and set up the fixed size PCM buffer}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM-hj}(hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj&hM:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhji_hNhNubj)}(hXM**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes **Description** This is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn't allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1hj(ubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj(h]h#struct snd_pcm_substream *substream}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM.hj(ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(hM.hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hM.hj(ubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj(h]hint type}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM/hj(ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hM/hj)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj)hM/hj(ubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hj3)h]hstruct device *data}(hj5)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM0hj-)ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjL)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjH)hM0hjI)ubah}(h]h ]h"]h$]h&]uh1jhj-)ubeh}(h]h ]h"]h$]h&]uh1jhjH)hM0hj(ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjl)h]h size_t size}(hjn)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj)ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1hjf)ubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hM1hj)ubah}(h]h ]h"]h$]h&]uh1jhjf)ubeh}(h]h ]h"]h$]h&]uh1jhj)hM1hj(ubeh}(h]h ]h"]h$]h&]uh1jhj(ubjg)}(h**Description**h]j)}(hj)h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM3hj(ubjg)}(hXThis is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn't allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it.h]hXThis is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn’t allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM3hj(ubjg)}(h **Return**h]j)}(hj)h]hReturn}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM8hj(ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM8hj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_set_fixed_buffer_all (C function)c.snd_pcm_set_fixed_buffer_allhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hbint snd_pcm_set_fixed_buffer_all (struct snd_pcm *pcm, int type, struct device *data, size_t size)h]h)}(haint snd_pcm_set_fixed_buffer_all(struct snd_pcm *pcm, int type, struct device *data, size_t size)h](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMNubj)}(h h]h }(hj"*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj!*hMNubj)}(hsnd_pcm_set_fixed_buffer_allh]j%)}(hsnd_pcm_set_fixed_buffer_allh]hsnd_pcm_set_fixed_buffer_all}(hj4*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj!*hMNubj@)}(hA(struct snd_pcm *pcm, int type, struct device *data, size_t size)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjP*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjL*ubj)}(h h]h }(hj]*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjL*ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjn*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjk*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjp*modnameN classnameNjj)}j]j)}jj6*sbc.snd_pcm_set_fixed_buffer_allasbuh1hhjL*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjL*ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL*ubj%)}(hpcmh]hpcm}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjH*ubjF)}(hint typeh](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj%)}(htypeh]htype}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjH*ubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j*c.snd_pcm_set_fixed_buffer_allasbuh1hhj*ubj)}(h h]h }(hj3+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hjA+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(hdatah]hdata}(hjN+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjH*ubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl+modnameN classnameNjj)}j]j*c.snd_pcm_set_fixed_buffer_allasbuh1hhjc+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc+ubj%)}(hsizeh]hsize}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjH*ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj*hhhj!*hMNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj *hhhj!*hMNubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj!*hMNhj*hhubjb)}(hhh]jg)}(h0Preallocate and set up the fixed size PCM bufferh]h0Preallocate and set up the fixed size PCM buffer}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMBhj+hhubah}(h]h ]h"]h$]h&]uh1jahj*hhhj!*hMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1hhhhji_hNhNubj)}(hX**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes **Description** Apply the set up of the fixed buffer via snd_pcm_set_fixed_buffer() for all substream. If any of allocation fails, it returns -ENOMEM, hence the caller must check the return value. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhj+ubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj,h]hstruct snd_pcm *pcm}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMChj+ubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMChj,ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj,hMChj+ubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj:,h]hint type}(hj<,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8,ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhj4,ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjS,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjO,hMDhjP,ubah}(h]h ]h"]h$]h&]uh1jhj4,ubeh}(h]h ]h"]h$]h&]uh1jhjO,hMDhj+ubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjs,h]hstruct device *data}(hju,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq,ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMEhjm,ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMEhj,ubah}(h]h ]h"]h$]h&]uh1jhjm,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMEhj+ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hj,h]h size_t size}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhj,ubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMFhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMFhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+ubjg)}(h**Description**h]j)}(hj,h]h Description}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMHhj+ubjg)}(hApply the set up of the fixed buffer via snd_pcm_set_fixed_buffer() for all substream. If any of allocation fails, it returns -ENOMEM, hence the caller must check the return value.h]hApply the set up of the fixed buffer via snd_pcm_set_fixed_buffer() for all substream. If any of allocation fails, it returns -ENOMEM, hence the caller must check the return value.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMHhj+ubjg)}(h **Return**h]j)}(hj-h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj -ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMLhj+ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj$-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMLhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_sgbuf_get_addr (C function)c.snd_pcm_sgbuf_get_addrhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hYdma_addr_t snd_pcm_sgbuf_get_addr (struct snd_pcm_substream *substream, unsigned int ofs)h]h)}(hXdma_addr_t snd_pcm_sgbuf_get_addr(struct snd_pcm_substream *substream, unsigned int ofs)h](h)}(hhh]j%)}(h dma_addr_th]h dma_addr_t}(hjV-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjS-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjX-modnameN classnameNjj)}j]j)}jsnd_pcm_sgbuf_get_addrsbc.snd_pcm_sgbuf_get_addrasbuh1hhjO-hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^ubj)}(h h]h }(hjx-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO-hhhjw-hM^ubj)}(hsnd_pcm_sgbuf_get_addrh]j%)}(hjt-h]hsnd_pcm_sgbuf_get_addr}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjO-hhhjw-hM^ubj@)}(h7(struct snd_pcm_substream *substream, unsigned int ofs)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj-hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]jr-c.snd_pcm_sgbuf_get_addrasbuh1hhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(h substreamh]h substream}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj#.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hinth]hint}(hj1.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj?.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(hofsh]hofs}(hjM.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjO-hhhjw-hM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjK-hhhjw-hM^ubah}(h]jF-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjw-hM^hjH-hhubjb)}(hhh]jg)}(h/Get the DMA address at the corresponding offseth]h/Get the DMA address at the corresponding offset}(hjw.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMXhjt.hhubah}(h]h ]h"]h$]h&]uh1jahjH-hhhjw-hM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``unsigned int ofs`` byte offset **Return** DMA addressh](jg)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM\hj.ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj.h]h#struct snd_pcm_substream *substream}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMYhj.ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMYhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMYhj.ubj)}(h!``unsigned int ofs`` byte offset h](j)}(h``unsigned int ofs``h]j)}(hj.h]hunsigned int ofs}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMZhj.ubj)}(hhh]jg)}(h byte offseth]h byte offset}(hj /hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMZhj/ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj/hMZhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.ubjg)}(h **Return**h]j)}(hj,/h]hReturn}(hj./hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*/ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM\hj.ubjg)}(h DMA addressh]h DMA address}(hjB/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM\hj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_sgbuf_get_chunk_size (C function)c.snd_pcm_sgbuf_get_chunk_sizehNtauh1hhji_hhhNhNubh)}(hhh](h)}(htunsigned int snd_pcm_sgbuf_get_chunk_size (struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h]h)}(hsunsigned int snd_pcm_sgbuf_get_chunk_size(struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h](h)}(hunsignedh]hunsigned}(hjq/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjm/hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm/hhhj/hMmubh)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjm/hhhj/hMmubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm/hhhj/hMmubj)}(hsnd_pcm_sgbuf_get_chunk_sizeh]j%)}(hsnd_pcm_sgbuf_get_chunk_sizeh]hsnd_pcm_sgbuf_get_chunk_size}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjm/hhhj/hMmubj@)}(hJ(struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jj/sbc.snd_pcm_sgbuf_get_chunk_sizeasbuh1hhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(h substreamh]h substream}(hj#0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj<0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj80ubj)}(h h]h }(hjJ0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj80ubh)}(hinth]hint}(hjX0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj80ubj)}(h h]h }(hjf0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj80ubj%)}(hofsh]hofs}(hjt0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj80ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hinth]hint}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj%)}(hsizeh]hsize}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjm/hhhj/hMmubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhji/hhhj/hMmubah}(h]jd/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj/hMmhjf/hhubjb)}(hhh]jg)}(hJCompute the max size that fits within the contig. page from the given sizeh]hJCompute the max size that fits within the contig. page from the given size}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMehj0hhubah}(h]h ]h"]h$]h&]uh1jahjf/hhhj/hMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``unsigned int ofs`` byte offset ``unsigned int size`` byte size to examine **Return** chunk sizeh](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihj 1ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj01h]h#struct snd_pcm_substream *substream}(hj21hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.1ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghj*1ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjI1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE1hMghjF1ubah}(h]h ]h"]h$]h&]uh1jhj*1ubeh}(h]h ]h"]h$]h&]uh1jhjE1hMghj'1ubj)}(h!``unsigned int ofs`` byte offset h](j)}(h``unsigned int ofs``h]j)}(hji1h]hunsigned int ofs}(hjk1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg1ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhhjc1ubj)}(hhh]jg)}(h byte offseth]h byte offset}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~1hMhhj1ubah}(h]h ]h"]h$]h&]uh1jhjc1ubeh}(h]h ]h"]h$]h&]uh1jhj~1hMhhj'1ubj)}(h+``unsigned int size`` byte size to examine h](j)}(h``unsigned int size``h]j)}(hj1h]hunsigned int size}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihj1ubj)}(hhh]jg)}(hbyte size to examineh]hbyte size to examine}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMihj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMihj'1ubeh}(h]h ]h"]h$]h&]uh1jhj 1ubjg)}(h **Return**h]j)}(hj1h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhj 1ubjg)}(h chunk sizeh]h chunk size}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhj 1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_limit_isa_dma_size (C function)c.snd_pcm_limit_isa_dma_sizehNtauh1hhji_hhhNhNubh)}(hhh](h)}(h6void snd_pcm_limit_isa_dma_size (int dma, size_t *max)h]h)}(h5void snd_pcm_limit_isa_dma_size(int dma, size_t *max)h](h)}(hvoidh]hvoid}(hj"2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj12hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2hhhj02hMubj)}(hsnd_pcm_limit_isa_dma_sizeh]j%)}(hsnd_pcm_limit_isa_dma_sizeh]hsnd_pcm_limit_isa_dma_size}(hjC2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2hhhj02hMubj@)}(h(int dma, size_t *max)h](jF)}(hint dmah](h)}(hinth]hint}(hj_2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[2ubj)}(h h]h }(hjm2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[2ubj%)}(hdmah]hdma}(hj{2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjW2ubjF)}(h size_t *maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjE2sbc.snd_pcm_limit_isa_dma_sizeasbuh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(hmaxh]hmax}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjW2ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj2hhhj02hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhj02hMubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj02hMhj2hhubjb)}(hhh]jg)}(h.Get the max size fitting with ISA DMA transferh]h.Get the max size fitting with ISA DMA transfer}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj2hhubah}(h]h ]h"]h$]h&]uh1jahj2hhhj02hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhji_hNhNubj)}(hY**Parameters** ``int dma`` DMA number ``size_t *max`` pointer to store the max sizeh](jg)}(h**Parameters**h]j)}(hj3h]h Parameters}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj3ubj)}(hhh](j)}(h``int dma`` DMA number h](j)}(h ``int dma``h]j)}(hj=3h]hint dma}(hj?3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj73ubj)}(hhh]jg)}(h DMA numberh]h DMA number}(hjV3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjR3hMhjS3ubah}(h]h ]h"]h$]h&]uh1jhj73ubeh}(h]h ]h"]h$]h&]uh1jhjR3hMhj43ubj)}(h-``size_t *max`` pointer to store the max sizeh](j)}(h``size_t *max``h]j)}(hjv3h]h size_t *max}(hjx3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjp3ubj)}(hhh]jg)}(hpointer to store the max sizeh]hpointer to store the max size}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jhjp3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMhj43ubeh}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_direction_name (C function)c.snd_pcm_direction_namehNtauh1hhji_hhhNhNubh)}(hhh](h)}(h3const char * snd_pcm_direction_name (int direction)h]h)}(h1const char *snd_pcm_direction_name(int direction)h](jL)}(hj\h]hconst}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hMubh)}(hcharh]hchar}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhj3hMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hMubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj3hMubj)}(hsnd_pcm_direction_nameh]j%)}(hsnd_pcm_direction_nameh]hsnd_pcm_direction_name}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj3hMubj@)}(h(int direction)h]jF)}(h int directionh](h)}(hinth]hint}(hj54hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj14ubj)}(h h]h }(hjC4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj14ubj%)}(h directionh]h direction}(hjQ4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj14ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-4ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhj3hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj3hMubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hMhj3hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj{4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjx4hhubah}(h]h ]h"]h$]h&]uh1jahj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``int direction`` Stream's direction, one of SNDRV_PCM_STREAM_XXX **Description** Returns a string naming the direction of the stream.h](jg)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubj)}(hhh]j)}(hB``int direction`` Stream's direction, one of SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hj4h]h int direction}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubj)}(hhh]jg)}(h/Stream's direction, one of SNDRV_PCM_STREAM_XXXh]h1Stream’s direction, one of SNDRV_PCM_STREAM_XXX}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h**Description**h]j)}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubjg)}(h4Returns a string naming the direction of the stream.h]h4Returns a string naming the direction of the stream.}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stream_str (C function)c.snd_pcm_stream_strhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hEconst char * snd_pcm_stream_str (struct snd_pcm_substream *substream)h]h)}(hCconst char *snd_pcm_stream_str(struct snd_pcm_substream *substream)h](jL)}(hj\h]hconst}(hj<5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj85hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjJ5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj85hhhjI5hMubh)}(hcharh]hchar}(hjX5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj85hhhjI5hMubj)}(h h]h }(hjf5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj85hhhjI5hMubj)}(hjh]h*}(hjt5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj85hhhjI5hMubj)}(hsnd_pcm_stream_strh]j%)}(hsnd_pcm_stream_strh]hsnd_pcm_stream_str}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj85hhhjI5hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj5sbc.snd_pcm_stream_strasbuh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(h substreamh]h substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj85hhhjI5hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj45hhhjI5hMubah}(h]j/5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjI5hMhj15hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj$6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!6hhubah}(h]h ]h"]h$]h&]uh1jahj15hhhjI5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<6jj<6jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Return** A string naming the direction of the stream.h](jg)}(h**Parameters**h]j)}(hjF6h]h Parameters}(hjH6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD6ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj@6ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hje6h]h#struct snd_pcm_substream *substream}(hjg6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc6ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj_6ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj~6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjz6hMhj{6ubah}(h]h ]h"]h$]h&]uh1jhj_6ubeh}(h]h ]h"]h$]h&]uh1jhjz6hMhj\6ubah}(h]h ]h"]h$]h&]uh1jhj@6ubjg)}(h **Return**h]j)}(hj6h]hReturn}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj@6ubjg)}(h,A string naming the direction of the stream.h]h,A string naming the direction of the stream.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj@6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_chmap_substream (C function)c.snd_pcm_chmap_substreamhNtauh1hhji_hhhNhNubh)}(hhh](h)}(hastruct snd_pcm_substream * snd_pcm_chmap_substream (struct snd_pcm_chmap *info, unsigned int idx)h]h)}(h_struct snd_pcm_substream *snd_pcm_chmap_substream(struct snd_pcm_chmap *info, unsigned int idx)h](jL)}(hjOh]hstruct}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhj6hMubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jsnd_pcm_chmap_substreamsbc.snd_pcm_chmap_substreamasbuh1hhj6hhhj6hMubj)}(h h]h }(hj%7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhj6hMubj)}(hjh]h*}(hj37hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhj6hMubj)}(hsnd_pcm_chmap_substreamh]j%)}(hj"7h]hsnd_pcm_chmap_substream}(hjD7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhj6hMubj@)}(h.(struct snd_pcm_chmap *info, unsigned int idx)h](jF)}(hstruct snd_pcm_chmap *infoh](jL)}(hjOh]hstruct}(hj_7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[7ubj)}(h h]h }(hjl7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[7ubh)}(hhh]j%)}(h snd_pcm_chmaph]h snd_pcm_chmap}(hj}7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjz7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j 7c.snd_pcm_chmap_substreamasbuh1hhj[7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[7ubj%)}(hinfoh]hinfo}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjW7ubjF)}(hunsigned int idxh](h)}(hunsignedh]hunsigned}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hidxh]hidx}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjW7ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhj6hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhj6hMubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj6hMhj6hhubjb)}(hhh]jg)}(h6get the PCM substream assigned to the given chmap infoh]h6get the PCM substream assigned to the given chmap info}(hj18hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj.8hhubah}(h]h ]h"]h$]h&]uh1jahj6hhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjI8jjI8jjjuh1hhhhji_hNhNubj)}(h**Parameters** ``struct snd_pcm_chmap *info`` chmap information ``unsigned int idx`` the substream number index **Return** the matched PCM substream, or NULL if not foundh](jg)}(h**Parameters**h]j)}(hjS8h]h Parameters}(hjU8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ8ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjM8ubj)}(hhh](j)}(h1``struct snd_pcm_chmap *info`` chmap information h](j)}(h``struct snd_pcm_chmap *info``h]j)}(hjr8h]hstruct snd_pcm_chmap *info}(hjt8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp8ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjl8ubj)}(hhh]jg)}(hchmap informationh]hchmap information}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjl8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhji8ubj)}(h0``unsigned int idx`` the substream number index h](j)}(h``unsigned int idx``h]j)}(hj8h]hunsigned int idx}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj8ubj)}(hhh]jg)}(hthe substream number indexh]hthe substream number index}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhji8ubeh}(h]h ]h"]h$]h&]uh1jhjM8ubjg)}(h **Return**h]j)}(hj8h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjM8ubjg)}(h/the matched PCM substream, or NULL if not foundh]h/the matched PCM substream, or NULL if not found}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjM8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hpcm_format_to_bits (C function)c.pcm_format_to_bitshNtauh1hhji_hhhNhNubh)}(hhh](h)}(h4u64 pcm_format_to_bits (snd_pcm_format_t pcm_format)h]h)}(h3u64 pcm_format_to_bits(snd_pcm_format_t pcm_format)h](h)}(hhh]j%)}(hu64h]hu64}(hj.9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj09modnameN classnameNjj)}j]j)}jpcm_format_to_bitssbc.pcm_format_to_bitsasbuh1hhj'9hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjP9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'9hhhjO9hMubj)}(hpcm_format_to_bitsh]j%)}(hjL9h]hpcm_format_to_bits}(hjb9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'9hhhjO9hMubj@)}(h(snd_pcm_format_t pcm_format)h]jF)}(hsnd_pcm_format_t pcm_formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jJ9c.pcm_format_to_bitsasbuh1hhjy9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjy9ubj%)}(h pcm_formath]h pcm_format}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjy9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhju9ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj'9hhhjO9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#9hhhjO9hMubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjO9hMhj 9hhubjb)}(hhh]jg)}(h0Strong-typed conversion of pcm_format to bitwiseh]h0Strong-typed conversion of pcm_format to bitwise}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9hhubah}(h]h ]h"]h$]h&]uh1jahj 9hhhjO9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhji_hNhNubj)}(hz**Parameters** ``snd_pcm_format_t pcm_format`` PCM format **Return** 64bit mask corresponding to the given PCM formath](jg)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubj)}(hhh]j)}(h+``snd_pcm_format_t pcm_format`` PCM format h](j)}(h``snd_pcm_format_t pcm_format``h]j)}(hj:h]hsnd_pcm_format_t pcm_format}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:ubj)}(hhh]jg)}(h PCM formath]h PCM format}(hj0:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,:hMhj-:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj,:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(h **Return**h]j)}(hjR:h]hReturn}(hjT:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP:ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubjg)}(h064bit mask corresponding to the given PCM formath]h064bit mask corresponding to the given PCM format}(hjh:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hpcm_for_each_format (C macro)c.pcm_for_each_formathNtauh1hhji_hhhNhNubh)}(hhh](h)}(hpcm_for_each_formath]h)}(hpcm_for_each_formath]j)}(hpcm_for_each_formath]j%)}(hj:h]hpcm_for_each_format}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:hhhj:hMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hMhj:hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj:hhhj:hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj:jj:jjjuh1hhhhji_hNhNubjg)}(h``pcm_for_each_format (f)``h]j)}(hj:h]hpcm_for_each_format (f)}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhji_hhubj)}(h'helper to iterate for each format type h]jg)}(h&helper to iterate for each format typeh]h&helper to iterate for each format type}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:hMhji_hhubj)}(hF**Parameters** ``f`` the iterator variable in snd_pcm_format_t typeh](jg)}(h**Parameters**h]j)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:ubj)}(hhh]j)}(h4``f`` the iterator variable in snd_pcm_format_t typeh](j)}(h``f``h]j)}(hj!;h]hf}(hj#;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj;ubj)}(hhh]jg)}(h.the iterator variable in snd_pcm_format_t typeh]h.the iterator variable in snd_pcm_format_t type}(hj:;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj7;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj6;hMhj;ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhji_hhhNhNubeh}(h]pcm-coreah ]h"]pcm coreah$]h&]uh1hhjX_hhhhhKubh)}(hhh](h)}(hPCM Format Helpersh]hPCM Format Helpers}(hjm;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj;hhhhhK%ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_signed (C function)c.snd_pcm_format_signedhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h3int snd_pcm_format_signed (snd_pcm_format_t format)h]h)}(h2int snd_pcm_format_signed(snd_pcm_format_t format)h](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhj;hMubj)}(hsnd_pcm_format_signedh]j%)}(hsnd_pcm_format_signedh]hsnd_pcm_format_signed}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhj;hMubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jj;sbc.snd_pcm_format_signedasbuh1hhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj%)}(hformath]hformat}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhj;hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj;hhhj;hMubah}(h]j;ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj;hMhj;hhubjb)}(hhh]jg)}(h%Check the PCM format is signed linearh]h%Check the PCM format is signed linear}(hj,<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj)<hhubah}(h]h ]h"]h$]h&]uh1jahj;hhhj;hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjD<jjD<jjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.h](jg)}(h**Parameters**h]j)}(hjN<h]h Parameters}(hjP<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL<ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjH<ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjm<h]hsnd_pcm_format_t format}(hjo<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk<ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjg<ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhjg<ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjd<ubah}(h]h ]h"]h$]h&]uh1jhjH<ubjg)}(h **Return**h]j)}(hj<h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjH<ubjg)}(hs1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.h]hs1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjH<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_format_unsigned (C function)c.snd_pcm_format_unsignedhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h5int snd_pcm_format_unsigned (snd_pcm_format_t format)h]h)}(h4int snd_pcm_format_unsigned(snd_pcm_format_t format)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhj<hMubj)}(hsnd_pcm_format_unsignedh]j%)}(hsnd_pcm_format_unsignedh]hsnd_pcm_format_unsigned}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj =ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhj<hMubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj-=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/=modnameN classnameNjj)}j]j)}jj=sbc.snd_pcm_format_unsignedasbuh1hhj&=ubj)}(h h]h }(hjM=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&=ubj%)}(hformath]hformat}(hj[=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"=ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhj<hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhj<hMubah}(h]j<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj<hMhj<hhubjb)}(hhh]jg)}(h'Check the PCM format is unsigned linearh]h'Check the PCM format is unsigned linear}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jahj<hhhj<hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is unsigned linear, 0 if signed linear, and a negative error code for non-linear formats.h](jg)}(h**Parameters**h]j)}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj=ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj=h]hsnd_pcm_format_t format}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj=ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubjg)}(h **Return**h]j)}(hj>h]hReturn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj=ubjg)}(hs1 if the given PCM format is unsigned linear, 0 if signed linear, and a negative error code for non-linear formats.h]hs1 if the given PCM format is unsigned linear, 0 if signed linear, and a negative error code for non-linear formats.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_linear (C function)c.snd_pcm_format_linearhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h3int snd_pcm_format_linear (snd_pcm_format_t format)h]h)}(h2int snd_pcm_format_linear(snd_pcm_format_t format)h](h)}(hinth]hint}(hjF>hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjB>hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM,ubj)}(h h]h }(hjU>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB>hhhjT>hM,ubj)}(hsnd_pcm_format_linearh]j%)}(hsnd_pcm_format_linearh]hsnd_pcm_format_linear}(hjg>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjB>hhhjT>hM,ubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jji>sbc.snd_pcm_format_linearasbuh1hhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj%)}(hformath]hformat}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{>ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjB>hhhjT>hM,ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>>hhhjT>hM,ubah}(h]j9>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjT>hM,hj;>hhubjb)}(hhh]jg)}(hCheck the PCM format is linearh]hCheck the PCM format is linear}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM'hj>hhubah}(h]h ]h"]h$]h&]uh1jahj;>hhhjT>hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhjj;hNhNubj)}(h}**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is linear, 0 if not.h](jg)}(h**Parameters**h]j)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM+hj>ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj?h]hsnd_pcm_format_t format}(hj!?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM(hj?ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj8?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4?hM(hj5?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj4?hM(hj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubjg)}(h **Return**h]j)}(hjZ?h]hReturn}(hj\?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX?ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM*hj>ubjg)}(h.1 if the given PCM format is linear, 0 if not.h]h.1 if the given PCM format is linear, 0 if not.}(hjp?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM*hj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_format_little_endian (C function)c.snd_pcm_format_little_endianhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h:int snd_pcm_format_little_endian (snd_pcm_format_t format)h]h)}(h9int snd_pcm_format_little_endian(snd_pcm_format_t format)h](h)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhj?hM9ubj)}(hsnd_pcm_format_little_endianh]j%)}(hsnd_pcm_format_little_endianh]hsnd_pcm_format_little_endian}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhj?hM9ubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jj?sbc.snd_pcm_format_little_endianasbuh1hhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj%)}(hformath]hformat}(hj @hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj?hhhj?hM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhj?hM9ubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hM9hj?hhubjb)}(hhh]jg)}(h%Check the PCM format is little-endianh]h%Check the PCM format is little-endian}(hj7@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM3hj4@hhubah}(h]h ]h"]h$]h&]uh1jahj?hhhj?hM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjO@jjO@jjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is little-endian, 0 if big-endian, or a negative error code if endian not specified.h](jg)}(h**Parameters**h]j)}(hjY@h]h Parameters}(hj[@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW@ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM7hjS@ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjx@h]hsnd_pcm_format_t format}(hjz@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM4hjr@ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hM4hj@ubah}(h]h ]h"]h$]h&]uh1jhjr@ubeh}(h]h ]h"]h$]h&]uh1jhj@hM4hjo@ubah}(h]h ]h"]h$]h&]uh1jhjS@ubjg)}(h **Return**h]j)}(hj@h]hReturn}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM6hjS@ubjg)}(hn1 if the given PCM format is little-endian, 0 if big-endian, or a negative error code if endian not specified.h]hn1 if the given PCM format is little-endian, 0 if big-endian, or a negative error code if endian not specified.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM6hjS@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_big_endian (C function)c.snd_pcm_format_big_endianhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h7int snd_pcm_format_big_endian (snd_pcm_format_t format)h]h)}(h6int snd_pcm_format_big_endian(snd_pcm_format_t format)h](h)}(hinth]hint}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMLubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjAhMLubj)}(hsnd_pcm_format_big_endianh]j%)}(hsnd_pcm_format_big_endianh]hsnd_pcm_format_big_endian}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjAhMLubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj8AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5Aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:AmodnameN classnameNjj)}j]j)}jjAsbc.snd_pcm_format_big_endianasbuh1hhj1Aubj)}(h h]h }(hjXAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1Aubj%)}(hformath]hformat}(hjfAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1Aubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-Aubah}(h]h ]h"]h$]h&]j=j>uh1j?hj@hhhjAhMLubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@hhhjAhMLubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhMLhj@hhubjb)}(hhh]jg)}(h"Check the PCM format is big-endianh]h"Check the PCM format is big-endian}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMFhjAhhubah}(h]h ]h"]h$]h&]uh1jahj@hhhjAhMLubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is big-endian, 0 if little-endian, or a negative error code if endian not specified.h](jg)}(h**Parameters**h]j)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMJhjAubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjAh]hsnd_pcm_format_t format}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMGhjAubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMGhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMGhjAubah}(h]h ]h"]h$]h&]uh1jhjAubjg)}(h **Return**h]j)}(hj Bh]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Bubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMIhjAubjg)}(hn1 if the given PCM format is big-endian, 0 if little-endian, or a negative error code if endian not specified.h]hn1 if the given PCM format is big-endian, 0 if little-endian, or a negative error code if endian not specified.}(hj"BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMIhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_format_width (C function)c.snd_pcm_format_widthhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h2int snd_pcm_format_width (snd_pcm_format_t format)h]h)}(h1int snd_pcm_format_width(snd_pcm_format_t format)h](h)}(hinth]hint}(hjQBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMBhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM^ubj)}(h h]h }(hj`BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMBhhhj_BhM^ubj)}(hsnd_pcm_format_widthh]j%)}(hsnd_pcm_format_widthh]hsnd_pcm_format_width}(hjrBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMBhhhj_BhM^ubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jjtBsbc.snd_pcm_format_widthasbuh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(hformath]hformat}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubah}(h]h ]h"]h$]h&]j=j>uh1j?hjMBhhhj_BhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIBhhhj_BhM^ubah}(h]jDBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_BhM^hjFBhhubjb)}(hhh]jg)}(h"return the bit-width of the formath]h"return the bit-width of the format}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMXhjBhhubah}(h]h ]h"]h$]h&]uh1jahjFBhhhj_BhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The bit-width of the format, or a negative error code if unknown format.h](jg)}(h**Parameters**h]j)}(hj Ch]h Parameters}(hj ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Cubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM\hjCubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj*Ch]hsnd_pcm_format_t format}(hj,ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Cubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMYhj$Cubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjCChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?ChMYhj@Cubah}(h]h ]h"]h$]h&]uh1jhj$Cubeh}(h]h ]h"]h$]h&]uh1jhj?ChMYhj!Cubah}(h]h ]h"]h$]h&]uh1jhjCubjg)}(h **Return**h]j)}(hjeCh]hReturn}(hjgChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcCubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM[hjCubjg)}(hHThe bit-width of the format, or a negative error code if unknown format.h]hHThe bit-width of the format, or a negative error code if unknown format.}(hj{ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM[hjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_format_physical_width (C function)c.snd_pcm_format_physical_widthhNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h;int snd_pcm_format_physical_width (snd_pcm_format_t format)h]h)}(h:int snd_pcm_format_physical_width(snd_pcm_format_t format)h](h)}(hinth]hint}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjChhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMqubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjChMqubj)}(hsnd_pcm_format_physical_widthh]j%)}(hsnd_pcm_format_physical_widthh]hsnd_pcm_format_physical_width}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjChMqubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jjCsbc.snd_pcm_format_physical_widthasbuh1hhjCubj)}(h h]h }(hj DhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(hformath]hformat}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubah}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjChMqubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjChMqubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjChMqhjChhubjb)}(hhh]jg)}(h+return the physical bit-width of the formath]h+return the physical bit-width of the format}(hjBDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMkhj?Dhhubah}(h]h ]h"]h$]h&]uh1jahjChhhjChMqubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZDjjZDjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The physical bit-width of the format, or a negative error code if unknown format.h](jg)}(h**Parameters**h]j)}(hjdDh]h Parameters}(hjfDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbDubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMohj^Dubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjDh]hsnd_pcm_format_t format}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMlhj}Dubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMlhjDubah}(h]h ]h"]h$]h&]uh1jhj}Dubeh}(h]h ]h"]h$]h&]uh1jhjDhMlhjzDubah}(h]h ]h"]h$]h&]uh1jhj^Dubjg)}(h **Return**h]j)}(hjDh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMnhj^Dubjg)}(hQThe physical bit-width of the format, or a negative error code if unknown format.h]hQThe physical bit-width of the format, or a negative error code if unknown format.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMnhj^Dubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_format_size (C function)c.snd_pcm_format_sizehNtauh1hhjj;hhhNhNubh)}(hhh](h)}(hEssize_t snd_pcm_format_size (snd_pcm_format_t format, size_t samples)h]h)}(hDssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples)h](h)}(hhh]j%)}(hssize_th]hssize_t}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jsnd_pcm_format_sizesbc.snd_pcm_format_sizeasbuh1hhjDhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hj(EhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDhhhj'EhMubj)}(hsnd_pcm_format_sizeh]j%)}(hj$Eh]hsnd_pcm_format_size}(hj:EhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6Eubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjDhhhj'EhMubj@)}(h)(snd_pcm_format_t format, size_t samples)h](jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjXEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZEmodnameN classnameNjj)}j]j"Ec.snd_pcm_format_sizeasbuh1hhjQEubj)}(h h]h }(hjvEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQEubj%)}(hformath]hformat}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMEubjF)}(hsize_t samplesh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j"Ec.snd_pcm_format_sizeasbuh1hhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hsamplesh]hsamples}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjDhhhj'EhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhj'EhMubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj'EhMhjDhhubjb)}(hhh]jg)}(h3return the byte size of samples on the given formath]h3return the byte size of samples on the given format}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM~hjEhhubah}(h]h ]h"]h$]h&]uh1jahjDhhhj'EhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check ``size_t samples`` sampling rate **Return** The byte size of the given samples for the format, or a negative error code if unknown format.h](jg)}(h**Parameters**h]j)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjFubj)}(hhh](j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj7Fh]hsnd_pcm_format_t format}(hj9FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5Fubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj1Fubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjPFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLFhMhjMFubah}(h]h ]h"]h$]h&]uh1jhj1Fubeh}(h]h ]h"]h$]h&]uh1jhjLFhMhj.Fubj)}(h!``size_t samples`` sampling rate h](j)}(h``size_t samples``h]j)}(hjpFh]hsize_t samples}(hjrFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnFubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjjFubj)}(hhh]jg)}(h sampling rateh]h sampling rate}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhj.Fubeh}(h]h ]h"]h$]h&]uh1jhjFubjg)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjFubjg)}(h^The byte size of the given samples for the format, or a negative error code if unknown format.h]h^The byte size of the given samples for the format, or a negative error code if unknown format.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_silence_64 (C function)c.snd_pcm_format_silence_64hNtauh1hhjj;hhhNhNubh)}(hhh](h)}(hIconst unsigned char * snd_pcm_format_silence_64 (snd_pcm_format_t format)h]h)}(hGconst unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format)h](jL)}(hj\h]hconst}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhMubh)}(hunsignedh]hunsigned}(hj GhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFhhhjFhMubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhMubh)}(hcharh]hchar}(hj(GhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFhhhjFhMubj)}(h h]h }(hj6GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhMubj)}(hjh]h*}(hjDGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhjFhMubj)}(hsnd_pcm_format_silence_64h]j%)}(hsnd_pcm_format_silence_64h]hsnd_pcm_format_silence_64}(hjUGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhjFhMubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjtGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvGmodnameN classnameNjj)}j]j)}jjWGsbc.snd_pcm_format_silence_64asbuh1hhjmGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmGubj%)}(hformath]hformat}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiGubah}(h]h ]h"]h$]h&]j=j>uh1j?hjFhhhjFhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhjFhMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhMhjFhhubjb)}(hhh]jg)}(h'return the silent data in 8 bytes arrayh]h'return the silent data in 8 bytes array}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhjFhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The format pattern to fill or ``NULL`` if error.h](jg)}(h**Parameters**h]j)}(hjGh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj Hh]hsnd_pcm_format_t format}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Hubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjHubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj&HhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"HhMhj#Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj"HhMhjHubah}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h **Return**h]j)}(hjHHh]hReturn}(hjJHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFHubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubjg)}(h0The format pattern to fill or ``NULL`` if error.h](hThe format pattern to fill or }(hj^HhhhNhNubj)}(h``NULL``h]hNULL}(hjfHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^Hubh if error.}(hj^HhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_format_set_silence (C function)c.snd_pcm_format_set_silencehNtauh1hhjj;hhhNhNubh)}(hhh](h)}(hZint snd_pcm_format_set_silence (snd_pcm_format_t format, void *data, unsigned int samples)h]h)}(hYint snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int samples)h](h)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjHhMubj)}(hsnd_pcm_format_set_silenceh]j%)}(hsnd_pcm_format_set_silenceh]hsnd_pcm_format_set_silence}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjHhMubj@)}(h;(snd_pcm_format_t format, void *data, unsigned int samples)h](jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjHsbc.snd_pcm_format_set_silenceasbuh1hhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(hformath]hformat}(hj IhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj&IhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"Iubj)}(h h]h }(hj4IhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"Iubj)}(hjh]h*}(hjBIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"Iubj%)}(hdatah]hdata}(hjOIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"Iubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubjF)}(hunsigned int samplesh](h)}(hunsignedh]hunsigned}(hjhIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdIubj)}(h h]h }(hjvIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdIubh)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdIubj%)}(hsamplesh]hsamples}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjHhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhjHhMubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhMhjHhhubjb)}(hhh]jg)}(h"set the silence data on the bufferh]h"set the silence data on the buffer}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIjjIjjjuh1hhhhjj;hNhNubj)}(hX5**Parameters** ``snd_pcm_format_t format`` the PCM format ``void *data`` the buffer pointer ``unsigned int samples`` the number of samples to set silence **Description** Sets the silence data on the buffer for the given samples. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjIh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubj)}(hhh](j)}(h+``snd_pcm_format_t format`` the PCM format h](j)}(h``snd_pcm_format_t format``h]j)}(hj Jh]hsnd_pcm_format_t format}(hj JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Jubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjJubj)}(hhh]jg)}(hthe PCM formath]hthe PCM format}(hj$JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj JhMhj!Jubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhj JhMhjJubj)}(h"``void *data`` the buffer pointer h](j)}(h``void *data``h]j)}(hjDJh]h void *data}(hjFJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj>Jubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hj]JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYJhMhjZJubah}(h]h ]h"]h$]h&]uh1jhj>Jubeh}(h]h ]h"]h$]h&]uh1jhjYJhMhjJubj)}(h>``unsigned int samples`` the number of samples to set silence h](j)}(h``unsigned int samples``h]j)}(hj}Jh]hunsigned int samples}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Jubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjwJubj)}(hhh]jg)}(h$the number of samples to set silenceh]h$the number of samples to set silence}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjwJubeh}(h]h ]h"]h$]h&]uh1jhjJhMhjJubeh}(h]h ]h"]h$]h&]uh1jhjIubjg)}(h**Description**h]j)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubjg)}(h:Sets the silence data on the buffer for the given samples.h]h:Sets the silence data on the buffer for the given samples.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubjg)}(h **Return**h]j)}(hjJh]hReturn}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_limit_rates (C function)c.snd_pcm_hw_limit_rateshNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h8int snd_pcm_hw_limit_rates (struct snd_pcm_hardware *hw)h]h)}(h7int snd_pcm_hw_limit_rates(struct snd_pcm_hardware *hw)h](h)}(hinth]hint}(hj$KhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj Khhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hj3KhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Khhhj2KhMubj)}(hsnd_pcm_hw_limit_ratesh]j%)}(hsnd_pcm_hw_limit_ratesh]hsnd_pcm_hw_limit_rates}(hjEKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAKubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj Khhhj2KhMubj@)}(h(struct snd_pcm_hardware *hw)h]jF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hjaKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]Kubj)}(h h]h }(hjnKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]Kubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|Kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jjGKsbc.snd_pcm_hw_limit_ratesasbuh1hhj]Kubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]Kubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]Kubj%)}(hhwh]hhw}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]Kubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYKubah}(h]h ]h"]h$]h&]j=j>uh1j?hj Khhhj2KhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhj2KhMubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2KhMhjKhhubjb)}(hhh]jg)}(h"determine rate_min/rate_max fieldsh]h"determine rate_min/rate_max fields}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjKhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhj2KhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``struct snd_pcm_hardware *hw`` the pcm hw instance **Description** Determines the rate_min and rate_max fields from the rates bits of the given hw. **Return** Zero if successful.h](jg)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubj)}(hhh]j)}(h4``struct snd_pcm_hardware *hw`` the pcm hw instance h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hj%Lh]hstruct snd_pcm_hardware *hw}(hj'LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Lubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubj)}(hhh]jg)}(hthe pcm hw instanceh]hthe pcm hw instance}(hj>LhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:LhMhj;Lubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhj:LhMhjLubah}(h]h ]h"]h$]h&]uh1jhjLubjg)}(h**Description**h]j)}(hj`Lh]h Description}(hjbLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^Lubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubjg)}(hPDetermines the rate_min and rate_max fields from the rates bits of the given hw.h]hPDetermines the rate_min and rate_max fields from the rates bits of the given hw.}(hjvLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubjg)}(h **Return**h]j)}(hjLh]hReturn}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubjg)}(hZero if successful.h]hZero if successful.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_rate_to_rate_bit (C function)c.snd_pcm_rate_to_rate_bithNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h9unsigned int snd_pcm_rate_to_rate_bit (unsigned int rate)h]h)}(h8unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate)h](h)}(hunsignedh]hunsigned}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhhhjLhM ubh)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhjLhM ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhhhjLhM ubj)}(hsnd_pcm_rate_to_rate_bith]j%)}(hsnd_pcm_rate_to_rate_bith]hsnd_pcm_rate_to_rate_bit}(hj MhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhjLhM ubj@)}(h(unsigned int rate)h]jF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hj%MhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!Mubj)}(h h]h }(hj3MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!Mubh)}(hinth]hint}(hjAMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!Mubj)}(h h]h }(hjOMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!Mubj%)}(hrateh]hrate}(hj]MhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!Mubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhjLhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjLhM ubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhM hjLhhubjb)}(hhh]jg)}(h.converts sample rate to SNDRV_PCM_RATE_xxx bith]h.converts sample rate to SNDRV_PCM_RATE_xxx bit}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jahjLhhhjLhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``unsigned int rate`` the sample rate to convert **Return** The SNDRV_PCM_RATE_xxx flag that corresponds to the given rate, or SNDRV_PCM_RATE_KNOT for an unknown rate.h](jg)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubj)}(hhh]j)}(h1``unsigned int rate`` the sample rate to convert h](j)}(h``unsigned int rate``h]j)}(hjMh]hunsigned int rate}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubj)}(hhh]jg)}(hthe sample rate to converth]hthe sample rate to convert}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubjg)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubjg)}(hkThe SNDRV_PCM_RATE_xxx flag that corresponds to the given rate, or SNDRV_PCM_RATE_KNOT for an unknown rate.h]hkThe SNDRV_PCM_RATE_xxx flag that corresponds to the given rate, or SNDRV_PCM_RATE_KNOT for an unknown rate.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_rate_bit_to_rate (C function)c.snd_pcm_rate_bit_to_ratehNtauh1hhjj;hhhNhNubh)}(hhh](h)}(h=unsigned int snd_pcm_rate_bit_to_rate (unsigned int rate_bit)h]h)}(huh1jhjDNhhhjVNhMubj@)}(h(unsigned int rate_bit)h]jF)}(hunsigned int rate_bith](h)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hrate_bith]hrate_bit}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubah}(h]h ]h"]h$]h&]j=j>uh1j?hjDNhhhjVNhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@NhhhjVNhMubah}(h]j;Nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjVNhMhj=Nhhubjb)}(hhh]jg)}(h.converts SNDRV_PCM_RATE_xxx bit to sample rateh]h.converts SNDRV_PCM_RATE_xxx bit to sample rate}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjOhhubah}(h]h ]h"]h$]h&]uh1jahj=NhhhjVNhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhjj;hNhNubj)}(h**Parameters** ``unsigned int rate_bit`` the rate bit to convert **Return** The sample rate that corresponds to the given SNDRV_PCM_RATE_xxx flag or 0 for an unknown rate bit.h](jg)}(h**Parameters**h]j)}(hj%Oh]h Parameters}(hj'OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Oubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjOubj)}(hhh]j)}(h2``unsigned int rate_bit`` the rate bit to convert h](j)}(h``unsigned int rate_bit``h]j)}(hjDOh]hunsigned int rate_bit}(hjFOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj>Oubj)}(hhh]jg)}(hthe rate bit to converth]hthe rate bit to convert}(hj]OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYOhMhjZOubah}(h]h ]h"]h$]h&]uh1jhj>Oubeh}(h]h ]h"]h$]h&]uh1jhjYOhMhj;Oubah}(h]h ]h"]h$]h&]uh1jhjOubjg)}(h **Return**h]j)}(hjOh]hReturn}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Oubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjOubjg)}(hcThe sample rate that corresponds to the given SNDRV_PCM_RATE_xxx flag or 0 for an unknown rate bit.h]hcThe sample rate that corresponds to the given SNDRV_PCM_RATE_xxx flag or 0 for an unknown rate bit.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_pcm_rate_mask_intersect (C function)c.snd_pcm_rate_mask_intersecthNtauh1hhjj;hhhNhNubh)}(hhh](h)}(hUunsigned int snd_pcm_rate_mask_intersect (unsigned int rates_a, unsigned int rates_b)h]h)}(hTunsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a, unsigned int rates_b)h](h)}(hunsignedh]hunsigned}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM<ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjOhM<ubh)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhjOhM<ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjOhM<ubj)}(hsnd_pcm_rate_mask_intersecth]j%)}(hsnd_pcm_rate_mask_intersecth]hsnd_pcm_rate_mask_intersect}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjOhM<ubj@)}(h,(unsigned int rates_a, unsigned int rates_b)h](jF)}(hunsigned int rates_ah](h)}(hunsignedh]hunsigned}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hj+PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hinth]hint}(hj9PhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjGPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hrates_ah]hrates_a}(hjUPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(hunsigned int rates_bh](h)}(hunsignedh]hunsigned}(hjnPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjPubj)}(h h]h }(hj|PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjPubh)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjPubj%)}(hrates_bh]hrates_b}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjOhhhjOhM<ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjOhM<ubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhM<hjOhhubjb)}(hhh]jg)}(h0computes the intersection between two rate masksh]h0computes the intersection between two rate masks}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM1hjPhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjOhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjj;hNhNubj)}(hX**Parameters** ``unsigned int rates_a`` The first rate mask ``unsigned int rates_b`` The second rate mask **Description** This function computes the rates that are supported by both rate masks passed to the function. It will take care of the special handling of SNDRV_PCM_RATE_CONTINUOUS and SNDRV_PCM_RATE_KNOT. **Return** A rate mask containing the rates that are supported by both rates_a and rates_b.h](jg)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM5hjPubj)}(hhh](j)}(h-``unsigned int rates_a`` The first rate mask h](j)}(h``unsigned int rates_a``h]j)}(hjQh]hunsigned int rates_a}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM2hj Qubj)}(hhh]jg)}(hThe first rate maskh]hThe first rate mask}(hj*QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&QhM2hj'Qubah}(h]h ]h"]h$]h&]uh1jhj Qubeh}(h]h ]h"]h$]h&]uh1jhj&QhM2hjQubj)}(h.``unsigned int rates_b`` The second rate mask h](j)}(h``unsigned int rates_b``h]j)}(hjJQh]hunsigned int rates_b}(hjLQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM3hjDQubj)}(hhh]jg)}(hThe second rate maskh]hThe second rate mask}(hjcQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_QhM3hj`Qubah}(h]h ]h"]h$]h&]uh1jhjDQubeh}(h]h ]h"]h$]h&]uh1jhj_QhM3hjQubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM5hjPubjg)}(hThis function computes the rates that are supported by both rate masks passed to the function. It will take care of the special handling of SNDRV_PCM_RATE_CONTINUOUS and SNDRV_PCM_RATE_KNOT.h]hThis function computes the rates that are supported by both rate masks passed to the function. It will take care of the special handling of SNDRV_PCM_RATE_CONTINUOUS and SNDRV_PCM_RATE_KNOT.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM5hjPubjg)}(h **Return**h]j)}(hjQh]hReturn}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9hjPubjg)}(hPA rate mask containing the rates that are supported by both rates_a and rates_b.h]hPA rate mask containing the rates that are supported by both rates_a and rates_b.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9hjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_rate_range_to_bits (C function)c.snd_pcm_rate_range_to_bitshNtauh1hhjj;hhhNhNubh)}(hhh](h)}(hVunsigned int snd_pcm_rate_range_to_bits (unsigned int rate_min, unsigned int rate_max)h]h)}(hUunsigned int snd_pcm_rate_range_to_bits(unsigned int rate_min, unsigned int rate_max)h](h)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMYubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhMYubh)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQhhhjQhMYubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhMYubj)}(hsnd_pcm_rate_range_to_bitsh]j%)}(hsnd_pcm_rate_range_to_bitsh]hsnd_pcm_rate_range_to_bits}(hj.RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*Rubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjQhMYubj@)}(h.(unsigned int rate_min, unsigned int rate_max)h](jF)}(hunsigned int rate_minh](h)}(hunsignedh]hunsigned}(hjJRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFRubj)}(h h]h }(hjXRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFRubh)}(hinth]hint}(hjfRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFRubj)}(h h]h }(hjtRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFRubj%)}(hrate_minh]hrate_min}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBRubjF)}(hunsigned int rate_maxh](h)}(hunsignedh]hunsigned}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj%)}(hrate_maxh]hrate_max}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjQhhhjQhMYubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjQhMYubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhMYhjQhhubjb)}(hhh]jg)}(h-converts rate range to SNDRV_PCM_RATE_xxx bith]h-converts rate range to SNDRV_PCM_RATE_xxx bit}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMOhjRhhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjQhMYubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSjjSjjjuh1hhhhjj;hNhNubj)}(hX**Parameters** ``unsigned int rate_min`` the minimum sample rate ``unsigned int rate_max`` the maximum sample rate **Description** This function has an implicit assumption: the rates in the given range have only the pre-defined rates like 44100 or 16000. **Return** The SNDRV_PCM_RATE_xxx flag that corresponds to the given rate range, or SNDRV_PCM_RATE_KNOT for an unknown range.h](jg)}(h**Parameters**h]j)}(hjSh]h Parameters}(hj!ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMShjSubj)}(hhh](j)}(h2``unsigned int rate_min`` the minimum sample rate h](j)}(h``unsigned int rate_min``h]j)}(hj>Sh]hunsigned int rate_min}(hj@ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuh1jhj3ThhhjEThKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjtThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpTubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjZTsbc.snd_pcm_lib_preallocate_freeasbuh1hhjpTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpTubj%)}(h substreamh]h substream}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlTubah}(h]h ]h"]h$]h&]j=j>uh1j?hj3ThhhjEThKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/ThhhjEThKubah}(h]j*Tah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEThKhj,Thhubjb)}(hhh]jg)}(h;release the preallocated buffer of the specified substream.h]h;release the preallocated buffer of the specified substream.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK|hjThhubah}(h]h ]h"]h$]h&]uh1jahj,ThhhjEThKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj ThNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Releases the pre-allocated buffer of the given substream.h](jg)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjUubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj8Uh]h#struct snd_pcm_substream *substream}(hj:UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Uubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK}hj2Uubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjQUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMUhK}hjNUubah}(h]h ]h"]h$]h&]uh1jhj2Uubeh}(h]h ]h"]h$]h&]uh1jhjMUhK}hj/Uubah}(h]h ]h"]h$]h&]uh1jhjUubjg)}(h**Description**h]j)}(hjsUh]h Description}(hjuUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqUubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjUubjg)}(h9Releases the pre-allocated buffer of the given substream.h]h9Releases the pre-allocated buffer of the given substream.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_pcm_lib_preallocate_free_for_all (C function)&c.snd_pcm_lib_preallocate_free_for_allhNtauh1hhj ThhhNhNubh)}(hhh](h)}(h?void snd_pcm_lib_preallocate_free_for_all (struct snd_pcm *pcm)h]h)}(h>void snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm)h](h)}(hvoidh]hvoid}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjUhKubj)}(h$snd_pcm_lib_preallocate_free_for_allh]j%)}(h$snd_pcm_lib_preallocate_free_for_allh]h$snd_pcm_lib_preallocate_free_for_all}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjUhKubj@)}(h(struct snd_pcm *pcm)h]jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjUsb&c.snd_pcm_lib_preallocate_free_for_allasbuh1hhjUubj)}(h h]h }(hj3VhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjAVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(hpcmh]hpcm}(hjNVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubah}(h]h ]h"]h$]h&]j=j>uh1j?hjUhhhjUhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhjUhKubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhKhjUhhubjb)}(hhh]jg)}(h,release all pre-allocated buffers on the pcmh]h,release all pre-allocated buffers on the pcm}(hjxVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjuVhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhjUhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhj ThNhNubj)}(h**Parameters** ``struct snd_pcm *pcm`` the pcm instance **Description** Releases all the pre-allocated buffers on the given pcm.h](jg)}(h**Parameters**h]j)}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubj)}(hhh]j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjVh]hstruct snd_pcm *pcm}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubjg)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubjg)}(h8Releases all the pre-allocated buffers on the given pcm.h]h8Releases all the pre-allocated buffers on the given pcm.}(hj WhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_lib_preallocate_pages (C function)c.snd_pcm_lib_preallocate_pageshNtauh1hhj ThhhNhNubh)}(hhh](h)}(hvoid snd_pcm_lib_preallocate_pages (struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h]h)}(hvoid snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](h)}(hvoidh]hvoid}(hj9WhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5Whhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMBubj)}(h h]h }(hjHWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5WhhhjGWhMBubj)}(hsnd_pcm_lib_preallocate_pagesh]j%)}(hsnd_pcm_lib_preallocate_pagesh]hsnd_pcm_lib_preallocate_pages}(hjZWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5WhhhjGWhMBubj@)}(h](struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjvWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrWubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jj\Wsbc.snd_pcm_lib_preallocate_pagesasbuh1hhjrWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrWubj%)}(h substreamh]h substream}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnWubjF)}(hint typeh](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(htypeh]htype}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnWubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXubj)}(h h]h }(hj*XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubh)}(hhh]j%)}(hdeviceh]hdevice}(hj;XhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=XmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj)}(h h]h }(hjYXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hjgXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hdatah]hdata}(hjtXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnWubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj%)}(hsizeh]hsize}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnWubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj%)}(hmaxh]hmax}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj5WhhhjGWhMBubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1WhhhjGWhMBubah}(h]j,Wah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGWhMBhj.Whhubjb)}(hhh]jg)}(h%pre-allocation for the given DMA typeh]h%pre-allocation for the given DMA type}(hj.YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9hj+Yhhubah}(h]h ]h"]h$]h&]uh1jahj.WhhhjGWhMBubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFYjjFYjjjuh1hhhhj ThNhNubj)}(hXk**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes ``size_t max`` the max. allowed pre-allocation size **Description** Do pre-allocation for the given DMA buffer type.h](jg)}(h**Parameters**h]j)}(hjPYh]h Parameters}(hjRYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNYubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjJYubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjoYh]h#struct snd_pcm_substream *substream}(hjqYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmYubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM:hjiYubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM:hjYubah}(h]h ]h"]h$]h&]uh1jhjiYubeh}(h]h ]h"]h$]h&]uh1jhjYhM:hjfYubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hjYh]hint type}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM;hjYubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM;hjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhM;hjfYubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjYh]hstruct device *data}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM<hjYubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM<hjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhM<hjfYubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjZh]h size_t size}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjZubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj3ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/ZhM=hj0Zubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj/ZhM=hjfYubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjSZh]h size_t max}(hjUZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQZubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM>hjMZubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjlZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhZhM>hjiZubah}(h]h ]h"]h$]h&]uh1jhjMZubeh}(h]h ]h"]h$]h&]uh1jhjhZhM>hjfYubeh}(h]h ]h"]h$]h&]uh1jhjJYubjg)}(h**Description**h]j)}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM@hjJYubjg)}(h0Do pre-allocation for the given DMA buffer type.h]h0Do pre-allocation for the given DMA buffer type.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM@hjJYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_pcm_lib_preallocate_pages_for_all (C function)'c.snd_pcm_lib_preallocate_pages_for_allhNtauh1hhj ThhhNhNubh)}(hhh](h)}(hovoid snd_pcm_lib_preallocate_pages_for_all (struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h]h)}(hnvoid snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](h)}(hvoidh]hvoid}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMUubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZhhhjZhMUubj)}(h%snd_pcm_lib_preallocate_pages_for_allh]j%)}(h%snd_pcm_lib_preallocate_pages_for_allh]h%snd_pcm_lib_preallocate_pages_for_all}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjZhhhjZhMUubj@)}(hD(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hj[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj [ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj [ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hj.[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0[modnameN classnameNjj)}j]j)}jjZsb'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj [ubj)}(h h]h }(hjN[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj [ubj)}(hjh]h*}(hj\[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj [ubj%)}(hpcmh]hpcm}(hji[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj [ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(hint typeh](h)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~[ubj%)}(htypeh]htype}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hdatah]hdata}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jJ['c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj[ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj%)}(hsizeh]hsize}(hj(\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjD\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF\modnameN classnameNjj)}j]jJ['c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj=\ubj)}(h h]h }(hjb\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=\ubj%)}(hmaxh]hmax}(hjp\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjZhhhjZhMUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjZhMUubah}(h]jZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhMUhjZhhubjb)}(hhh]jg)}(h:pre-allocation for continuous memory type (all substreams)h]h:pre-allocation for continuous memory type (all substreams)}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKhj\hhubah}(h]h ]h"]h$]h&]uh1jahjZhhhjZhMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhj ThNhNubj)}(hXh**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``void *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes ``size_t max`` the max. allowed pre-allocation size **Description** Do pre-allocation to all substreams of the given pcm for the specified DMA type.h](jg)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhj\ubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj\h]hstruct snd_pcm *pcm}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMLhj\ubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hMLhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMLhj\ubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj]h]hint type}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMMhj]ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj-]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)]hMMhj*]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj)]hMMhj\ubj)}(h'``void *data`` DMA type dependent data h](j)}(h``void *data``h]j)}(hjM]h]h void *data}(hjO]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMNhjG]ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjf]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjb]hMNhjc]ubah}(h]h ]h"]h$]h&]uh1jhjG]ubeh}(h]h ]h"]h$]h&]uh1jhjb]hMNhj\ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hj]h]h size_t size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhj]ubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hMOhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMOhj\ubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hj]h]h size_t max}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMPhj]ubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hMPhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMPhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\ubjg)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMRhj\ubjg)}(hPDo pre-allocation to all substreams of the given pcm for the specified DMA type.h]hPDo pre-allocation to all substreams of the given pcm for the specified DMA type.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMRhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_set_managed_buffer (C function)c.snd_pcm_set_managed_bufferhNtauh1hhj ThhhNhNubh)}(hhh](h)}(h|int snd_pcm_set_managed_buffer (struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h]h)}(h{int snd_pcm_set_managed_buffer(struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](h)}(hinth]hint}(hj?^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;^hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM|ubj)}(h h]h }(hjN^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;^hhhjM^hM|ubj)}(hsnd_pcm_set_managed_bufferh]j%)}(hsnd_pcm_set_managed_bufferh]hsnd_pcm_set_managed_buffer}(hj`^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;^hhhjM^hM|ubj@)}(h](struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj|^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjx^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjx^ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jjb^sbc.snd_pcm_set_managed_bufferasbuh1hhjx^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjx^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx^ubj%)}(h substreamh]h substream}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjx^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjt^ubjF)}(hint typeh](h)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj%)}(htypeh]htype}(hj _hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjt^ubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hj#_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj_ubj)}(h h]h }(hj0_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjA_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjC_modnameN classnameNjj)}j]j^c.snd_pcm_set_managed_bufferasbuh1hhj_ubj)}(h h]h }(hj__hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj)}(hjh]h*}(hjm_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj%)}(hdatah]hdata}(hjz_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjt^ubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j^c.snd_pcm_set_managed_bufferasbuh1hhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj%)}(hsizeh]hsize}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjt^ubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j^c.snd_pcm_set_managed_bufferasbuh1hhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj%)}(hmaxh]hmax}(hj `hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjt^ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;^hhhjM^hM|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7^hhhjM^hM|ubah}(h]j2^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjM^hM|hj4^hhubjb)}(hhh]jg)}(h(set up buffer management for a substreamh]h(set up buffer management for a substream}(hj4`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM^hj1`hhubah}(h]h ]h"]h$]h&]uh1jahj4^hhhjM^hM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjL`jjL`jjjuh1hhhhj ThNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes ``size_t max`` the max. allowed pre-allocation size **Description** Do pre-allocation for the given DMA buffer type, and set the managed buffer allocation mode to the given substream. In this mode, PCM core will allocate a buffer automatically before PCM hw_params ops call, and release the buffer after PCM hw_free ops call as well, so that the driver doesn't need to invoke the allocation and the release explicitly in its callback. When a buffer is actually allocated before the PCM hw_params call, it turns on the runtime buffer_changed flag for drivers changing their h/w parameters accordingly. When **size** is non-zero and **max** is zero, this tries to allocate for only the exact buffer size without fallback, and may return -ENOMEM. Otherwise, the function tries to allocate smaller chunks if the allocation fails. This is the behavior of snd_pcm_set_fixed_buffer(). When both **size** and **max** are zero, the function only sets up the buffer for later dynamic allocations. It's used typically for buffers with SNDRV_DMA_TYPE_VMALLOC type. Upon successful buffer allocation and setup, the function returns 0. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjV`h]h Parameters}(hjX`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT`ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMbhjP`ubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hju`h]h#struct snd_pcm_substream *substream}(hjw`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs`ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM_hjo`ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hM_hj`ubah}(h]h ]h"]h$]h&]uh1jhjo`ubeh}(h]h ]h"]h$]h&]uh1jhj`hM_hjl`ubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj`h]hint type}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM`hj`ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hM`hj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hM`hjl`ubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hj`h]hstruct device *data}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMahj`ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMahj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMahjl`ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hj ah]h size_t size}(hj"ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMbhjaubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj9ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5ahMbhj6aubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj5ahMbhjl`ubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjYah]h size_t max}(hj[ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWaubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMchjSaubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjrahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnahMchjoaubah}(h]h ]h"]h$]h&]uh1jhjSaubeh}(h]h ]h"]h$]h&]uh1jhjnahMchjl`ubeh}(h]h ]h"]h$]h&]uh1jhjP`ubjg)}(h**Description**h]j)}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMehjP`ubjg)}(hXDo pre-allocation for the given DMA buffer type, and set the managed buffer allocation mode to the given substream. In this mode, PCM core will allocate a buffer automatically before PCM hw_params ops call, and release the buffer after PCM hw_free ops call as well, so that the driver doesn't need to invoke the allocation and the release explicitly in its callback. When a buffer is actually allocated before the PCM hw_params call, it turns on the runtime buffer_changed flag for drivers changing their h/w parameters accordingly.h]hXDo pre-allocation for the given DMA buffer type, and set the managed buffer allocation mode to the given substream. In this mode, PCM core will allocate a buffer automatically before PCM hw_params ops call, and release the buffer after PCM hw_free ops call as well, so that the driver doesn’t need to invoke the allocation and the release explicitly in its callback. When a buffer is actually allocated before the PCM hw_params call, it turns on the runtime buffer_changed flag for drivers changing their h/w parameters accordingly.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMehjP`ubjg)}(hXWhen **size** is non-zero and **max** is zero, this tries to allocate for only the exact buffer size without fallback, and may return -ENOMEM. Otherwise, the function tries to allocate smaller chunks if the allocation fails. This is the behavior of snd_pcm_set_fixed_buffer().h](hWhen }(hjahhhNhNubj)}(h**size**h]hsize}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh is non-zero and }(hjahhhNhNubj)}(h**max**h]hmax}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh is zero, this tries to allocate for only the exact buffer size without fallback, and may return -ENOMEM. Otherwise, the function tries to allocate smaller chunks if the allocation fails. This is the behavior of snd_pcm_set_fixed_buffer().}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMohjP`ubjg)}(hWhen both **size** and **max** are zero, the function only sets up the buffer for later dynamic allocations. It's used typically for buffers with SNDRV_DMA_TYPE_VMALLOC type.h](h When both }(hjahhhNhNubj)}(h**size**h]hsize}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh and }(hjahhhNhNubj)}(h**max**h]hmax}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh are zero, the function only sets up the buffer for later dynamic allocations. It’s used typically for buffers with SNDRV_DMA_TYPE_VMALLOC type.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMthjP`ubjg)}(hDUpon successful buffer allocation and setup, the function returns 0.h]hDUpon successful buffer allocation and setup, the function returns 0.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMxhjP`ubjg)}(h **Return**h]j)}(hj0bh]hReturn}(hj2bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.bubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMzhjP`ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjFbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMzhjP`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_pcm_set_managed_buffer_all (C function) c.snd_pcm_set_managed_buffer_allhNtauh1hhj ThhhNhNubh)}(hhh](h)}(hpint snd_pcm_set_managed_buffer_all (struct snd_pcm *pcm, int type, struct device *data, size_t size, size_t max)h]h)}(hoint snd_pcm_set_managed_buffer_all(struct snd_pcm *pcm, int type, struct device *data, size_t size, size_t max)h](h)}(hinth]hint}(hjubhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqbhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqbhhhjbhMubj)}(hsnd_pcm_set_managed_buffer_allh]j%)}(hsnd_pcm_set_managed_buffer_allh]hsnd_pcm_set_managed_buffer_all}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqbhhhjbhMubj@)}(hM(struct snd_pcm *pcm, int type, struct device *data, size_t size, size_t max)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjbsb c.snd_pcm_set_managed_buffer_allasbuh1hhjbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hpcmh]hpcm}(hj chhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(hint typeh](h)}(hinth]hint}(hj$chhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj cubj)}(h h]h }(hj2chhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj cubj%)}(htypeh]htype}(hj@chhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj cubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hjYchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUcubj)}(h h]h }(hjfchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUcubh)}(hhh]j%)}(hdeviceh]hdevice}(hjwchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjycmodnameN classnameNjj)}j]jb c.snd_pcm_set_managed_buffer_allasbuh1hhjUcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUcubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUcubj%)}(hdatah]hdata}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jb c.snd_pcm_set_managed_buffer_allasbuh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj%)}(hsizeh]hsize}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jb c.snd_pcm_set_managed_buffer_allasbuh1hhj dubj)}(h h]h }(hj2dhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj dubj%)}(hmaxh]hmax}(hj@dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj dubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjqbhhhjbhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmbhhhjbhMubah}(h]jhbah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhMhjjbhhubjb)}(hhh]jg)}(h>set up buffer management for all substreams for all substreamsh]h>set up buffer management for all substreams for all substreams}(hjjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjgdhhubah}(h]h ]h"]h$]h&]uh1jahjjbhhhjbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj ThNhNubj)}(hX**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes ``size_t max`` the max. allowed pre-allocation size **Description** Do pre-allocation to all substreams of the given pcm for the specified DMA type and size, and set the managed_buffer_alloc flag to each substream. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjdh]hstruct snd_pcm *pcm}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hjdh]hint type}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjeh]hstruct device *data}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hj6ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2ehMhj3eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj2ehMhjdubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjVeh]h size_t size}(hjXehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPeubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjoehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkehMhjleubah}(h]h ]h"]h$]h&]uh1jhjPeubeh}(h]h ]h"]h$]h&]uh1jhjkehMhjdubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjeh]h size_t max}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubeh}(h]h ]h"]h$]h&]uh1jhjdubjg)}(h**Description**h]j)}(hjeh]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubjg)}(hDo pre-allocation to all substreams of the given pcm for the specified DMA type and size, and set the managed_buffer_alloc flag to each substream.h]hDo pre-allocation to all substreams of the given pcm for the specified DMA type and size, and set the managed_buffer_alloc flag to each substream.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubjg)}(h **Return**h]j)}(hjeh]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_malloc_pages (C function)c.snd_pcm_lib_malloc_pageshNtauh1hhj ThhhNhNubh)}(hhh](h)}(hOint snd_pcm_lib_malloc_pages (struct snd_pcm_substream *substream, size_t size)h]h)}(hNint snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size)h](h)}(hinth]hint}(hj6fhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2fhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjEfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2fhhhjDfhMubj)}(hsnd_pcm_lib_malloc_pagesh]j%)}(hsnd_pcm_lib_malloc_pagesh]hsnd_pcm_lib_malloc_pages}(hjWfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2fhhhjDfhMubj@)}(h2(struct snd_pcm_substream *substream, size_t size)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjsfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjofubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjofubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjYfsbc.snd_pcm_lib_malloc_pagesasbuh1hhjofubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjofubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjofubj%)}(h substreamh]h substream}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjofubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkfubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jfc.snd_pcm_lib_malloc_pagesasbuh1hhjfubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(hsizeh]hsize}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj2fhhhjDfhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.fhhhjDfhMubah}(h]j)fah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDfhMhj+fhhubjb)}(hhh]jg)}(hallocate the DMA bufferh]hallocate the DMA buffer}(hj>ghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;ghhubah}(h]h ]h"]h$]h&]uh1jahj+fhhhjDfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVgjjVgjjjuh1hhhhj ThNhNubj)}(hXf**Parameters** ``struct snd_pcm_substream *substream`` the substream to allocate the DMA buffer to ``size_t size`` the requested buffer size in bytes **Description** Allocates the DMA buffer on the BUS type given earlier to snd_pcm_lib_preallocate_xxx_pages(). **Return** 1 if the buffer is changed, 0 if not changed, or a negative code on failure.h](jg)}(h**Parameters**h]j)}(hj`gh]h Parameters}(hjbghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^gubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZgubj)}(hhh](j)}(hT``struct snd_pcm_substream *substream`` the substream to allocate the DMA buffer to h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjgh]h#struct snd_pcm_substream *substream}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}gubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjygubj)}(hhh]jg)}(h+the substream to allocate the DMA buffer toh]h+the substream to allocate the DMA buffer to}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjygubeh}(h]h ]h"]h$]h&]uh1jhjghMhjvgubj)}(h3``size_t size`` the requested buffer size in bytes h](j)}(h``size_t size``h]j)}(hjgh]h size_t size}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjgubj)}(hhh]jg)}(h"the requested buffer size in bytesh]h"the requested buffer size in bytes}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjvgubeh}(h]h ]h"]h$]h&]uh1jhjZgubjg)}(h**Description**h]j)}(hjgh]h Description}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZgubjg)}(h^Allocates the DMA buffer on the BUS type given earlier to snd_pcm_lib_preallocate_xxx_pages().h]h^Allocates the DMA buffer on the BUS type given earlier to snd_pcm_lib_preallocate_xxx_pages().}(hj hhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZgubjg)}(h **Return**h]j)}(hjhh]hReturn}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZgubjg)}(hL1 if the buffer is changed, 0 if not changed, or a negative code on failure.h]hL1 if the buffer is changed, 0 if not changed, or a negative code on failure.}(hj0hhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_free_pages (C function)c.snd_pcm_lib_free_pageshNtauh1hhj ThhhNhNubh)}(hhh](h)}(h@int snd_pcm_lib_free_pages (struct snd_pcm_substream *substream)h]h)}(h?int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hj_hhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[hhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjnhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhhjmhhMubj)}(hsnd_pcm_lib_free_pagesh]j%)}(hsnd_pcm_lib_free_pagesh]hsnd_pcm_lib_free_pages}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|hubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhhjmhhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}jjhsbc.snd_pcm_lib_free_pagesasbuh1hhjhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(h substreamh]h substream}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubah}(h]h ]h"]h$]h&]j=j>uh1j?hj[hhhhjmhhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWhhhhjmhhMubah}(h]jRhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmhhMhjThhhubjb)}(hhh]jg)}(h!release the allocated DMA buffer.h]h!release the allocated DMA buffer.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjihhubah}(h]h ]h"]h$]h&]uh1jahjThhhhjmhhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7ijj7ijjjuh1hhhhj ThNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the substream to release the DMA buffer **Description** Releases the DMA buffer allocated via snd_pcm_lib_malloc_pages(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjAih]h Parameters}(hjCihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?iubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;iubj)}(hhh]j)}(hP``struct snd_pcm_substream *substream`` the substream to release the DMA buffer h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj`ih]h#struct snd_pcm_substream *substream}(hjbihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^iubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjZiubj)}(hhh]jg)}(h'the substream to release the DMA bufferh]h'the substream to release the DMA buffer}(hjyihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuihMhjviubah}(h]h ]h"]h$]h&]uh1jhjZiubeh}(h]h ]h"]h$]h&]uh1jhjuihMhjWiubah}(h]h ]h"]h$]h&]uh1jhj;iubjg)}(h**Description**h]j)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;iubjg)}(hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().h]hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;iubjg)}(h **Return**h]j)}(hjih]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;iubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj;iubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj ThhhNhNubeh}(h]pcm-memory-managementah ]h"]pcm memory managementah$]h&]uh1hhjX_hhhhhK)ubh)}(hhh](h)}(hPCM DMA Engine APIh]hPCM DMA Engine API}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhK-ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_hwparams_to_dma_slave_config (C function)"c.snd_hwparams_to_dma_slave_confighNtauh1hhjihhhNhNubh)}(hhh](h)}(hint snd_hwparams_to_dma_slave_config (const struct snd_pcm_substream *substream, const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h]h)}(hint snd_hwparams_to_dma_slave_config(const struct snd_pcm_substream *substream, const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](h)}(hinth]hint}(hj jhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK6ubj)}(h h]h }(hj/jhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjhhhj.jhK6ubj)}(h snd_hwparams_to_dma_slave_configh]j%)}(h snd_hwparams_to_dma_slave_configh]h snd_hwparams_to_dma_slave_config}(hjAjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=jubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjjhhhj.jhK6ubj@)}(hz(const struct snd_pcm_substream *substream, const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](jF)}(h)const struct snd_pcm_substream *substreamh](jL)}(hj\h]hconst}(hj]jhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYjubj)}(h h]h }(hjjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYjubjL)}(hjOh]hstruct}(hjxjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jjCjsb"c.snd_hwparams_to_dma_slave_configasbuh1hhjYjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYjubj%)}(h substreamh]h substream}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUjubjF)}(h&const struct snd_pcm_hw_params *paramsh](jL)}(hj\h]hconst}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubjL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj#khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%kmodnameN classnameNjj)}j]jj"c.snd_hwparams_to_dma_slave_configasbuh1hhjjubj)}(h h]h }(hjAkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjOkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hparamsh]hparams}(hj\khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUjubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjukhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqkubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jj"c.snd_hwparams_to_dma_slave_configasbuh1hhjqkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqkubj%)}(h slave_configh]h slave_config}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhj.jhK6ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhj.jhK6ubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.jhK6hjjhhubjb)}(hhh]jg)}(h%Convert hw_params to dma_slave_configh]h%Convert hw_params to dma_slave_config}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,hjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhj.jhK6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjihNhNubj)}(hX**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream ``const struct snd_pcm_hw_params *params`` hw_params ``struct dma_slave_config *slave_config`` DMA slave config **Description** This function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjlubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hj7lh]h)const struct snd_pcm_substream *substream}(hj9lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5lubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK-hj1lubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjPlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLlhK-hjMlubah}(h]h ]h"]h$]h&]uh1jhj1lubeh}(h]h ]h"]h$]h&]uh1jhjLlhK-hj.lubj)}(h5``const struct snd_pcm_hw_params *params`` hw_params h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjplh]h&const struct snd_pcm_hw_params *params}(hjrlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK.hjjlubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhK.hjlubah}(h]h ]h"]h$]h&]uh1jhjjlubeh}(h]h ]h"]h$]h&]uh1jhjlhK.hj.lubj)}(h;``struct dma_slave_config *slave_config`` DMA slave config h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hjlh]h%struct dma_slave_config *slave_config}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK/hjlubj)}(hhh]jg)}(hDMA slave configh]hDMA slave config}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhK/hjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhK/hj.lubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjlh]h Description}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK1hjlubjg)}(hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.h]hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK1hjlubjg)}(h **Return**h]j)}(hj mh]hReturn}(hj mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj mubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK4hjlubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj!mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK4hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h7snd_dmaengine_pcm_set_config_from_dai_data (C function),c.snd_dmaengine_pcm_set_config_from_dai_datahNtauh1hhjihhhNhNubh)}(hhh](h)}(hvoid snd_dmaengine_pcm_set_config_from_dai_data (const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h]h)}(hvoid snd_dmaengine_pcm_set_config_from_dai_data(const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h](h)}(hvoidh]hvoid}(hjPmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLmhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKjubj)}(h h]h }(hj_mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLmhhhj^mhKjubj)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]j%)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]h*snd_dmaengine_pcm_set_config_from_dai_data}(hjqmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLmhhhj^mhKjubj@)}(h(const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h](jF)}(h)const struct snd_pcm_substream *substreamh](jL)}(hj\h]hconst}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubjL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjsmsb,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(h substreamh]h substream}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(h1const struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hj\h]hconst}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hj'nhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubjL)}(hjOh]hstruct}(hj5nhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjBnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjSnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUnmodnameN classnameNjj)}j]jm,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjnubj)}(h h]h }(hjqnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hdma_datah]hdma_data}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jm,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(h slave_configh]h slave_config}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjLmhhhj^mhKjubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHmhhhj^mhKjubah}(h]jCmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^mhKjhjEmhhubjb)}(hhh]jg)}(h2Initializes a dma slave config using DAI DMA data.h]h2Initializes a dma slave config using DAI DMA data.}(hj&ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZhj#ohhubah}(h]h ]h"]h$]h&]uh1jahjEmhhhj^mhKjubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>ojj>ojjjuh1hhhhjihNhNubj)}(hXh**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream ``const struct snd_dmaengine_dai_dma_data *dma_data`` DAI DMA data ``struct dma_slave_config *slave_config`` DMA slave configuration **Description** Initializes the {dst,src}_addr, {dst,src}_maxburst, {dst,src}_addr_width fields of the DMA slave config from the same fields of the DAI DMA data struct. The src and dst fields will be initialized depending on the direction of the substream. If the substream is a playback stream the dst fields will be initialized, if it is a capture stream the src fields will be initialized. The {dst,src}_addr_width field will only be initialized if the SND_DMAENGINE_PCM_DAI_FLAG_PACK flag is set or if the addr_width field of the DAI DMA data struct is not equal to DMA_SLAVE_BUSWIDTH_UNDEFINED. If both conditions are met the latter takes priority.h](jg)}(h**Parameters**h]j)}(hjHoh]h Parameters}(hjJohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFoubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK^hjBoubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjgoh]h)const struct snd_pcm_substream *substream}(hjiohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeoubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK\hjaoubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|ohK\hj}oubah}(h]h ]h"]h$]h&]uh1jhjaoubeh}(h]h ]h"]h$]h&]uh1jhj|ohK\hj^oubj)}(hC``const struct snd_dmaengine_dai_dma_data *dma_data`` DAI DMA data h](j)}(h5``const struct snd_dmaengine_dai_dma_data *dma_data``h]j)}(hjoh]h1const struct snd_dmaengine_dai_dma_data *dma_data}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK]hjoubj)}(hhh]jg)}(h DAI DMA datah]h DAI DMA data}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohK]hjoubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohK]hj^oubj)}(hB``struct dma_slave_config *slave_config`` DMA slave configuration h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hjoh]h%struct dma_slave_config *slave_config}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK^hjoubj)}(hhh]jg)}(hDMA slave configurationh]hDMA slave configuration}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohK^hjoubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohK^hj^oubeh}(h]h ]h"]h$]h&]uh1jhjBoubjg)}(h**Description**h]j)}(hjph]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK`hjBoubjg)}(hX}Initializes the {dst,src}_addr, {dst,src}_maxburst, {dst,src}_addr_width fields of the DMA slave config from the same fields of the DAI DMA data struct. The src and dst fields will be initialized depending on the direction of the substream. If the substream is a playback stream the dst fields will be initialized, if it is a capture stream the src fields will be initialized. The {dst,src}_addr_width field will only be initialized if the SND_DMAENGINE_PCM_DAI_FLAG_PACK flag is set or if the addr_width field of the DAI DMA data struct is not equal to DMA_SLAVE_BUSWIDTH_UNDEFINED. If both conditions are met the latter takes priority.h]hX}Initializes the {dst,src}_addr, {dst,src}_maxburst, {dst,src}_addr_width fields of the DMA slave config from the same fields of the DAI DMA data struct. The src and dst fields will be initialized depending on the direction of the substream. If the substream is a playback stream the dst fields will be initialized, if it is a capture stream the src fields will be initialized. The {dst,src}_addr_width field will only be initialized if the SND_DMAENGINE_PCM_DAI_FLAG_PACK flag is set or if the addr_width field of the DAI DMA data struct is not equal to DMA_SLAVE_BUSWIDTH_UNDEFINED. If both conditions are met the latter takes priority.}(hj*phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK`hjBoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_trigger (C function)c.snd_dmaengine_pcm_triggerhNtauh1hhjihhhNhNubh)}(hhh](h)}(hLint snd_dmaengine_pcm_trigger (struct snd_pcm_substream *substream, int cmd)h]h)}(hKint snd_dmaengine_pcm_trigger(struct snd_pcm_substream *substream, int cmd)h](h)}(hinth]hint}(hjYphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUphhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjhphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUphhhjgphKubj)}(hsnd_dmaengine_pcm_triggerh]j%)}(hsnd_dmaengine_pcm_triggerh]hsnd_dmaengine_pcm_trigger}(hjzphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUphhhjgphKubj@)}(h.(struct snd_pcm_substream *substream, int cmd)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj|psbc.snd_dmaengine_pcm_triggerasbuh1hhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(h substreamh]h substream}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubjF)}(hint cmdh](h)}(hinth]hint}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj%)}(hcmdh]hcmd}(hj$qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjUphhhjgphKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQphhhjgphKubah}(h]jLpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjgphKhjNphhubjb)}(hhh]jg)}(h*dmaengine based PCM trigger implementationh]h*dmaengine based PCM trigger implementation}(hjNqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjKqhhubah}(h]h ]h"]h$]h&]uh1jahjNphhhjgphKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfqjjfqjjjuh1hhhhjihNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``int cmd`` Trigger command **Description** This function can be used as the PCM trigger callback for dmaengine based PCM driver implementations. **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hjpqh]h Parameters}(hjrqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnqubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjjqubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjqh]h#struct snd_pcm_substream *substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjqubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhKhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhKhjqubj)}(h``int cmd`` Trigger command h](j)}(h ``int cmd``h]j)}(hjqh]hint cmd}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjqubj)}(hhh]jg)}(hTrigger commandh]hTrigger command}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhKhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhKhjqubeh}(h]h ]h"]h$]h&]uh1jhjjqubjg)}(h**Description**h]j)}(hjrh]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjjqubjg)}(heThis function can be used as the PCM trigger callback for dmaengine based PCM driver implementations.h]heThis function can be used as the PCM trigger callback for dmaengine based PCM driver implementations.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjjqubjg)}(h **Return**h]j)}(hj*rh]hReturn}(hj,rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(rubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjjqubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj@rhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_pointer_no_residue (C function)&c.snd_dmaengine_pcm_pointer_no_residuehNtauh1hhjihhhNhNubh)}(hhh](h)}(h\snd_pcm_uframes_t snd_dmaengine_pcm_pointer_no_residue (struct snd_pcm_substream *substream)h]h)}(h[snd_pcm_uframes_t snd_dmaengine_pcm_pointer_no_residue(struct snd_pcm_substream *substream)h](h)}(hhh]j%)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjrrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjorubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtrmodnameN classnameNjj)}j]j)}j$snd_dmaengine_pcm_pointer_no_residuesb&c.snd_dmaengine_pcm_pointer_no_residueasbuh1hhjkrhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkrhhhjrhKubj)}(h$snd_dmaengine_pcm_pointer_no_residueh]j%)}(hjrh]h$snd_dmaengine_pcm_pointer_no_residue}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjkrhhhjrhKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jr&c.snd_dmaengine_pcm_pointer_no_residueasbuh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hj shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(h substreamh]h substream}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubah}(h]h ]h"]h$]h&]j=j>uh1j?hjkrhhhjrhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjgrhhhjrhKubah}(h]jbrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhKhjdrhhubjb)}(hhh]jg)}(h*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(hjBshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj?shhubah}(h]h ]h"]h$]h&]uh1jahjdrhhhjrhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZsjjZsjjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This function is deprecated and should not be used by new drivers, as its results may be unreliable. **Return** PCM position in framesh](jg)}(h**Parameters**h]j)}(hjdsh]h Parameters}(hjfshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbsubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj^subj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjsh]h#struct snd_pcm_substream *substream}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj}subj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhj}subeh}(h]h ]h"]h$]h&]uh1jhjshKhjzsubah}(h]h ]h"]h$]h&]uh1jhj^subjg)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj^subjg)}(hdThis function is deprecated and should not be used by new drivers, as its results may be unreliable.h]hdThis function is deprecated and should not be used by new drivers, as its results may be unreliable.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj^subjg)}(h **Return**h]j)}(hjsh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj^subjg)}(hPCM position in framesh]hPCM position in frames}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj^subeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_pointer (C function)c.snd_dmaengine_pcm_pointerhNtauh1hhjihhhNhNubh)}(hhh](h)}(hQsnd_pcm_uframes_t snd_dmaengine_pcm_pointer (struct snd_pcm_substream *substream)h]h)}(hPsnd_pcm_uframes_t snd_dmaengine_pcm_pointer(struct snd_pcm_substream *substream)h](h)}(hhh]j%)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hj-thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/tmodnameN classnameNjj)}j]j)}jsnd_dmaengine_pcm_pointersbc.snd_dmaengine_pcm_pointerasbuh1hhj&thhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjOthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&thhhjNthKubj)}(hsnd_dmaengine_pcm_pointerh]j%)}(hjKth]hsnd_dmaengine_pcm_pointer}(hjathhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&thhhjNthKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj|thhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxtubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jItc.snd_dmaengine_pcm_pointerasbuh1hhjxtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxtubj%)}(h substreamh]h substream}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjttubah}(h]h ]h"]h$]h&]j=j>uh1j?hj&thhhjNthKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"thhhjNthKubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNthKhjthhubjb)}(hhh]jg)}(h*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjthhubah}(h]h ]h"]h$]h&]uh1jahjthhhjNthKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This function can be used as the PCM pointer callback for dmaengine based PCM driver implementations. **Return** PCM position in framesh](jg)}(h**Parameters**h]j)}(hjuh]h Parameters}(hj!uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjuubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj>uh]h#struct snd_pcm_substream *substream}(hj@uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuh1jhjuhhhjuhMubj@)}(h,(dma_filter_fn filter_fn, void *filter_data)h](jF)}(hdma_filter_fn filter_fnh](h)}(hhh]j%)}(h dma_filter_fnh]h dma_filter_fn}(hjbvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_vubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdvmodnameN classnameNjj)}j]j v#c.snd_dmaengine_pcm_request_channelasbuh1hhj[vubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[vubj%)}(h filter_fnh]h filter_fn}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[vubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWvubjF)}(hvoid *filter_datah](h)}(hvoidh]hvoid}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(h filter_datah]h filter_data}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhjuhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjuhMubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhMhjuhhubjb)}(hhh]jg)}(h%Request channel for the dmaengine PCMh]h%Request channel for the dmaengine PCM}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjvhhubah}(h]h ]h"]h$]h&]uh1jahjuhhhjuhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjihNhNubj)}(hX **Parameters** ``dma_filter_fn filter_fn`` Filter function used to request the DMA channel ``void *filter_data`` Data passed to the DMA filter function **Description** This function request a DMA channel for usage with dmaengine PCM. **Return** NULL or the requested DMA channelh](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjwubj)}(hhh](j)}(hL``dma_filter_fn filter_fn`` Filter function used to request the DMA channel h](j)}(h``dma_filter_fn filter_fn``h]j)}(hj;wh]hdma_filter_fn filter_fn}(hj=whhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9wubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj5wubj)}(hhh]jg)}(h/Filter function used to request the DMA channelh]h/Filter function used to request the DMA channel}(hjTwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPwhMhjQwubah}(h]h ]h"]h$]h&]uh1jhj5wubeh}(h]h ]h"]h$]h&]uh1jhjPwhMhj2wubj)}(h=``void *filter_data`` Data passed to the DMA filter function h](j)}(h``void *filter_data``h]j)}(hjtwh]hvoid *filter_data}(hjvwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrwubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjnwubj)}(hhh]jg)}(h&Data passed to the DMA filter functionh]h&Data passed to the DMA filter function}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjnwubeh}(h]h ]h"]h$]h&]uh1jhjwhMhj2wubeh}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h**Description**h]j)}(hjwh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjwubjg)}(hAThis function request a DMA channel for usage with dmaengine PCM.h]hAThis function request a DMA channel for usage with dmaengine PCM.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjwubjg)}(h **Return**h]j)}(hjwh]hReturn}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjwubjg)}(h!NULL or the requested DMA channelh]h!NULL or the requested DMA channel}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_open (C function)c.snd_dmaengine_pcm_openhNtauh1hhjihhhNhNubh)}(hhh](h)}(hWint snd_dmaengine_pcm_open (struct snd_pcm_substream *substream, struct dma_chan *chan)h]h)}(hVint snd_dmaengine_pcm_open(struct snd_pcm_substream *substream, struct dma_chan *chan)h](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM1ubj)}(h h]h }(hj*xhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhj)xhM1ubj)}(hsnd_dmaengine_pcm_openh]j%)}(hsnd_dmaengine_pcm_openh]hsnd_dmaengine_pcm_open}(hjuh1jhjxhhhj)xhM1ubj@)}(h<(struct snd_pcm_substream *substream, struct dma_chan *chan)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjXxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTxubj)}(h h]h }(hjexhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTxubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjvxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxxmodnameN classnameNjj)}j]j)}jj>xsbc.snd_dmaengine_pcm_openasbuh1hhjTxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTxubj%)}(h substreamh]h substream}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPxubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]jxc.snd_dmaengine_pcm_openasbuh1hhjxubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hchanh]hchan}(hj!yhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPxubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhj)xhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxhhhj)xhM1ubah}(h]jxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)xhM1hjxhhubjb)}(hhh]jg)}(h$Open a dmaengine based PCM substreamh]h$Open a dmaengine based PCM substream}(hjKyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM'hjHyhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhj)xhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcyjjcyjjjuh1hhhhjihNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``struct dma_chan *chan`` DMA channel to use for data transfers **Description** The function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream's runtime. So it is not available to your pcm driver implementation. **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hjmyh]h Parameters}(hjoyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkyubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjgyubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjyh]h#struct snd_pcm_substream *substream}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM(hjyubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhM(hjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhM(hjyubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hjyh]hstruct dma_chan *chan}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM)hjyubj)}(hhh]jg)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhM)hjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhM)hjyubeh}(h]h ]h"]h$]h&]uh1jhjgyubjg)}(h**Description**h]j)}(hjzh]h Description}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjgyubjg)}(hThe function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream's runtime. So it is not available to your pcm driver implementation.h]hThe function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream’s runtime. So it is not available to your pcm driver implementation.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjgyubjg)}(h **Return**h]j)}(hj'zh]hReturn}(hj)zhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%zubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM/hjgyubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj=zhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM/hjgyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_dmaengine_pcm_open_request_chan (C function)%c.snd_dmaengine_pcm_open_request_chanhNtauh1hhjihhhNhNubh)}(hhh](h)}(hyint snd_dmaengine_pcm_open_request_chan (struct snd_pcm_substream *substream, dma_filter_fn filter_fn, void *filter_data)h]h)}(hxint snd_dmaengine_pcm_open_request_chan(struct snd_pcm_substream *substream, dma_filter_fn filter_fn, void *filter_data)h](h)}(hinth]hint}(hjlzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhzhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMXubj)}(h h]h }(hj{zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhzhhhjzzhMXubj)}(h#snd_dmaengine_pcm_open_request_chanh]j%)}(h#snd_dmaengine_pcm_open_request_chanh]h#snd_dmaengine_pcm_open_request_chan}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhzhhhjzzhMXubj@)}(hQ(struct snd_pcm_substream *substream, dma_filter_fn filter_fn, void *filter_data)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jjzsb%c.snd_dmaengine_pcm_open_request_chanasbuh1hhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(h substreamh]h substream}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hdma_filter_fn filter_fnh](h)}(hhh]j%)}(h dma_filter_fnh]h dma_filter_fn}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj {modnameN classnameNjj)}j]jz%c.snd_dmaengine_pcm_open_request_chanasbuh1hhj{ubj)}(h h]h }(hj<{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj%)}(h filter_fnh]h filter_fn}(hjJ{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hvoid *filter_datah](h)}(hvoidh]hvoid}(hjc{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_{ubj)}(h h]h }(hjq{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_{ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_{ubj%)}(h filter_datah]h filter_data}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhzhhhjzzhMXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjdzhhhjzzhMXubah}(h]j_zah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzzhMXhjazhhubjb)}(hhh]jg)}(h8Open a dmaengine based PCM substream and request channelh]h8Open a dmaengine based PCM substream and request channel}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMLhj{hhubah}(h]h ]h"]h$]h&]uh1jahjazhhhjzzhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjihNhNubj)}(hXC**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``dma_filter_fn filter_fn`` Filter function used to request the DMA channel ``void *filter_data`` Data passed to the DMA filter function **Description** This function will request a DMA channel using the passed filter function and data. The function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream's runtime. So it is not available to your pcm driver implementation. **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMPhj{ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj{h]h#struct snd_pcm_substream *substream}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMMhj{ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj |hMMhj |ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj |hMMhj{ubj)}(hL``dma_filter_fn filter_fn`` Filter function used to request the DMA channel h](j)}(h``dma_filter_fn filter_fn``h]j)}(hj0|h]hdma_filter_fn filter_fn}(hj2|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMNhj*|ubj)}(hhh]jg)}(h/Filter function used to request the DMA channelh]h/Filter function used to request the DMA channel}(hjI|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE|hMNhjF|ubah}(h]h ]h"]h$]h&]uh1jhj*|ubeh}(h]h ]h"]h$]h&]uh1jhjE|hMNhj{ubj)}(h=``void *filter_data`` Data passed to the DMA filter function h](j)}(h``void *filter_data``h]j)}(hji|h]hvoid *filter_data}(hjk|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMOhjc|ubj)}(hhh]jg)}(h&Data passed to the DMA filter functionh]h&Data passed to the DMA filter function}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~|hMOhj|ubah}(h]h ]h"]h$]h&]uh1jhjc|ubeh}(h]h ]h"]h$]h&]uh1jhj~|hMOhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{ubjg)}(h**Description**h]j)}(hj|h]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMQhj{ubjg)}(hXThis function will request a DMA channel using the passed filter function and data. The function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream's runtime. So it is not available to your pcm driver implementation.h]hX!This function will request a DMA channel using the passed filter function and data. The function should usually be called from the pcm open callback. Note that this function will use private_data field of the substream’s runtime. So it is not available to your pcm driver implementation.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMQhj{ubjg)}(h **Return**h]j)}(hj|h]hReturn}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMVhj{ubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMVhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dmaengine_pcm_close (C function)c.snd_dmaengine_pcm_closehNtauh1hhjihhhNhNubh)}(hhh](h)}(hAint snd_dmaengine_pcm_close (struct snd_pcm_substream *substream)h]h)}(h@int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj }hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj }hhhj}hMubj)}(hsnd_dmaengine_pcm_closeh]j%)}(hsnd_dmaengine_pcm_closeh]hsnd_dmaengine_pcm_close}(hj1}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj }hhhj}hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjM}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjI}ubj)}(h h]h }(hjZ}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI}ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjk}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjh}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjm}modnameN classnameNjj)}j]j)}jj3}sbc.snd_dmaengine_pcm_closeasbuh1hhjI}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI}ubj%)}(h substreamh]h substream}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjI}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjE}ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj }hhhj}hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}hhhj}hMubah}(h]j}ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj}hMhj}hhubjb)}(hhh]jg)}(h%Close a dmaengine based PCM substreamh]h%Close a dmaengine based PCM substream}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj}hhubah}(h]h ]h"]h$]h&]uh1jahj}hhhj}hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hj}h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj}ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj~h]h#struct snd_pcm_substream *substream}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj ~ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj*~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&~hMhj'~ubah}(h]h ]h"]h$]h&]uh1jhj ~ubeh}(h]h ]h"]h$]h&]uh1jhj&~hMhj~ubah}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h **Return**h]j)}(hjL~h]hReturn}(hjN~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ~ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj}ubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjb~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_close_release_chan (C function)&c.snd_dmaengine_pcm_close_release_chanhNtauh1hhjihhhNhNubh)}(hhh](h)}(hNint snd_dmaengine_pcm_close_release_chan (struct snd_pcm_substream *substream)h]h)}(hMint snd_dmaengine_pcm_close_release_chan(struct snd_pcm_substream *substream)h](h)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhj~hMubj)}(h$snd_dmaengine_pcm_close_release_chanh]j%)}(h$snd_dmaengine_pcm_close_release_chanh]h$snd_dmaengine_pcm_close_release_chan}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhj~hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j)}jj~sb&c.snd_dmaengine_pcm_close_release_chanasbuh1hhj~ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(h substreamh]h substream}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj~hhhj~hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhj~hMubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hMhj~hhubjb)}(hhh]jg)}(h9Close a dmaengine based PCM substream and release channelh]h9Close a dmaengine based PCM substream and release channel}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjNhhubah}(h]h ]h"]h$]h&]uh1jahj~hhhj~hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** Releases the DMA channel associated with the PCM substream. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjmubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjmubjg)}(h;Releases the DMA channel associated with the PCM substream.h]h;Releases the DMA channel associated with the PCM substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjmubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjmubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h6snd_dmaengine_pcm_refine_runtime_hwparams (C function)+c.snd_dmaengine_pcm_refine_runtime_hwparamshNtauh1hhjihhhNhNubh)}(hhh](h)}(hint snd_dmaengine_pcm_refine_runtime_hwparams (struct snd_pcm_substream *substream, struct snd_dmaengine_dai_dma_data *dma_data, struct snd_pcm_hardware *hw, struct dma_chan *chan)h]h)}(hint snd_dmaengine_pcm_refine_runtime_hwparams(struct snd_pcm_substream *substream, struct snd_dmaengine_dai_dma_data *dma_data, struct snd_pcm_hardware *hw, struct dma_chan *chan)h](h)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5hhhjGhMubj)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]j%)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]h)snd_dmaengine_pcm_refine_runtime_hwparams}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5hhhjGhMubj@)}(h(struct snd_pcm_substream *substream, struct snd_dmaengine_dai_dma_data *dma_data, struct snd_pcm_hardware *hw, struct dma_chan *chan)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj\sb+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hj€hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(h substreamh]h substream}(hjπhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(h+struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdma_datah]hdma_data}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hhwh]hhw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hjȁhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjāubj)}(h h]h }(hjՁhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjāubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjāubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjāubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjāubj%)}(hchanh]hchan}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjāubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj5hhhjGhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhjGhMubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGhMhj.hhubjb)}(hhh]jg)}(hRefine runtime hw paramsh]hRefine runtime hw params}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjFhhubah}(h]h ]h"]h$]h&]uh1jahj.hhhjGhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjajjajjjuh1hhhhjihNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``struct snd_dmaengine_dai_dma_data *dma_data`` DAI DMA data ``struct snd_pcm_hardware *hw`` PCM hw params ``struct dma_chan *chan`` DMA channel to use for data transfers **Description** This function will query DMA capability, then refine the pcm hardware parameters. **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hjkh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjeubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h=``struct snd_dmaengine_dai_dma_data *dma_data`` DAI DMA data h](j)}(h/``struct snd_dmaengine_dai_dma_data *dma_data``h]j)}(hjÂh]h+struct snd_dmaengine_dai_dma_data *dma_data}(hjłhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]jg)}(h DAI DMA datah]h DAI DMA data}(hj܂hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj؂hMhjقubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj؂hMhjubj)}(h.``struct snd_pcm_hardware *hw`` PCM hw params h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjh]hstruct snd_pcm_hardware *hw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]jg)}(h PCM hw paramsh]h PCM hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hj5h]hstruct dma_chan *chan}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj/ubj)}(hhh]jg)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhMhjubeh}(h]h ]h"]h$]h&]uh1jhjeubjg)}(h**Description**h]j)}(hjph]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjeubjg)}(hQThis function will query DMA capability, then refine the pcm hardware parameters.h]hQThis function will query DMA capability, then refine the pcm hardware parameters.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjeubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjeubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_pcm_substream_to_dma_direction (C function)$c.snd_pcm_substream_to_dma_directionhNtauh1hhjihhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhNubh)}(hhh](h)}(hjenum dma_transfer_direction snd_pcm_substream_to_dma_direction (const struct snd_pcm_substream *substream)h]h)}(hienum dma_transfer_direction snd_pcm_substream_to_dma_direction(const struct snd_pcm_substream *substream)h](jL)}(hj'h]henum}(hj݃hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjكhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjكhhhjhKubh)}(hhh]j%)}(hdma_transfer_directionh]hdma_transfer_direction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j"snd_pcm_substream_to_dma_directionsb$c.snd_pcm_substream_to_dma_directionasbuh1hhjكhhhjhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjكhhhjhKubj)}(h"snd_pcm_substream_to_dma_directionh]j%)}(hjh]h"snd_pcm_substream_to_dma_direction}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjكhhhjhKubj@)}(h+(const struct snd_pcm_substream *substream)h]jF)}(h)const struct snd_pcm_substream *substreamh](jL)}(hj\h]hconst}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubjL)}(hjOh]hstruct}(hjehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j$c.snd_pcm_substream_to_dma_directionasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubah}(h]h ]h"]h$]h&]j=j>uh1j?hjكhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjՃhhhjhKubah}(h]jσah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhj҃hhubjb)}(hhh]jg)}(h.Get dma_transfer_direction for a PCM substreamh]h.Get dma_transfer_direction for a PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahj҃hhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihjуhNubj)}(hq**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream **Return** DMA transfer directionh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hj'h]h)const struct snd_pcm_substream *substream}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj!ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj<hKhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hKhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjbh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubjg)}(hDMA transfer directionh]hDMA transfer direction}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhjуhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_dmaengine_dai_dma_data (C struct)c.snd_dmaengine_dai_dma_datahNtauh1hhjihhhjуhNubh)}(hhh](h)}(hsnd_dmaengine_dai_dma_datah]h)}(h!struct snd_dmaengine_dai_dma_datah](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_dmaengine_dai_dma_datah]j%)}(hjh]hsnd_dmaengine_dai_dma_data}(hjDžhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjÅubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(hDAI DMA configuration datah]hDAI DMA configuration data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKuh1j&hn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKBhjubjg)}(h **Members**h]j)}(hj9h]hMembers}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKNhjubj)}(hhh](j)}(hA``addr`` Address of the DAI data source or destination register. h](j)}(h``addr``h]j)}(hjXh]haddr}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK>hjRubj)}(hhh]jg)}(h7Address of the DAI data source or destination register.h]h7Address of the DAI data source or destination register.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhK>hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhK>hjOubj)}(hE``addr_width`` Width of the DAI data source or destination register. h](j)}(h``addr_width``h]j)}(hjh]h addr_width}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK?hjubj)}(hhh]jg)}(h5Width of the DAI data source or destination register.h]h5Width of the DAI data source or destination register.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK?hjOubj)}(h``maxburst`` Maximum number of words(note: words, as in units of the src_addr_width member, not bytes) that can be send to or received from the DAI in one burst. h](j)}(h ``maxburst``h]j)}(hjʆh]hmaxburst}(hj̆hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjȆubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKBhjĆubj)}(hhh]jg)}(hMaximum number of words(note: words, as in units of the src_addr_width member, not bytes) that can be send to or received from the DAI in one burst.h]hMaximum number of words(note: words, as in units of the src_addr_width member, not bytes) that can be send to or received from the DAI in one burst.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK@hjubah}(h]h ]h"]h$]h&]uh1jhjĆubeh}(h]h ]h"]h$]h&]uh1jhj߆hKBhjOubj)}(hk``filter_data`` Custom DMA channel filter data, this will usually be used when requesting the DMA channel. h](j)}(h``filter_data``h]j)}(hjh]h filter_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKDhjubj)}(hhh]jg)}(hZCustom DMA channel filter data, this will usually be used when requesting the DMA channel.h]hZCustom DMA channel filter data, this will usually be used when requesting the DMA channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKDhjOubj)}(hF``chan_name`` Custom channel name to use when requesting DMA channel. h](j)}(h ``chan_name``h]j)}(hj>h]h chan_name}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKEhj8ubj)}(hhh]jg)}(h7Custom channel name to use when requesting DMA channel.h]h7Custom channel name to use when requesting DMA channel.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKEhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShKEhjOubj)}(h7``fifo_size`` FIFO size of the DAI controller in bytes h](j)}(h ``fifo_size``h]j)}(hjwh]h fifo_size}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKFhjqubj)}(hhh]jg)}(h(FIFO size of the DAI controller in bytesh]h(FIFO size of the DAI controller in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKFhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjOubj)}(hF``flags`` PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now h](j)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKGhjubj)}(hhh]jg)}(h;PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for nowh]h;PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now}(hjɇhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjŇhKGhjƇubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjŇhKGhjOubj)}(ha``peripheral_config`` peripheral configuration for programming peripheral for dmaengine transfer h](j)}(h``peripheral_config``h]j)}(hjh]hperipheral_config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKIhjubj)}(hhh]jg)}(hJperipheral configuration for programming peripheral for dmaengine transferh]hJperipheral configuration for programming peripheral for dmaengine transfer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKIhjOubj)}(h8``peripheral_size`` peripheral configuration buffer sizeh](j)}(h``peripheral_size``h]j)}(hj#h]hperipheral_size}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKIhjubj)}(hhh]jg)}(h$peripheral configuration buffer sizeh]h$peripheral configuration buffer size}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKJhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKIhjOubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhjуhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_config (C struct)c.snd_dmaengine_pcm_confighNtauh1hhjihhhjуhNubh)}(hhh](h)}(hsnd_dmaengine_pcm_configh]h)}(hstruct snd_dmaengine_pcm_configh](jL)}(hjOh]hstruct}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyhhhjhKPubj)}(hsnd_dmaengine_pcm_configh]j%)}(hjwh]hsnd_dmaengine_pcm_config}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjyhhhjhKPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjhKPubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKPhjrhhubjb)}(hhh]jg)}(h*Configuration data for dmaengine based PCMh]h*Configuration data for dmaengine based PCM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKshjhhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjhKPubeh}(h]h ](jstructeh"]h$]h&]jjjj׈jj׈jjjuh1hhhhjihjуhNubj)}(hXH**Definition**:: struct snd_dmaengine_pcm_config { int (*prepare_slave_config)(struct snd_pcm_substream *substream,struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config); struct dma_chan *(*compat_request_channel)(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_substream *substream); int (*process)(struct snd_pcm_substream *substream,int channel, unsigned long hwoff, unsigned long bytes); const char *name; dma_filter_fn compat_filter_fn; struct device *dma_dev; const char *chan_names[SNDRV_PCM_STREAM_LAST + 1]; const struct snd_pcm_hardware *pcm_hardware; unsigned int prealloc_buffer_size; }; **Members** ``prepare_slave_config`` Callback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback. ``compat_request_channel`` Callback to request a DMA channel for platforms which do not use devicetree. ``process`` Callback used to apply processing on samples transferred from/to user space. ``name`` Component name. If null, dev_name will be used. ``compat_filter_fn`` Will be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI's DMA data. ``dma_dev`` If set, request DMA channel on this device rather than the DAI device. ``chan_names`` If set, these custom DMA channel names will be requested at registration time. ``pcm_hardware`` snd_pcm_hardware struct to be used for the PCM. ``prealloc_buffer_size`` Size of the preallocated audio buffer.h](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj߈ubh:}(hj߈hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKwhjۈubj')}(hX|struct snd_dmaengine_pcm_config { int (*prepare_slave_config)(struct snd_pcm_substream *substream,struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config); struct dma_chan *(*compat_request_channel)(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_substream *substream); int (*process)(struct snd_pcm_substream *substream,int channel, unsigned long hwoff, unsigned long bytes); const char *name; dma_filter_fn compat_filter_fn; struct device *dma_dev; const char *chan_names[SNDRV_PCM_STREAM_LAST + 1]; const struct snd_pcm_hardware *pcm_hardware; unsigned int prealloc_buffer_size; };h]hX|struct snd_dmaengine_pcm_config { int (*prepare_slave_config)(struct snd_pcm_substream *substream,struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config); struct dma_chan *(*compat_request_channel)(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_substream *substream); int (*process)(struct snd_pcm_substream *substream,int channel, unsigned long hwoff, unsigned long bytes); const char *name; dma_filter_fn compat_filter_fn; struct device *dma_dev; const char *chan_names[SNDRV_PCM_STREAM_LAST + 1]; const struct snd_pcm_hardware *pcm_hardware; unsigned int prealloc_buffer_size; };}hjsbah}(h]h ]h"]h$]h&]j=j>uh1j&hn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKyhjۈubjg)}(h **Members**h]j)}(hj h]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjۈubj)}(hhh](j)}(h``prepare_slave_config`` Callback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback. h](j)}(h``prepare_slave_config``h]j)}(hj,h]hprepare_slave_config}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKvhj&ubj)}(hhh]jg)}(hyCallback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback.h]hyCallback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKuhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKvhj#ubj)}(hh``compat_request_channel`` Callback to request a DMA channel for platforms which do not use devicetree. h](j)}(h``compat_request_channel``h]j)}(hjfh]hcompat_request_channel}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKxhj`ubj)}(hhh]jg)}(hLCallback to request a DMA channel for platforms which do not use devicetree.h]hLCallback to request a DMA channel for platforms which do not use devicetree.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKwhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKxhj#ubj)}(hY``process`` Callback used to apply processing on samples transferred from/to user space. h](j)}(h ``process``h]j)}(hjh]hprocess}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjubj)}(hhh]jg)}(hLCallback used to apply processing on samples transferred from/to user space.h]hLCallback used to apply processing on samples transferred from/to user space.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKzhj#ubj)}(h9``name`` Component name. If null, dev_name will be used. h](j)}(h``name``h]j)}(hjډh]hname}(hj܉hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj؉ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK{hjԉubj)}(hhh]jg)}(h/Component name. If null, dev_name will be used.h]h/Component name. If null, dev_name will be used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK{hjubah}(h]h ]h"]h$]h&]uh1jhjԉubeh}(h]h ]h"]h$]h&]uh1jhjhK{hj#ubj)}(h``compat_filter_fn`` Will be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI's DMA data. h](j)}(h``compat_filter_fn``h]j)}(hjh]hcompat_filter_fn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK~hj ubj)}(hhh]jg)}(hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI's DMA data.h]hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI’s DMA data.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK|hj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hK~hj#ubj)}(hS``dma_dev`` If set, request DMA channel on this device rather than the DAI device. h](j)}(h ``dma_dev``h]j)}(hjMh]hdma_dev}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjGubj)}(hhh]jg)}(hFIf set, request DMA channel on this device rather than the DAI device.h]hFIf set, request DMA channel on this device rather than the DAI device.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhKhj#ubj)}(h^``chan_names`` If set, these custom DMA channel names will be requested at registration time. h](j)}(h``chan_names``h]j)}(hjh]h chan_names}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]jg)}(hNIf set, these custom DMA channel names will be requested at registration time.h]hNIf set, these custom DMA channel names will be requested at registration time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj#ubj)}(hA``pcm_hardware`` snd_pcm_hardware struct to be used for the PCM. h](j)}(h``pcm_hardware``h]j)}(hjh]h pcm_hardware}(hjÊhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]jg)}(h/snd_pcm_hardware struct to be used for the PCM.h]h/snd_pcm_hardware struct to be used for the PCM.}(hjڊhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj֊hKhj׊ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj֊hKhj#ubj)}(h?``prealloc_buffer_size`` Size of the preallocated audio buffer.h](j)}(h``prealloc_buffer_size``h]j)}(hjh]hprealloc_buffer_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]jg)}(h&Size of the preallocated audio buffer.h]h&Size of the preallocated audio buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj#ubeh}(h]h ]h"]h$]h&]uh1jhjۈubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhjуhNubjg)}(h**Note**h]j)}(hj=h]hNote}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjihhubjg)}(hX If both compat_request_channel and compat_filter_fn are set compat_request_channel will be used to request the channel and compat_filter_fn will be ignored. Otherwise the channel will be requested using dma_request_channel with compat_filter_fn as the filter function.h]hX If both compat_request_channel and compat_filter_fn are set compat_request_channel will be used to request the channel and compat_filter_fn will be ignored. Otherwise the channel will be requested using dma_request_channel with compat_filter_fn as the filter function.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjihhubeh}(h]pcm-dma-engine-apiah ]h"]pcm dma engine apiah$]h&]uh1hhjX_hhhhhK-ubeh}(h]pcm-apiah ]h"]pcm apiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hControl/Mixer APIh]hControl/Mixer API}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhhhhhK2ubh)}(hhh](h)}(hGeneral Control Interfaceh]hGeneral Control Interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK5ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify (C function)c.snd_ctl_notifyhNtauh1hhjhhhNhNubh)}(hhh](h)}(hZvoid snd_ctl_notify (struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h]h)}(hYvoid snd_ctl_notify(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_ctl_notifyh]j%)}(hsnd_ctl_notifyh]hsnd_ctl_notify}(hj΋hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʋubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(hF(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjЋsbc.snd_ctl_notifyasbuh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubh)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjˌhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjȌubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj͌modnameN classnameNjj)}j]j$c.snd_ctl_notifyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj+hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card to send notification ``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* ``struct snd_ctl_elem_id *id`` the ctl element id to send notification **Description** This function adds an event record with the given id and mask, appends to the list and wakes up the user-space for notification. This can be called in the atomic context.h](jg)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjJubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjoh]hstruct snd_card *card}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjiubj)}(hhh]jg)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhKhjfubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjfubj)}(hG``struct snd_ctl_elem_id *id`` the ctl element id to send notification h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjߍubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjۍubj)}(hhh]jg)}(h'the ctl element id to send notificationh]h'the ctl element id to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjۍubeh}(h]h ]h"]h$]h&]uh1jhjhKhjfubeh}(h]h ]h"]h$]h&]uh1jhjJubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjJubjg)}(hThis function adds an event record with the given id and mask, appends to the list and wakes up the user-space for notification. This can be called in the atomic context.h]hThis function adds an event record with the given id and mask, appends to the list and wakes up the user-space for notification. This can be called in the atomic context.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify_one (C function)c.snd_ctl_notify_onehNtauh1hhjhhhNhNubh)}(hhh](h)}(hpvoid snd_ctl_notify_one (struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h]h)}(hovoid snd_ctl_notify_one(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](h)}(hvoidh]hvoid}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhjohKubj)}(hsnd_ctl_notify_oneh]j%)}(hsnd_ctl_notify_oneh]hsnd_ctl_notify_one}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhjohKubj@)}(hX(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_notify_oneasbuh1hhjubj)}(h h]h }(hj܎hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hmaskh]hmask}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j؎c.snd_ctl_notify_oneasbuh1hhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int ioffh](h)}(hunsignedh]hunsigned}(hjяhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj͏ubj)}(h h]h }(hjߏhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj͏ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj͏ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj͏ubj%)}(hioffh]hioff}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj͏ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj]hhhjohKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjohKubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohKhjVhhubjb)}(hhh]jg)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj0hhubah}(h]h ]h"]h$]h&]uh1jahjVhhhjohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjhNhNubj)}(hXw**Parameters** ``struct snd_card *card`` the card to send notification ``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* ``struct snd_kcontrol *kctl`` the pointer with the control instance ``unsigned int ioff`` the additional offset to the control index **Description** This function calls snd_ctl_notify() and does additional jobs like LED state changes.h](jg)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjOubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjth]hstruct snd_card *card}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjnubj)}(hhh]jg)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhKhjkubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjƐhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjÐubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjkubj)}(hD``struct snd_kcontrol *kctl`` the pointer with the control instance h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjh]hstruct snd_kcontrol *kctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h%the pointer with the control instanceh]h%the pointer with the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjkubj)}(hA``unsigned int ioff`` the additional offset to the control index h](j)}(h``unsigned int ioff``h]j)}(hjh]hunsigned int ioff}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h*the additional offset to the control indexh]h*the additional offset to the control index}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hKhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjkubeh}(h]h ]h"]h$]h&]uh1jhjOubjg)}(h**Description**h]j)}(hjZh]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjOubjg)}(hUThis function calls snd_ctl_notify() and does additional jobs like LED state changes.h]hUThis function calls snd_ctl_notify() and does additional jobs like LED state changes.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new (C function) c.snd_ctl_newhNtauh1hhjhhhNhNubh)}(hhh](h)}(hpint snd_ctl_new (struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h]h)}(hoint snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(h snd_ctl_newh]j%)}(h snd_ctl_newh]h snd_ctl_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h`(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](jF)}(hstruct snd_kcontrol **kctlh](jL)}(hjOh]hstruct}(hjܑhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjؑubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjؑubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj‘sb c.snd_ctl_newasbuh1hhjؑubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjؑubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjؑubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjؑubj%)}(hkctlh]hkctl}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjؑubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԑubjF)}(hunsigned int counth](h)}(hunsignedh]hunsigned}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hinth]hint}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԑubjF)}(hunsigned int accessh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjȒhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj֒hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(haccessh]haccess}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԑubjF)}(hstruct snd_ctl_file *fileh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ctl_fileh]h snd_ctl_file}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.snd_ctl_newasbuh1hhjubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjԑubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h0create a new control instance with some elementsh]h0create a new control instance with some elements}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj{hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXR**Parameters** ``struct snd_kcontrol **kctl`` the pointer to store new control instance ``unsigned int count`` the number of elements in this control ``unsigned int access`` the default access flags for elements in this control ``struct snd_ctl_file *file`` given when locking these elements **Description** Allocates a memory object for a new control instance. The instance has elements as many as the given number (**count**). Each element has given access permissions (**access**). Each element is locked when **file** is given. **Return** 0 on success, error code on failureh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh](j)}(hI``struct snd_kcontrol **kctl`` the pointer to store new control instance h](j)}(h``struct snd_kcontrol **kctl``h]j)}(hjh]hstruct snd_kcontrol **kctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h)the pointer to store new control instanceh]h)the pointer to store new control instance}(hjؓhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjԓhKhjՓubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjԓhKhjubj)}(h>``unsigned int count`` the number of elements in this control h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h&the number of elements in this controlh]h&the number of elements in this control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hN``unsigned int access`` the default access flags for elements in this control h](j)}(h``unsigned int access``h]j)}(hj1h]hunsigned int access}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj+ubj)}(hhh]jg)}(h5the default access flags for elements in this controlh]h5the default access flags for elements in this control}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhKhjubj)}(h@``struct snd_ctl_file *file`` given when locking these elements h](j)}(h``struct snd_ctl_file *file``h]j)}(hjjh]hstruct snd_ctl_file *file}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjdubj)}(hhh]jg)}(h!given when locking these elementsh]h!given when locking these elements}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(hAllocates a memory object for a new control instance. The instance has elements as many as the given number (**count**). Each element has given access permissions (**access**). Each element is locked when **file** is given.h](hmAllocates a memory object for a new control instance. The instance has elements as many as the given number (}(hjhhhNhNubj)}(h **count**h]hcount}(hjÔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.). Each element has given access permissions (}(hjhhhNhNubj)}(h **access**h]haccess}(hjՔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh). Each element is locked when }(hjhhhNhNubj)}(h**file**h]hfile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is given.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h#0 on success, error code on failureh]h#0 on success, error code on failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new1 (C function)c.snd_ctl_new1hNtauh1hhjhhhNhNubh)}(hhh](h)}(h`struct snd_kcontrol * snd_ctl_new1 (const struct snd_kcontrol_new *ncontrol, void *private_data)h]h)}(h^struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol, void *private_data)h](jL)}(hjOh]hstruct}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjChhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjThMubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}j snd_ctl_new1sbc.snd_ctl_new1asbuh1hhjChhhjThMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjThMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjThMubj)}(h snd_ctl_new1h]j%)}(hjh]h snd_ctl_new1}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjThMubj@)}(h=(const struct snd_kcontrol_new *ncontrol, void *private_data)h](jF)}(h'const struct snd_kcontrol_new *ncontrolh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjΕhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjܕhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_new1asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hncontrolh]hncontrol}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(h private_datah]h private_data}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjThMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjThMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThMhj<hhubjb)}(hhh]jg)}(h+create a control instance from the templateh]h+create a control instance from the template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahj<hhhjThMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``const struct snd_kcontrol_new *ncontrol`` the initialization record ``void *private_data`` the private data to set **Description** Allocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it's assumed as READWRITE access. When the count field is 0, it's assumes as one. **Return** The pointer of the newly generated instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjÖhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh](j)}(hF``const struct snd_kcontrol_new *ncontrol`` the initialization record h](j)}(h+``const struct snd_kcontrol_new *ncontrol``h]j)}(hjh]h'const struct snd_kcontrol_new *ncontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjޖubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjږubj)}(hhh]jg)}(hthe initialization recordh]hthe initialization record}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjږubeh}(h]h ]h"]h$]h&]uh1jhjhKhjזubj)}(h/``void *private_data`` the private data to set h](j)}(h``void *private_data``h]j)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(hthe private data to seth]hthe private data to set}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hKhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hKhjזubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjTh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(hAllocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it's assumed as READWRITE access. When the count field is 0, it's assumes as one.h]hAllocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it’s assumed as READWRITE access. When the count field is 0, it’s assumes as one.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h **Return**h]j)}(hj{h]hReturn}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hDThe pointer of the newly generated instance, or ``NULL`` on failure.h](h0The pointer of the newly generated instance, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_free_one (C function)c.snd_ctl_free_onehNtauh1hhjhhhNhNubh)}(hhh](h)}(h5void snd_ctl_free_one (struct snd_kcontrol *kcontrol)h]h)}(h4void snd_ctl_free_one(struct snd_kcontrol *kcontrol)h](h)}(hvoidh]hvoid}(hjҗhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjΗhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΗhhhjhMCubj)}(hsnd_ctl_free_oneh]j%)}(hsnd_ctl_free_oneh]hsnd_ctl_free_one}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjΗhhhjhMCubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_free_oneasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjΗhhhjhMCubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjʗhhhjhMCubah}(h]jŗah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMChjǗhhubjb)}(hhh]jg)}(hrelease the control instanceh]hrelease the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM<hjhhubah}(h]h ]h"]h$]h&]uh1jahjǗhhhjhMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` the control instance **Description** Releases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don't call this after the control was added to the card.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM@hjubj)}(hhh]j)}(h7``struct snd_kcontrol *kcontrol`` the control instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjӘh]hstruct snd_kcontrol *kcontrol}(hj՘hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjјubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM=hj͘ubj)}(hhh]jg)}(hthe control instanceh]hthe control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM=hjubah}(h]h ]h"]h$]h&]uh1jhj͘ubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjʘubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjubjg)}(hReleases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don't call this after the control was added to the card.h]hReleases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don’t call this after the control was added to the card.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_add (C function) c.snd_ctl_addhNtauh1hhjhhhNhNubh)}(hhh](h)}(hFint snd_ctl_add (struct snd_card *card, struct snd_kcontrol *kcontrol)h]h)}(hEint snd_ctl_add(struct snd_card *card, struct snd_kcontrol *kcontrol)h](h)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM"ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjahM"ubj)}(h snd_ctl_addh]j%)}(h snd_ctl_addh]h snd_ctl_add}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjahM"ubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjvsb c.snd_ctl_addasbuh1hhjubj)}(h h]h }(hjΙhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjܙhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jʙ c.snd_ctl_addasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjOhhhjahM"ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjahM"ubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahM"hjHhhubjb)}(hhh]jg)}(h$add the control instance to the cardh]h$add the control instance to the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhjahM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to add **Description** Adds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search. It frees automatically the control which cannot be added. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjĚh]hstruct snd_card *card}(hjƚhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjšubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjݚhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjٚhMhjښubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjٚhMhjubj)}(h>``struct snd_kcontrol *kcontrol`` the control instance to add h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control instance to addh]hthe control instance to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj8h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.h]hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h9It frees automatically the control which cannot be added.h]h9It frees automatically the control which cannot be added.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(hjnh]hReturn}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_replace (C function)c.snd_ctl_replacehNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_ctl_replace (struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h]h)}(h^int snd_ctl_replace(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM6ubj)}(h h]h }(hj›hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM6ubj)}(hsnd_ctl_replaceh]j%)}(hsnd_ctl_replaceh]hsnd_ctl_replace}(hjԛhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjЛubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM6ubj@)}(hK(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj֛sbc.snd_ctl_replaceasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j*c.snd_ctl_replaceasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hbool add_on_replaceh](h)}(hboolh]hbool}(hjҜhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjΜubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΜubj%)}(hadd_on_replaceh]hadd_on_replace}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjΜubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM6ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM6ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM6hjhhubjb)}(hhh]jg)}(h(replace the control instance of the cardh]h(replace the control instance of the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhjhNhNubj)}(hX **Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to replace ``bool add_on_replace`` add the control if not already added **Description** Replaces the given control. If the given control does not exist and the add_on_replace flag is set, the control is added. If the control exists, it is destroyed first. It frees automatically the control which cannot be added or replaced. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hj4ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjYh]hstruct snd_card *card}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM*hjSubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhM*hjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhM*hjPubj)}(hB``struct snd_kcontrol *kcontrol`` the control instance to replace h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjubj)}(hhh]jg)}(hthe control instance to replaceh]hthe control instance to replace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM+hjPubj)}(h=``bool add_on_replace`` add the control if not already added h](j)}(h``bool add_on_replace``h]j)}(hj˝h]hbool add_on_replace}(hj͝hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɝubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM,hjŝubj)}(hhh]jg)}(h$add the control if not already addedh]h$add the control if not already added}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM,hjubah}(h]h ]h"]h$]h&]uh1jhjŝubeh}(h]h ]h"]h$]h&]uh1jhjhM,hjPubeh}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM.hj4ubjg)}(hReplaces the given control. If the given control does not exist and the add_on_replace flag is set, the control is added. If the control exists, it is destroyed first.h]hReplaces the given control. If the given control does not exist and the add_on_replace flag is set, the control is added. If the control exists, it is destroyed first.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM.hj4ubjg)}(hEIt frees automatically the control which cannot be added or replaced.h]hEIt frees automatically the control which cannot be added or replaced.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM2hj4ubjg)}(h **Return**h]j)}(hj<h]hReturn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hj4ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove (C function)c.snd_ctl_removehNtauh1hhjhhhNhNubh)}(hhh](h)}(hIint snd_ctl_remove (struct snd_card *card, struct snd_kcontrol *kcontrol)h]h)}(hHint snd_ctl_remove(struct snd_card *card, struct snd_kcontrol *kcontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}hhhjhMjubj)}(hsnd_ctl_removeh]j%)}(hsnd_ctl_removeh]hsnd_ctl_remove}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj}hhhjhMjubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj˞hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjܞhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjٞubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjޞmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_removeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jc.snd_ctl_removeasbuh1hhj,ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj}hhhjhMjubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjyhhhjhMjubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMjhjvhhubjb)}(hhh]jg)}(h/remove the control from the card and release ith]h/remove the control from the card and release it}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM^hjhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjhMjubeh}(h]h ](jfunctioneh"]h$]h&]jjjjɟjjɟjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to remove **Description** Removes the control from the card and then releases the instance. You don't need to call snd_ctl_free_one(). Passing NULL to **kcontrol** argument is allowed as noop. Note that this function takes card->controls_rwsem lock internally. **Return** 0 if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjӟh]h Parameters}(hj՟hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjџubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMbhj͟ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM_hjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjubj)}(hA``struct snd_kcontrol *kcontrol`` the control instance to remove h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj+h]hstruct snd_kcontrol *kcontrol}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM`hj%ubj)}(hhh]jg)}(hthe control instance to removeh]hthe control instance to remove}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hM`hjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hM`hjubeh}(h]h ]h"]h$]h&]uh1jhj͟ubjg)}(h**Description**h]j)}(hjfh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMbhj͟ubjg)}(hRemoves the control from the card and then releases the instance. You don't need to call snd_ctl_free_one(). Passing NULL to **kcontrol** argument is allowed as noop.h](hRemoves the control from the card and then releases the instance. You don’t need to call snd_ctl_free_one(). Passing NULL to }(hj|hhhNhNubj)}(h **kcontrol**h]hkcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubh argument is allowed as noop.}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMbhj͟ubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhj͟ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhhj͟ubjg)}(h50 if successful, or a negative error code on failure.h]h50 if successful, or a negative error code on failure.}(hjĠhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhj͟ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove_id (C function)c.snd_ctl_remove_idhNtauh1hhjhhhNhNubh)}(hhh](h)}(hIint snd_ctl_remove_id (struct snd_card *card, struct snd_ctl_elem_id *id)h]h)}(hHint snd_ctl_remove_id(struct snd_card *card, struct snd_ctl_elem_id *id)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM}ubj)}(hsnd_ctl_remove_idh]j%)}(hsnd_ctl_remove_idh]hsnd_ctl_remove_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM}ubj@)}(h3(struct snd_card *card, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_remove_idasbuh1hhj,ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj¡modnameN classnameNjj)}j]jjc.snd_ctl_remove_idasbuh1hhjubj)}(h h]h }(hjޡhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM}ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM}ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM}hjhhubjb)}(hhh]jg)}(h1remove the control of the given id and release ith]h1remove the control of the given id and release it}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMthj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM}ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1hhhhjhNhNubj)}(hX***Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *id`` the control id to remove **Description** Finds the control instance with the given id, removes it from the card list and releases it. **Return** 0 if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMxhj?ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjdh]hstruct snd_card *card}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMuhj^ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMuhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMuhj[ubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMvhjubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMvhj[ubeh}(h]h ]h"]h$]h&]uh1jhj?ubjg)}(h**Description**h]j)}(hjآh]h Description}(hjڢhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj֢ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMxhj?ubjg)}(h\Finds the control instance with the given id, removes it from the card list and releases it.h]h\Finds the control instance with the given id, removes it from the card list and releases it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMxhj?ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{hj?ubjg)}(h50 if successful, or a negative error code on failure.h]h50 if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{hj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ctl_remove_user_ctl (C function)c.snd_ctl_remove_user_ctlhNtauh1hhjhhhNhNubh)}(hhh](h)}(hTint snd_ctl_remove_user_ctl (struct snd_ctl_file * file, struct snd_ctl_elem_id *id)h]h)}(hRint snd_ctl_remove_user_ctl(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](h)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjRhMubj)}(hsnd_ctl_remove_user_ctlh]j%)}(hsnd_ctl_remove_user_ctlh]hsnd_ctl_remove_user_ctl}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjRhMubj@)}(h7(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_ctl_file *fileh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(h snd_ctl_fileh]h snd_ctl_file}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjgsbc.snd_ctl_remove_user_ctlasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjͣhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hfileh]hfile}(hjڣhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_remove_user_ctlasbuh1hhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj@hhhjRhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhjRhMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhMhj9hhubjb)}(hhh]jg)}(h,remove and release the unlocked user controlh]h,remove and release the unlocked user control}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjqhhubah}(h]h ]h"]h$]h&]uh1jahj9hhhjRhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX3**Parameters** ``struct snd_ctl_file * file`` active control handle ``struct snd_ctl_elem_id *id`` the control id to remove **Description** Finds the control instance with the given id, removes it from the card list and releases it. **Return** 0 if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h5``struct snd_ctl_file * file`` active control handle h](j)}(h``struct snd_ctl_file * file``h]j)}(hjh]hstruct snd_ctl_file * file}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hactive control handleh]hactive control handle}(hjΤhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjʤhMhjˤubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjʤhMhjubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj)h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h\Finds the control instance with the given id, removes it from the card list and releases it.h]h\Finds the control instance with the given id, removes it from the card list and releases it.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(hjPh]hReturn}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h50 if successful, or a negative error code on failure.h]h50 if successful, or a negative error code on failure.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ctl_activate_id (C function)c.snd_ctl_activate_idhNtauh1hhjhhhNhNubh)}(hhh](h)}(hWint snd_ctl_activate_id (struct snd_card *card, struct snd_ctl_elem_id *id, int active)h]h)}(hVint snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_activate_idh]j%)}(hsnd_ctl_activate_idh]hsnd_ctl_activate_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h?(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjҥhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjΥubj)}(h h]h }(hjߥhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΥubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_activate_idasbuh1hhjΥubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΥubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΥubj%)}(hcardh]hcard}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjΥubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjʥubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j c.snd_ctl_activate_idasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjʥubjF)}(h int activeh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj¦hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hactiveh]hactive}(hjЦhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjʥubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h/activate/inactivate the control of the given idh]h/activate/inactivate the control of the given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *id`` the control id to activate/inactivate ``int active`` non-zero to activate **Description** Finds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information. **Return** 0 if unchanged, 1 if changed, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj;h]hstruct snd_card *card}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj5ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj2ubj)}(hE``struct snd_ctl_elem_id *id`` the control id to activate/inactivate h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjth]hstruct snd_ctl_elem_id *id}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjnubj)}(hhh]jg)}(h%the control id to activate/inactivateh]h%the control id to activate/inactivate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhj2ubj)}(h$``int active`` non-zero to activate h](j)}(h``int active``h]j)}(hjh]h int active}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hnon-zero to activateh]hnon-zero to activate}(hjƧhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj§hMhjçubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj§hMhj2ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.h]hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hB0 if unchanged, 1 if changed, or a negative error code on failure.h]hB0 if unchanged, 1 if changed, or a negative error code on failure.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename_id (C function)c.snd_ctl_rename_idhNtauh1hhjhhhNhNubh)}(hhh](h)}(hmint snd_ctl_rename_id (struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h]h)}(hlint snd_ctl_rename_id(struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h](h)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjbhMubj)}(hsnd_ctl_rename_idh]j%)}(hsnd_ctl_rename_idh]hsnd_ctl_rename_id}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjbhMubj@)}(hW(struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjwsbc.snd_ctl_rename_idasbuh1hhjubj)}(h h]h }(hjϨhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjݨhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *src_idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j˨c.snd_ctl_rename_idasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hsrc_idh]hsrc_id}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *dst_idh](jL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j˨c.snd_ctl_rename_idasbuh1hhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hdst_idh]hdst_id}(hjʩhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjbhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjbhMubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhMhjIhhubjb)}(hhh]jg)}(h'replace the id of a control on the cardh]h'replace the id of a control on the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hXR**Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *src_id`` the old id ``struct snd_ctl_elem_id *dst_id`` the new id **Description** Finds the control with the old id from the card, and replaces the id with the new one. The function tries to keep the already assigned numid while replacing the rest. Note that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj5h]hstruct snd_card *card}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj/ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhMhj,ubj)}(h.``struct snd_ctl_elem_id *src_id`` the old id h](j)}(h"``struct snd_ctl_elem_id *src_id``h]j)}(hjnh]hstruct snd_ctl_elem_id *src_id}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhubj)}(hhh]jg)}(h the old idh]h the old id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhMhj,ubj)}(h.``struct snd_ctl_elem_id *dst_id`` the new id h](j)}(h"``struct snd_ctl_elem_id *dst_id``h]j)}(hjh]hstruct snd_ctl_elem_id *dst_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h the new idh]h the new id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj,ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hVFinds the control with the old id from the card, and replaces the id with the new one.h]hVFinds the control with the old id from the card, and replaces the id with the new one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hOThe function tries to keep the already assigned numid while replacing the rest.h]hOThe function tries to keep the already assigned numid while replacing the rest.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hNote that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids.h]hNote that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(hj'h]hReturn}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename (C function)c.snd_ctl_renamehNtauh1hhjhhhNhNubh)}(hhh](h)}(hXvoid snd_ctl_rename (struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h]h)}(hWvoid snd_ctl_rename(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](h)}(hvoidh]hvoid}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhhjzhMubj)}(hsnd_ctl_renameh]j%)}(hsnd_ctl_renameh]hsnd_ctl_rename}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhhjzhMubj@)}(hD(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjǫhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjīubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjɫmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_renameasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]jc.snd_ctl_renameasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkctlh]hkctl}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj¬hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hjϬhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhhjzhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjdhhhjzhMubah}(h]j_ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzhMhjahhubjb)}(hhh]jg)}(hrename the control on the cardh]hrename the control on the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjahhhjzhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX+**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kctl`` the control to rename ``const char *name`` the new name **Description** Renames the specified control on the card to the new name. Note that this function takes card->controls_rwsem lock internally.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj:h]hstruct snd_card *card}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj4ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhMhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhMhj1ubj)}(h4``struct snd_kcontrol *kctl`` the control to rename h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjsh]hstruct snd_kcontrol *kctl}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjmubj)}(hhh]jg)}(hthe control to renameh]hthe control to rename}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhj1ubj)}(h"``const char *name`` the new name h](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h the new nameh]h the new name}(hjŭhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhj­ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj1ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h:Renames the specified control on the card to the new name.h]h:Renames the specified control on the card to the new name.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_numid (C function)c.snd_ctl_find_numidhNtauh1hhjhhhNhNubh)}(hhh](h)}(hTstruct snd_kcontrol * snd_ctl_find_numid (struct snd_card *card, unsigned int numid)h]h)}(hRstruct snd_kcontrol *snd_ctl_find_numid(struct snd_card *card, unsigned int numid)h](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM/ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7hhhjHhM/ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jsnd_ctl_find_numidsbc.snd_ctl_find_numidasbuh1hhj7hhhjHhM/ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7hhhjHhM/ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhjHhM/ubj)}(hsnd_ctl_find_numidh]j%)}(hjxh]hsnd_ctl_find_numid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj7hhhjHhM/ubj@)}(h+(struct snd_card *card, unsigned int numid)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj®hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjӮhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjЮubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjծmodnameN classnameNjj)}j]jvc.snd_ctl_find_numidasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int numidh](h)}(hunsignedh]hunsigned}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj%)}(hnumidh]hnumid}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj7hhhjHhM/ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhjHhM/ubah}(h]j.ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhM/hj0hhubjb)}(hhh]jg)}(h2find the control instance with the given number-idh]h2find the control instance with the given number-id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hjhhubah}(h]h ]h"]h$]h&]uh1jahj0hhhjHhM/ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXQ**Parameters** ``struct snd_card *card`` the card instance ``unsigned int numid`` the number-id to search **Description** Finds the control instance with the given number-id from the card. Note that this function takes card->controls_rwlock lock internally. **Return** The pointer of the instance if found, or ``NULL`` if not.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjȯh]hstruct snd_card *card}(hjʯhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƯubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM&hj¯ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjݯhM&hjޯubah}(h]h ]h"]h$]h&]uh1jhj¯ubeh}(h]h ]h"]h$]h&]uh1jhjݯhM&hjubj)}(h/``unsigned int numid`` the number-id to search h](j)}(h``unsigned int numid``h]j)}(hjh]hunsigned int numid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM'hjubj)}(hhh]jg)}(hthe number-id to searchh]hthe number-id to search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj<h]h Description}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjubjg)}(hBFinds the control instance with the given number-id from the card.h]hBFinds the control instance with the given number-id from the card.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjubjg)}(h **Return**h]j)}(hjrh]hReturn}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hjubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_id (C function)c.snd_ctl_find_idhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_struct snd_kcontrol * snd_ctl_find_id (struct snd_card *card, const struct snd_ctl_elem_id *id)h]h)}(h]struct snd_kcontrol *snd_ctl_find_id(struct snd_card *card, const struct snd_ctl_elem_id *id)h](jL)}(hjOh]hstruct}(hjɰhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjŰhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMHubj)}(h h]h }(hjװhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjŰhhhjְhMHubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_find_idsbc.snd_ctl_find_idasbuh1hhjŰhhhjְhMHubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjŰhhhjְhMHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjŰhhhjְhMHubj)}(hsnd_ctl_find_idh]j%)}(hjh]hsnd_ctl_find_id}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjŰhhhjְhMHubj@)}(h9(struct snd_card *card, const struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(h const struct snd_ctl_elem_id *idh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjαhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj۱hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjŰhhhjְhMHubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjְhMHubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjְhMHhjhhubjb)}(hhh]jg)}(h+find the control instance with the given idh]h+find the control instance with the given id}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM>hjLhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjְhMHubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhjhNhNubj)}(hXQ**Parameters** ``struct snd_card *card`` the card instance ``const struct snd_ctl_elem_id *id`` the id to search **Description** Finds the control instance with the given id from the card. Note that this function takes card->controls_rwlock lock internally. **Return** The pointer of the instance if found, or ``NULL`` if not.h](jg)}(h**Parameters**h]j)}(hjqh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMBhjkubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubj)}(h6``const struct snd_ctl_elem_id *id`` the id to search h](j)}(h$``const struct snd_ctl_elem_id *id``h]j)}(hjɲh]h const struct snd_ctl_elem_id *id}(hj˲hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDzubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM@hjòubj)}(hhh]jg)}(hthe id to searchh]hthe id to search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj޲hM@hj߲ubah}(h]h ]h"]h$]h&]uh1jhjòubeh}(h]h ]h"]h$]h&]uh1jhj޲hM@hjubeh}(h]h ]h"]h$]h&]uh1jhjkubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMBhjkubjg)}(h;Finds the control instance with the given id from the card.h]h;Finds the control instance with the given id from the card.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMBhjkubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMDhjkubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMFhjkubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjPhhhNhNubj)}(h``NULL``h]hNULL}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh if not.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMDhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_ioctl (C function)c.snd_ctl_register_ioctlhNtauh1hhjhhhNhNubh)}(hhh](h)}(h6int snd_ctl_register_ioctl (snd_kctl_ioctl_func_t fcn)h]h)}(h5int snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_register_ioctlh]j%)}(hsnd_ctl_register_ioctlh]hsnd_ctl_register_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjѳhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjγubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjӳmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_register_ioctlasbuh1hhjʳubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʳubj%)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʳubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjƳubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h+register the device-specific control-ioctlsh]h+register the device-specific control-ioctls}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj&hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhjhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function **Description** called from each device manager like pcm.c, hwdep.c, etc. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjKh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEubj)}(hhh]j)}(h6``snd_kctl_ioctl_func_t fcn`` ioctl callback function h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjjh]hsnd_kctl_ioctl_func_t fcn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjdubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhMhjaubah}(h]h ]h"]h$]h&]uh1jhjEubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEubjg)}(h9called from each device manager like pcm.c, hwdep.c, etc.h]h9called from each device manager like pcm.c, hwdep.c, etc.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEubjg)}(h **Return**h]j)}(hj̴h]hReturn}(hjδhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjʴubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_register_ioctl_compat (C function)c.snd_ctl_register_ioctl_compathNtauh1hhjhhhNhNubh)}(hhh](h)}(h=int snd_ctl_register_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(huh1jhj hhhjhM+ubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jj4sbc.snd_ctl_register_ioctl_compatasbuh1hhjJubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhM+ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhjhM+ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM+hjhhubjb)}(hhh]jg)}(h8register the device-specific 32bit compat control-ioctlsh]h8register the device-specific 32bit compat control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj˵h]h Parameters}(hj͵hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɵubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjŵubj)}(hhh]j)}(h6``snd_kctl_ioctl_func_t fcn`` ioctl callback function h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjh]hsnd_kctl_ioctl_func_t fcn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM'hjubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjŵubjg)}(h **Return**h]j)}(hj%h]hReturn}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjŵubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjŵubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_unregister_ioctl (C function)c.snd_ctl_unregister_ioctlhNtauh1hhjhhhNhNubh)}(hhh](h)}(h8int snd_ctl_unregister_ioctl (snd_kctl_ioctl_func_t fcn)h]h)}(h7int snd_ctl_unregister_ioctl(snd_kctl_ioctl_func_t fcn)h](h)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMNubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhjxhMNubj)}(hsnd_ctl_unregister_ioctlh]j%)}(hsnd_ctl_unregister_ioctlh]hsnd_ctl_unregister_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfhhhjxhMNubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_unregister_ioctlasbuh1hhjubj)}(h h]h }(hjʶhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(hjضhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjfhhhjxhMNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjbhhhjxhMNubah}(h]j]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhMNhj_hhubjb)}(hhh]jg)}(h.de-register the device-specific control-ioctlsh]h.de-register the device-specific control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMIhjhhubah}(h]h ]h"]h$]h&]uh1jahj_hhhjxhMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj$h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMMhjubj)}(hhh]j)}(hD``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjCh]hsnd_kctl_ioctl_func_t fcn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMJhj=ubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhMJhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhMJhj:ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj~h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_unregister_ioctl_compat (C function)!c.snd_ctl_unregister_ioctl_compathNtauh1hhjhhhNhNubh)}(hhh](h)}(h?int snd_ctl_unregister_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(h>int snd_ctl_unregister_ioctl_compat(snd_kctl_ioctl_func_t fcn)h](h)}(hinth]hint}(hj÷hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM\ubj)}(h h]h }(hjҷhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjѷhM\ubj)}(hsnd_ctl_unregister_ioctl_compath]j%)}(hsnd_ctl_unregister_ioctl_compath]hsnd_ctl_unregister_ioctl_compat}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjѷhM\ubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb!c.snd_ctl_unregister_ioctl_compatasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjѷhM\ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjѷhM\ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjѷhM\hjhhubjb)}(hhh]jg)}(h;de-register the device-specific compat 32bit control-ioctlsh]h;de-register the device-specific compat 32bit control-ioctls}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMVhjXhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjѷhM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj}h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMZhjwubj)}(hhh]j)}(hD``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjh]hsnd_kctl_ioctl_func_t fcn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMXhjubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h **Return**h]j)}(hj׸h]hReturn}(hjٸhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjոubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMZhjwubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMZhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_request_layer (C function)c.snd_ctl_request_layerhNtauh1hhjhhhNhNubh)}(hhh](h)}(h3int snd_ctl_request_layer (const char *module_name)h]h)}(h2int snd_ctl_request_layer(const char *module_name)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj*hMubj)}(hsnd_ctl_request_layerh]j%)}(hsnd_ctl_request_layerh]hsnd_ctl_request_layer}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj*hMubj@)}(h(const char *module_name)h]jF)}(hconst char *module_nameh](jL)}(hj\h]hconst}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hcharh]hchar}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(h module_nameh]h module_name}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj*hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj*hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hMhjhhubjb)}(hhh]jg)}(hrequest to use the layerh]hrequest to use the layer}(hjǹhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjĹhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj*hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj߹jj߹jjjuh1hhhhjhNhNubj)}(h**Parameters** ``const char *module_name`` Name of the kernel module (NULL == build-in) **Return** zero if successful, or an error code when the module cannot be loadedh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j)}(hI``const char *module_name`` Name of the kernel module (NULL == build-in) h](j)}(h``const char *module_name``h]j)}(hjh]hconst char *module_name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h,Name of the kernel module (NULL == build-in)h]h,Name of the kernel module (NULL == build-in)}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjCh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hEzero if successful, or an error code when the module cannot be loadedh]hEzero if successful, or an error code when the module cannot be loaded}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_layer (C function)c.snd_ctl_register_layerhNtauh1hhjhhhNhNubh)}(hhh](h)}(huh1jhjhhhjhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](jL)}(hjOh]hstruct}(hjźhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjҺhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_layer_opsh]hsnd_ctl_layer_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_register_layerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlopsh]hlops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j{ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj}hhubjb)}(hhh]jg)}(hregister new control layerh]hregister new control layer}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjEhhubah}(h]h ]h"]h$]h&]uh1jahj}hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`jj`jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_ctl_layer_ops *lops`` operation structure **Description** The new layer can track all control elements and do additional operations on top (like audio LED handling).h](jg)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjdubj)}(hhh]j)}(h7``struct snd_ctl_layer_ops *lops`` operation structure h](j)}(h"``struct snd_ctl_layer_ops *lops``h]j)}(hjh]hstruct snd_ctl_layer_ops *lops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjdubjg)}(h**Description**h]j)}(hjĻh]h Description}(hjƻhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj»ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjdubjg)}(hkThe new layer can track all control elements and do additional operations on top (like audio LED handling).h]hkThe new layer can track all control elements and do additional operations on top (like audio LED handling).}(hjڻhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_disconnect_layer (C function)c.snd_ctl_disconnect_layerhNtauh1hhjhhhNhNubh)}(hhh](h)}(h>void snd_ctl_disconnect_layer (struct snd_ctl_layer_ops *lops)h]h)}(h=void snd_ctl_disconnect_layer(struct snd_ctl_layer_ops *lops)h](h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_disconnect_layerh]j%)}(hsnd_ctl_disconnect_layerh]hsnd_ctl_disconnect_layer}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hhh]j%)}(hsnd_ctl_layer_opsh]hsnd_ctl_layer_ops}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jj,sbc.snd_ctl_disconnect_layerasbuh1hhjBubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(hlopsh]hlops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hdisconnect control layerh]hdisconnect control layer}(hjɼhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjƼhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_ctl_layer_ops *lops`` operation structure **Description** It is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j)}(h7``struct snd_ctl_layer_ops *lops`` operation structure h](j)}(h"``struct snd_ctl_layer_ops *lops``h]j)}(hj h]hstruct snd_ctl_layer_ops *lops}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hIt is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).h]hIt is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_ctl_boolean_mono_info (C function)c.snd_ctl_boolean_mono_infohNtauh1hhjhhhNhNubh)}(hhh](h)}(h^int snd_ctl_boolean_mono_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h]int snd_ctl_boolean_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMV ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMV ubj)}(hsnd_ctl_boolean_mono_infoh]j%)}(hsnd_ctl_boolean_mono_infoh]hsnd_ctl_boolean_mono_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMV ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjǽhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjýubj)}(h h]h }(hjԽhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjýubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_boolean_mono_infoasbuh1hhjýubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjýubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjýubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjýubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]jc.snd_ctl_boolean_mono_infoasbuh1hhj5ubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMV ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMV ubah}(h]j}ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMV hjhhubjb)}(hhh]jg)}(hHHelper function for a standard boolean info callback with a mono channelh]hHHelper function for a standard boolean info callback with a mono channel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chML hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMV ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjҾjjҾjjjuh1hhhhjhNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` the kcontrol instance ``struct snd_ctl_elem_info *uinfo`` info to store **Description** This is a function that can be used as info callback for a standard boolean control with a single mono channel. **Return** Zero (always successful)h](jg)}(h**Parameters**h]j)}(hjܾh]h Parameters}(hj޾hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjھubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMP hj־ubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMN hjubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMN hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMN hjubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj4h]hstruct snd_ctl_elem_info *uinfo}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMO hj.ubj)}(hhh]jg)}(h info to storeh]h info to store}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMO hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMO hjubeh}(h]h ]h"]h$]h&]uh1jhj־ubjg)}(h**Description**h]j)}(hjoh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMQ hj־ubjg)}(hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.h]hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMQ hj־ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMT hj־ubjg)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMT hj־ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_boolean_stereo_info (C function)c.snd_ctl_boolean_stereo_infohNtauh1hhjhhhNhNubh)}(hhh](h)}(h`int snd_ctl_boolean_stereo_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h_int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjۿhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj׿hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMl ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj׿hhhjhMl ubj)}(hsnd_ctl_boolean_stereo_infoh]j%)}(hsnd_ctl_boolean_stereo_infoh]hsnd_ctl_boolean_stereo_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj׿hhhjhMl ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_boolean_stereo_infoasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jRc.snd_ctl_boolean_stereo_infoasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj׿hhhjhMl ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjӿhhhjhMl ubah}(h]jοah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMl hjпhhubjb)}(hhh]jg)}(hMHelper function for a standard boolean info callback with stereo two channelsh]hMHelper function for a standard boolean info callback with stereo two channels}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb hjhhubah}(h]h ]h"]h$]h&]uh1jahjпhhhjhMl ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhjhNhNubj)}(hX$**Parameters** ``struct snd_kcontrol *kcontrol`` the kcontrol instance ``struct snd_ctl_elem_info *uinfo`` info to store **Description** This is a function that can be used as info callback for a standard boolean control with stereo two channels. **Return** Zero (always successful)h](jg)}(h**Parameters**h]j)}(hj-h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMf hj'ubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjLh]hstruct snd_kcontrol *kcontrol}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMd hjFubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMd hjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMd hjCubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMe hjubj)}(hhh]jg)}(h info to storeh]h info to store}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMe hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMe hjCubeh}(h]h ]h"]h$]h&]uh1jhj'ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMg hj'ubjg)}(hmThis is a function that can be used as info callback for a standard boolean control with stereo two channels.h]hmThis is a function that can be used as info callback for a standard boolean control with stereo two channels.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMg hj'ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMj hj'ubjg)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMj hj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_enum_info (C function)c.snd_ctl_enum_infohNtauh1hhjhhhNhNubh)}(hhh](h)}(h|int snd_ctl_enum_info (struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h]h)}(h{int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h](h)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhj:hM ubj)}(hsnd_ctl_enum_infoh]j%)}(hsnd_ctl_enum_infoh]hsnd_ctl_enum_info}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhj:hM ubj@)}(hf(struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h](jF)}(hstruct snd_ctl_elem_info *infoh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjOsbc.snd_ctl_enum_infoasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(hunsigned int channelsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hchannelsh]hchannels}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(hunsigned int itemsh](h)}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj%)}(hitemsh]hitems}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(hconst char *const names[]h](jL)}(hj\h]hconst}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hnamesh]hnames}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubj)}(h[h]h[}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj)}(h]h]h]}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhj:hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj:hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hM hj!hhubjb)}(hhh]jg)}(h2fills the info structure for an enumerated controlh]h2fills the info structure for an enumerated control}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMx hjhhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj:hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1hhhhjhNhNubj)}(hX2**Parameters** ``struct snd_ctl_elem_info *info`` the structure to be filled ``unsigned int channels`` the number of the control's channels; often one ``unsigned int items`` the number of control values; also the size of **names** ``const char *const names[]`` an array containing the names of all control values **Description** Sets all required fields in **info** to their appropriate values. If the control's accessibility is not the default (readable and writable), the caller has to fill **info->access**. **Return** Zero (always successful)h](jg)}(h**Parameters**h]j)}(hjDh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM| hj>ubj)}(hhh](j)}(h>``struct snd_ctl_elem_info *info`` the structure to be filled h](j)}(h"``struct snd_ctl_elem_info *info``h]j)}(hjch]hstruct snd_ctl_elem_info *info}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMy hj]ubj)}(hhh]jg)}(hthe structure to be filledh]hthe structure to be filled}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMy hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMy hjZubj)}(hJ``unsigned int channels`` the number of the control's channels; often one h](j)}(h``unsigned int channels``h]j)}(hjh]hunsigned int channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMz hjubj)}(hhh]jg)}(h/the number of the control's channels; often oneh]h1the number of the control’s channels; often one}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMz hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMz hjZubj)}(hP``unsigned int items`` the number of control values; also the size of **names** h](j)}(h``unsigned int items``h]j)}(hjh]hunsigned int items}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{ hjubj)}(hhh]jg)}(h8the number of control values; also the size of **names**h](h/the number of control values; also the size of }(hjhhhNhNubj)}(h **names**h]hnames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jfhjhM{ hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hjZubj)}(hR``const char *const names[]`` an array containing the names of all control values h](j)}(h``const char *const names[]``h]j)}(hjh]hconst char *const names[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM| hjubj)}(hhh]jg)}(h3an array containing the names of all control valuesh]h3an array containing the names of all control values}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hM| hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM| hjZubeh}(h]h ]h"]h$]h&]uh1jhj>ubjg)}(h**Description**h]j)}(hjWh]h Description}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM~ hj>ubjg)}(hSets all required fields in **info** to their appropriate values. If the control's accessibility is not the default (readable and writable), the caller has to fill **info->access**.h](hSets all required fields in }(hjmhhhNhNubj)}(h**info**h]hinfo}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubh to their appropriate values. If the control’s accessibility is not the default (readable and writable), the caller has to fill }(hjmhhhNhNubj)}(h**info->access**h]h info->access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubh.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM~ hj>ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hj>ubjg)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]general-control-interfaceah ]h"]general control interfaceah$]h&]uh1hhjrhhhhhK5ubh)}(hhh](h)}(hAC97 Codec APIh]hAC97 Codec API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK9ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_write (C function)c.snd_ac97_writehNtauh1hhjhhhNhNubh)}(hhh](h)}(hUvoid snd_ac97_write (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]h)}(hTvoid snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_writeh]j%)}(hsnd_ac97_writeh]hsnd_ac97_write}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hj=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]j)}jj#sbc.snd_ac97_writeasbuh1hhj9ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h#write a value on the given registerh]h#write a value on the given register}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj_hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to change ``unsigned short value`` the value to set **Description** Writes a value on the given register. This will invoke the write callback directly after the register check. This function doesn't change the register cache unlike #snd_ca97_write_cache(), so use this only when you don't want to reflect the change to the suspend/resume state.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjh]hunsigned short reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjh]hunsigned short value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhjubeh}(h]h ]h"]h$]h&]uh1jhj~ubjg)}(h**Description**h]j)}(hjPh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj~ubjg)}(hXWrites a value on the given register. This will invoke the write callback directly after the register check. This function doesn't change the register cache unlike #snd_ca97_write_cache(), so use this only when you don't want to reflect the change to the suspend/resume state.h]hXWrites a value on the given register. This will invoke the write callback directly after the register check. This function doesn’t change the register cache unlike #snd_ca97_write_cache(), so use this only when you don’t want to reflect the change to the suspend/resume state.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_read (C function)c.snd_ac97_readhNtauh1hhjhhhNhNubh)}(hhh](h)}(hHunsigned short snd_ac97_read (struct snd_ac97 *ac97, unsigned short reg)h]h)}(hGunsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM(ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM(ubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhM(ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM(ubj)}(h snd_ac97_readh]j%)}(h snd_ac97_readh]h snd_ac97_read}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM(ubj@)}(h+(struct snd_ac97 *ac97, unsigned short reg)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_readasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hshorth]hshort}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM(ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM(ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM(hjhhubjb)}(hhh]jg)}(h$read a value from the given registerh]h$read a value from the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM(ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX **Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to read **Description** Reads a value from the given register. This will invoke the read callback directly after the register check. **Return** The read value.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM"hjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h,``unsigned short reg`` the register to read h](j)}(h``unsigned short reg``h]j)}(hj<h]hunsigned short reg}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM!hj6ubj)}(hhh]jg)}(hthe register to readh]hthe register to read}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhM!hjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhM!hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM#hjubjg)}(hmReads a value from the given register. This will invoke the read callback directly after the register check.h]hmReads a value from the given register. This will invoke the read callback directly after the register check.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM#hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM&hjubjg)}(hThe read value.h]hThe read value.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM&hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_write_cache (C function)c.snd_ac97_write_cachehNtauh1hhjhhhNhNubh)}(hhh](h)}(h[void snd_ac97_write_cache (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]h)}(hZvoid snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMEubj)}(hsnd_ac97_write_cacheh]j%)}(hsnd_ac97_write_cacheh]hsnd_ac97_write_cache}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMEubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_write_cacheasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMEubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMEhjhhubjb)}(hhh]jg)}(h8write a value on the given register and update the cacheh]h8write a value on the given register and update the cache}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM<hjBhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMEubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhjhNhNubj)}(hX:**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to change ``unsigned short value`` the value to set **Description** Writes a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.h](jg)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM@hjaubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM=hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM=hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hj}ubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjh]hunsigned short reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM>hjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM>hj}ubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjh]hunsigned short value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM?hjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM?hj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubjg)}(h**Description**h]j)}(hj3h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMAhjaubjg)}(hWrites a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.h]hWrites a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMAhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_update (C function)c.snd_ac97_updatehNtauh1hhjhhhNhNubh)}(hhh](h)}(hUint snd_ac97_update (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]h)}(hTint snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjthhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjthhhjhM^ubj)}(hsnd_ac97_updateh]j%)}(hsnd_ac97_updateh]hsnd_ac97_update}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjthhhjhM^ubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_updateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hshorth]hshort}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj%)}(hregh]hreg}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjthhhjhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjphhhjhM^ubah}(h]jkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM^hjmhhubjb)}(hhh]jg)}(h&update the value on the given registerh]h&update the value on the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMShjhhubah}(h]h ]h"]h$]h&]uh1jahjmhhhjhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXe**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to change ``unsigned short value`` the value to set **Description** Compares the value with the register cache and updates the value only when the value is changed. **Return** 1 if the value is changed, 0 if no change, or a negative code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMWhjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMThjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMThj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMThjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjTh]hunsigned short reg}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMUhjNubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihMUhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMUhjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjh]hunsigned short value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMVhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMXhjubjg)}(h`Compares the value with the register cache and updates the value only when the value is changed.h]h`Compares the value with the register cache and updates the value only when the value is changed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMXhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM[hjubjg)}(hI1 if the value is changed, 0 if no change, or a negative code on failure.h]hI1 if the value is changed, 0 if no change, or a negative code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM[hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_update_bits (C function)c.snd_ac97_update_bitshNtauh1hhjhhhNhNubh)}(hhh](h)}(hoint snd_ac97_update_bits (struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h]h)}(hnint snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](h)}(hinth]hint}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0hhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM~ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0hhhjBhM~ubj)}(hsnd_ac97_update_bitsh]j%)}(hsnd_ac97_update_bitsh]hsnd_ac97_update_bits}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0hhhjBhM~ubj@)}(hV(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjWsbc.snd_ac97_update_bitsasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(hunsigned short maskh](h)}(hunsignedh]hunsigned}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hshorth]hshort}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj%)}(hmaskh]hmask}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0hhhjBhM~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,hhhjBhM~ubah}(h]j'ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBhM~hj)hhubjb)}(hhh]jg)}(h%update the bits on the given registerh]h%update the bits on the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMrhjhhubah}(h]h ]h"]h$]h&]uh1jahj)hhhjBhM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to change ``unsigned short mask`` the bit-mask to change ``unsigned short value`` the value to set **Description** Updates the masked-bits on the given register only when the value is changed. **Return** 1 if the bits are changed, 0 if no change, or a negative code on failure.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMvhjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hj(h]hstruct snd_ac97 *ac97}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMshj"ubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hMshj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hMshjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjah]hunsigned short reg}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMthj[ubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMthjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMthjubj)}(h/``unsigned short mask`` the bit-mask to change h](j)}(h``unsigned short mask``h]j)}(hjh]hunsigned short mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMuhjubj)}(hhh]jg)}(hthe bit-mask to changeh]hthe bit-mask to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMuhjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjh]hunsigned short value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMvhjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMvhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMxhjubjg)}(hMUpdates the masked-bits on the given register only when the value is changed.h]hMUpdates the masked-bits on the given register only when the value is changed.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMxhjubjg)}(h **Return**h]j)}(hj5h]hReturn}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM{hjubjg)}(hI1 if the bits are changed, 0 if no change, or a negative code on failure.h]hI1 if the bits are changed, 0 if no change, or a negative code on failure.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM{hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ac97_get_short_name (C function)c.snd_ac97_get_short_namehNtauh1hhjhhhNhNubh)}(hhh](h)}(huh1jhjvhhhjhM[ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_get_short_nameasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjvhhhjhM[ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrhhhjhM[ubah}(h]jmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM[hjohhubjb)}(hhh]jg)}(hretrieve codec nameh]hretrieve codec name}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhj_hhubah}(h]h ]h"]h$]h&]uh1jahjohhhjhM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjhNhNubj)}(ht**Parameters** ``struct snd_ac97 *ac97`` the codec instance **Return** The short identifying name of the codec.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMZhj~ubj)}(hhh]j)}(h-``struct snd_ac97 *ac97`` the codec instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMWhjubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhj~ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMYhj~ubjg)}(h(The short identifying name of the codec.h]h(The short identifying name of the codec.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMYhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_bus (C function)c.snd_ac97_bushNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_ac97_bus (struct snd_card *card, int num, const struct snd_ac97_bus_ops *ops, void *private_data, struct snd_ac97_bus **rbus)h]h)}(hint snd_ac97_bus(struct snd_card *card, int num, const struct snd_ac97_bus_ops *ops, void *private_data, struct snd_ac97_bus **rbus)h](h)}(hinth]hint}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hMubj)}(h snd_ac97_bush]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hMubj@)}(ht(struct snd_card *card, int num, const struct snd_ac97_bus_ops *ops, void *private_data, struct snd_ac97_bus **rbus)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_ac97_busasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(hint numh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(h"const struct snd_ac97_bus_ops *opsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_bus_opsh]hsnd_ac97_bus_ops}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]jc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hopsh]hops}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(hstruct snd_ac97_bus **rbush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrbush]hrbus}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hMhjhhubjb)}(hhh]jg)}(hcreate an AC97 bus componenth]hcreate an AC97 bus component}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj_hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjhNhNubj)}(hX/**Parameters** ``struct snd_card *card`` the card instance ``int num`` the bus number ``const struct snd_ac97_bus_ops *ops`` the bus callbacks table ``void *private_data`` private data pointer for the new instance ``struct snd_ac97_bus **rbus`` the pointer to store the new AC97 bus instance. **Description** Creates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized. The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory. The clock is set to 48000. If another clock is needed, set ``(*rbus)->clock`` manually. The AC97 bus instance is registered as a low-level device, so you don't have to release it manually. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int num`` the bus number h](j)}(h ``int num``h]j)}(hjh]hint num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe bus numberh]hthe bus number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h?``const struct snd_ac97_bus_ops *ops`` the bus callbacks table h](j)}(h&``const struct snd_ac97_bus_ops *ops``h]j)}(hjh]h"const struct snd_ac97_bus_ops *ops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe bus callbacks tableh]hthe bus callbacks table}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhjubj)}(hA``void *private_data`` private data pointer for the new instance h](j)}(h``void *private_data``h]j)}(hjNh]hvoid *private_data}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjHubj)}(hhh]jg)}(h)private data pointer for the new instanceh]h)private data pointer for the new instance}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMhjubj)}(hO``struct snd_ac97_bus **rbus`` the pointer to store the new AC97 bus instance. h](j)}(h``struct snd_ac97_bus **rbus``h]j)}(hjh]hstruct snd_ac97_bus **rbus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(h/the pointer to store the new AC97 bus instance.h]h/the pointer to store the new AC97 bus instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhj~ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubaLh}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(hcCreates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized.h]hcCreates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(h~The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory.h]h~The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(hXThe clock is set to 48000. If another clock is needed, set ``(*rbus)->clock`` manually.h](hclock``h]h(*rbus)->clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh manually.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(hdThe AC97 bus instance is registered as a low-level device, so you don't have to release it manually.h]hfThe AC97 bus instance is registered as a low-level device, so you don’t have to release it manually.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(h **Return**h]j)}(hj(h]hReturn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_mixer (C function)c.snd_ac97_mixerhNtauh1hhjhhhNhNubh)}(hhh](h)}(hjint snd_ac97_mixer (struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h]h)}(hiint snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhj{hM ubj)}(hsnd_ac97_mixerh]j%)}(hsnd_ac97_mixerh]hsnd_ac97_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhj{hM ubj@)}(hW(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](jF)}(hstruct snd_ac97_bus *bush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_ac97_template *templateh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_templateh]hsnd_ac97_template}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htemplateh]htemplate}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ac97 **rac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrac97h]hrac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhj{hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhj{hM ubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj{hM hjbhhubjb)}(hhh]jg)}(hcreate an Codec97 componenth]hcreate an Codec97 component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjbhhhj{hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97_bus *bus`` the AC97 bus which codec is attached to ``struct snd_ac97_template *template`` the template of ac97, including index, callbacks and the private data. ``struct snd_ac97 **rac97`` the pointer to store the new ac97 instance. **Description** Creates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure. The template must include the codec number (num) and address (addr), and the private data (private_data). The ac97 instance is registered as a low-level device, so you don't have to release it manually. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubj)}(hhh](j)}(hE``struct snd_ac97_bus *bus`` the AC97 bus which codec is attached to h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hj[h]hstruct snd_ac97_bus *bus}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjUubj)}(hhh]jg)}(h'the AC97 bus which codec is attached toh]h'the AC97 bus which codec is attached to}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMhjRubj)}(hn``struct snd_ac97_template *template`` the template of ac97, including index, callbacks and the private data. h](j)}(h&``struct snd_ac97_template *template``h]j)}(hjh]h"struct snd_ac97_template *template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hFthe template of ac97, including index, callbacks and the private data.h]hFthe template of ac97, including index, callbacks and the private data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjRubj)}(hH``struct snd_ac97 **rac97`` the pointer to store the new ac97 instance. h](j)}(h``struct snd_ac97 **rac97``h]j)}(hjh]hstruct snd_ac97 **rac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(h+the pointer to store the new ac97 instance.h]h+the pointer to store the new ac97 instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjRubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubjg)}(hCreates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure.h]hCreates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubjg)}(hiThe template must include the codec number (num) and address (addr), and the private data (private_data).h]hiThe template must include the codec number (num) and address (addr), and the private data (private_data).}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubjg)}(h`The ac97 instance is registered as a low-level device, so you don't have to release it manually.h]hbThe ac97 instance is registered as a low-level device, so you don’t have to release it manually.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubjg)}(h **Return**h]j)}(hjNh]hReturn}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ac97_update_power (C function)c.snd_ac97_update_powerhNtauh1hhjhhhNhNubh)}(hhh](h)}(hGint snd_ac97_update_power (struct snd_ac97 *ac97, int reg, int powerup)h]h)}(hFint snd_ac97_update_power(struct snd_ac97 *ac97, int reg, int powerup)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_update_powerh]j%)}(hsnd_ac97_update_powerh]hsnd_ac97_update_power}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h-(struct snd_ac97 *ac97, int reg, int powerup)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_update_powerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint regh](h)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj%)}(hregh]hreg}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int poweruph](h)}(hinth]hint}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj%)}(hpoweruph]hpowerup}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hupdate the powerdown registerh]hupdate the powerdown register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM| hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97 *ac97`` the codec instance ``int reg`` the rate register, e.g. AC97_PCM_FRONT_DAC_RATE ``int powerup`` non-zero when power up the part **Description** Update the AC97 powerdown register bits of the given part. **Return** Zero.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh](j)}(h-``struct snd_ac97 *ac97`` the codec instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM} hjubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM} hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM} hjubj)}(h<``int reg`` the rate register, e.g. AC97_PCM_FRONT_DAC_RATE h](j)}(h ``int reg``h]j)}(hj7h]hint reg}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM~ hj1ubj)}(hhh]jg)}(h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATEh]h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATE}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhM~ hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM~ hjubj)}(h0``int powerup`` non-zero when power up the part h](j)}(h``int powerup``h]j)}(hjph]h int powerup}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjjubj)}(hhh]jg)}(hnon-zero when power up the parth]hnon-zero when power up the part}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h:Update the AC97 powerdown register bits of the given part.h]h:Update the AC97 powerdown register bits of the given part.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_suspend (C function)c.snd_ac97_suspendhNtauh1hhjhhhNhNubh)}(hhh](h)}(h-void snd_ac97_suspend (struct snd_ac97 *ac97)h]h)}(h,void snd_ac97_suspend(struct snd_ac97 *ac97)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj%hM ubj)}(hsnd_ac97_suspendh]j%)}(hsnd_ac97_suspendh]hsnd_ac97_suspend}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj%hM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jj:sbc.snd_ac97_suspendasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj%hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj%hM ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%hM hj hhubjb)}(hhh]jg)}(h'General suspend function for AC97 codech]h'General suspend function for AC97 codec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj%hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hx**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance **Description** Suspends the codec, power down the chip.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hM hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjSh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h(Suspends the codec, power down the chip.h]h(Suspends the codec, power down the chip.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_resume (C function)c.snd_ac97_resumehNtauh1hhjhhhNhNubh)}(hhh](h)}(h,void snd_ac97_resume (struct snd_ac97 *ac97)h]h)}(h+void snd_ac97_resume(struct snd_ac97 *ac97)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_resumeh]j%)}(hsnd_ac97_resumeh]hsnd_ac97_resume}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_resumeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h&General resume function for AC97 codech]h&General resume function for AC97 codec}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjUhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance **Description** Do the standard resume procedure, power up and restoring the old register values.h](jg)}(h**Parameters**h]j)}(hjzh]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjtubj)}(hhh]j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjtubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjtubjg)}(hQDo the standard resume procedure, power up and restoring the old register values.h]hQDo the standard resume procedure, power up and restoring the old register values.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ac97_tune_hardware (C function)c.snd_ac97_tune_hardwarehNtauh1hhjhhhNhNubh)}(hhh](h)}(hhint snd_ac97_tune_hardware (struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h]h)}(hgint snd_ac97_tune_hardware(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj'hM ubj)}(hsnd_ac97_tune_hardwareh]j%)}(hsnd_ac97_tune_hardwareh]hsnd_ac97_tune_hardware}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj'hM ubj@)}(hM(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jj<sbc.snd_ac97_tune_hardwareasbuh1hhjRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(hconst struct ac97_quirk *quirkh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h ac97_quirkh]h ac97_quirk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_tune_hardwareasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hquirkh]hquirk}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(hconst char *overrideh](jL)}(hj\h]hconst}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hcharh]hchar}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hoverrideh]hoverride}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj'hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj'hM ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj'hM hjhhubjb)}(hhh]jg)}(htune up the hardwareh]htune up the hardware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj'hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``const struct ac97_quirk *quirk`` quirk list ``const char *override`` explicit quirk value (overrides the list if non-NULL) **Description** Do some workaround for each pci device, such as renaming of the headphone (true line-out) control as "Master". The quirk-list must be terminated with a zero-filled entry. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h.``const struct ac97_quirk *quirk`` quirk list h](j)}(h"``const struct ac97_quirk *quirk``h]j)}(hj;h]hconst struct ac97_quirk *quirk}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj5ubj)}(hhh]jg)}(h quirk listh]h quirk list}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhM hjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhM hjubj)}(hO``const char *override`` explicit quirk value (overrides the list if non-NULL) h](j)}(h``const char *override``h]j)}(hjth]hconst char *override}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjnubj)}(hhh]jg)}(h5explicit quirk value (overrides the list if non-NULL)h]h5explicit quirk value (overrides the list if non-NULL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(hDo some workaround for each pci device, such as renaming of the headphone (true line-out) control as "Master". The quirk-list must be terminated with a zero-filled entry.h]hDo some workaround for each pci device, such as renaming of the headphone (true line-out) control as “Master”. The quirk-list must be terminated with a zero-filled entry.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_set_rate (C function)c.snd_ac97_set_ratehNtauh1hhjhhhNhNubh)}(hhh](h)}(hIint snd_ac97_set_rate (struct snd_ac97 *ac97, int reg, unsigned int rate)h]h)}(hHint snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj)hKubj)}(hsnd_ac97_set_rateh]j%)}(hsnd_ac97_set_rateh]hsnd_ac97_set_rate}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj)hKubj@)}(h3(struct snd_ac97 *ac97, int reg, unsigned int rate)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jj>sbc.snd_ac97_set_rateasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(hint regh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hrateh]hrate}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj)hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj)hKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)hKhjhhubjb)}(hhh]jg)}(h*change the rate of the given input/output.h]h*change the rate of the given input/output.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj^hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj)hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhjhNhNubj)}(hXw**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``int reg`` the register to change ``unsigned int rate`` the sample rate to set **Description** Changes the rate of the given input/output on the codec. If the codec doesn't support VAR, the rate must be 48000 (except for SPDIF). The valid registers are AC97_PCM_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h#``int reg`` the register to change h](j)}(h ``int reg``h]j)}(hjh]hint reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h-``unsigned int rate`` the sample rate to set h](j)}(h``unsigned int rate``h]j)}(hjh]hunsigned int rate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]jg)}(hthe sample rate to seth]hthe sample rate to set}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hKhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hKhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h**Description**h]j)}(hjOh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubjg)}(hChanges the rate of the given input/output on the codec. If the codec doesn't support VAR, the rate must be 48000 (except for SPDIF).h]hChanges the rate of the given input/output on the codec. If the codec doesn’t support VAR, the rate must be 48000 (except for SPDIF).}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubjg)}(hXThe valid registers are AC97_PCM_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits.h]hXThe valid registers are AC97_PCM_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ac97_pcm_assign (C function)c.snd_ac97_pcm_assignhNtauh1hhjhhhNhNubh)}(hhh](h)}(hjint snd_ac97_pcm_assign (struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h]h)}(hiint snd_ac97_pcm_assign(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_pcm_assignh]j%)}(hsnd_ac97_pcm_assignh]hsnd_ac97_pcm_assign}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hR(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](jF)}(hstruct snd_ac97_bus *bush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_assignasbuh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short pcms_counth](h)}(hunsignedh]hunsigned}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj%)}(h pcms_counth]h pcms_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst struct ac97_pcm *pcmsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jAc.snd_ac97_pcm_assignasbuh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmsh]hpcms}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&assign AC97 slots to given PCM streamsh]h&assign AC97 slots to given PCM streams}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjchhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~jj~jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97_bus *bus`` the ac97 bus instance ``unsigned short pcms_count`` count of PCMs to be assigned ``const struct ac97_pcm *pcms`` PCMs to be assigned **Description** It assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh](j)}(h3``struct snd_ac97_bus *bus`` the ac97 bus instance h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hjh]hstruct snd_ac97_bus *bus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hthe ac97 bus instanceh]hthe ac97 bus instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h;``unsigned short pcms_count`` count of PCMs to be assigned h](j)}(h``unsigned short pcms_count``h]j)}(hjh]hunsigned short pcms_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hcount of PCMs to be assignedh]hcount of PCMs to be assigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``const struct ac97_pcm *pcms`` PCMs to be assigned h](j)}(h``const struct ac97_pcm *pcms``h]j)}(hjh]hconst struct ac97_pcm *pcms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hPCMs to be assignedh]hPCMs to be assigned}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjTh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hIt assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero.h]hIt assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(h **Return**h]j)}(hj{h]hReturn}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_open (C function)c.snd_ac97_pcm_openhNtauh1hhjhhhNhNubh)}(hhh](h)}(hlint snd_ac97_pcm_open (struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h]h)}(hkint snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM+ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM+ubj)}(hsnd_ac97_pcm_openh]j%)}(hsnd_ac97_pcm_openh]hsnd_ac97_pcm_open}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM+ubj@)}(hV(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](jF)}(hstruct ac97_pcm *pcmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hrateh]hrate}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum ac97_pcm_cfg cfgh](jL)}(hj'h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h ac97_pcm_cfgh]h ac97_pcm_cfg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j7c.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcfgh]hcfg}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short slotsh](h)}(hunsignedh]hunsigned}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hslotsh]hslots}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM+ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM+ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM+hjhhubjb)}(hhh]jg)}(hopens the given AC97 pcmh]hopens the given AC97 pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM!hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct ac97_pcm *pcm`` the ac97 pcm instance ``unsigned int rate`` rate in Hz, if codec does not support VRA, this value must be 48000Hz ``enum ac97_pcm_cfg cfg`` output stream characteristics ``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm **Description** It locks the specified slots and sets the given rate to AC97 registers. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM%hjubj)}(hhh](j)}(h/``struct ac97_pcm *pcm`` the ac97 pcm instance h](j)}(h``struct ac97_pcm *pcm``h]j)}(hjh]hstruct ac97_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM"hjubj)}(hhh]jg)}(hthe ac97 pcm instanceh]hthe ac97 pcm instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM"hjubj)}(h\``unsigned int rate`` rate in Hz, if codec does not support VRA, this value must be 48000Hz h](j)}(h``unsigned int rate``h]j)}(hjh]hunsigned int rate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM#hjubj)}(hhh]jg)}(hErate in Hz, if codec does not support VRA, this value must be 48000Hzh]hErate in Hz, if codec does not support VRA, this value must be 48000Hz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjubj)}(h8``enum ac97_pcm_cfg cfg`` output stream characteristics h](j)}(h``enum ac97_pcm_cfg cfg``h]j)}(hj8h]henum ac97_pcm_cfg cfg}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM$hj2ubj)}(hhh]jg)}(houtput stream characteristicsh]houtput stream characteristics}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhM$hjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhM$hjubj)}(hX``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm h](j)}(h``unsigned short slots``h]j)}(hjqh]hunsigned short slots}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM%hjkubj)}(hhh]jg)}(h>a subset of allocated slots (snd_ac97_pcm_assign) for this pcmh]h>a subset of allocated slots (snd_ac97_pcm_assign) for this pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM%hjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhM%hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM'hjubjg)}(hGIt locks the specified slots and sets the given rate to AC97 registers.h]hGIt locks the specified slots and sets the given rate to AC97 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM'hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM)hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM)hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_close (C function)c.snd_ac97_pcm_closehNtauh1hhjhhhNhNubh)}(hhh](h)}(h-int snd_ac97_pcm_close (struct ac97_pcm *pcm)h]h)}(h,int snd_ac97_pcm_close(struct ac97_pcm *pcm)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj&hMubj)}(hsnd_ac97_pcm_closeh]j%)}(hsnd_ac97_pcm_closeh]hsnd_ac97_pcm_close}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj&hMubj@)}(h(struct ac97_pcm *pcm)h]jF)}(hstruct ac97_pcm *pcmh](jL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj;sbc.snd_ac97_pcm_closeasbuh1hhjQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj%)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj&hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj&hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj&hMhj hhubjb)}(hhh]jg)}(hcloses the given AC97 pcmh]hcloses the given AC97 pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj&hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct ac97_pcm *pcm`` the ac97 pcm instance **Description** It frees the locked AC97 slots. **Return** Zero.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]j)}(h/``struct ac97_pcm *pcm`` the ac97 pcm instance h](j)}(h``struct ac97_pcm *pcm``h]j)}(hjh]hstruct ac97_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hthe ac97 pcm instanceh]hthe ac97 pcm instance}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjTh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hIt frees the locked AC97 slots.h]hIt frees the locked AC97 slots.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(h **Return**h]j)}(hj{h]hReturn}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_ac97_pcm_double_rate_rules (C function) c.snd_ac97_pcm_double_rate_ruleshNtauh1hhjhhhNhNubh)}(hhh](h)}(hDint snd_ac97_pcm_double_rate_rules (struct snd_pcm_runtime *runtime)h]h)}(hCint snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_pcm_double_rate_rulesh]j%)}(hsnd_ac97_pcm_double_rate_rulesh]hsnd_ac97_pcm_double_rate_rules}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.snd_ac97_pcm_double_rate_rulesasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hset double rate constraintsh]hset double rate constraints}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj}hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX***Parameters** ``struct snd_pcm_runtime *runtime`` the runtime of the ac97 front playback pcm **Description** Installs the hardware constraint rules to prevent using double rates and more than two channels at the same time. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]j)}(hO``struct snd_pcm_runtime *runtime`` the runtime of the ac97 front playback pcm h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(h*the runtime of the ac97 front playback pcmh]h*the runtime of the ac97 front playback pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.h]hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(h **Return**h]j)}(hj#h]hReturn}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]ac97-codec-apiah ]h"]ac97 codec apiah$]h&]uh1hhjrhhhhhK9ubh)}(hhh](h)}(hVirtual Master Control APIh]hVirtual Master Control API}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhK>ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_add_followers (C function)c.snd_ctl_add_followershNtauh1hhjWhhhNhNubh)}(hhh](h)}(hhint snd_ctl_add_followers (struct snd_card *card, struct snd_kcontrol *master, const char * const *list)h]h)}(hfint snd_ctl_add_followers(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM$ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}hhhjhM$ubj)}(hsnd_ctl_add_followersh]j%)}(hsnd_ctl_add_followersh]hsnd_ctl_add_followers}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj}hhhjhM$ubj@)}(hM(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jc.snd_ctl_add_followersasbuh1hhj,ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *const *listh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlisth]hlist}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj}hhhjhM$ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjyhhhjhM$ubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM$hjvhhubjb)}(hhh]jg)}(h!add multiple followers to vmasterh]h!add multiple followers to vmaster}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj3hhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjhM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjWhNhNubj)}(hXZ**Parameters** ``struct snd_card *card`` card instance ``struct snd_kcontrol *master`` the target vmaster kcontrol object ``const char * const *list`` NULL-terminated list of name strings of followers to be added **Description** Adds the multiple follower kcontrols with the given names. Returns 0 for success or a negative error code.h](jg)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjRubj)}(hhh](j)}(h(``struct snd_card *card`` card instance h](j)}(h``struct snd_card *card``h]j)}(hjwh]hstruct snd_card *card}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjqubj)}(hhh]jg)}(h card instanceh]h card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhMhjnubj)}(hC``struct snd_kcontrol *master`` the target vmaster kcontrol object h](j)}(h``struct snd_kcontrol *master``h]j)}(hjh]hstruct snd_kcontrol *master}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h"the target vmaster kcontrol objecth]h"the target vmaster kcontrol object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjnubj)}(h[``const char * const *list`` NULL-terminated list of name strings of followers to be added h](j)}(h``const char * const *list``h]j)}(hjh]hconst char * const *list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h=NULL-terminated list of name strings of followers to be addedh]h=NULL-terminated list of name strings of followers to be added}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjnubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hj$h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM!hjRubjg)}(hjAdds the multiple follower kcontrols with the given names. Returns 0 for success or a negative error code.h]hjAdds the multiple follower kcontrols with the given names. Returns 0 for success or a negative error code.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM!hjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_make_virtual_master (C function)c.snd_ctl_make_virtual_masterhNtauh1hhjWhhhNhNubh)}(hhh](h)}(hWstruct snd_kcontrol * snd_ctl_make_virtual_master (char *name, const unsigned int *tlv)h]h)}(hUstruct snd_kcontrol *snd_ctl_make_virtual_master(char *name, const unsigned int *tlv)h](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjehhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjvhMubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_make_virtual_mastersbc.snd_ctl_make_virtual_masterasbuh1hhjehhhjvhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjvhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhjvhMubj)}(hsnd_ctl_make_virtual_masterh]j%)}(hjh]hsnd_ctl_make_virtual_master}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhjvhMubj@)}(h%(char *name, const unsigned int *tlv)h](jF)}(h char *nameh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst unsigned int *tlvh](jL)}(hj\h]hconst}(hj%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hunsignedh]hunsigned}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj%)}(htlvh]htlv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhjvhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjvhMubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMhj^hhubjb)}(hhh]jg)}(hCreate a virtual master controlh]hCreate a virtual master control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj^hhhjvhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjWhNhNubj)}(hX**Parameters** ``char *name`` name string of the control element to create ``const unsigned int *tlv`` optional TLV int array for dB information **Description** Creates a virtual master control with the given name string. After creating a vmaster element, you can add the follower controls via snd_ctl_add_follower() or snd_ctl_add_follower_uncached(). The optional argument **tlv** can be used to specify the TLV information for dB scale of the master control. It should be a single element with #SNDRV_CTL_TLVT_DB_SCALE, #SNDRV_CTL_TLV_DB_MINMAX or #SNDRV_CTL_TLVT_DB_MINMAX_MUTE type, and should be the max 0dB. **Return** The created control element, or ``NULL`` for errors (ENOMEM).h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh](j)}(h<``char *name`` name string of the control element to create h](j)}(h``char *name``h]j)}(hjh]h char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h,name string of the control element to createh]h,name string of the control element to create}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hF``const unsigned int *tlv`` optional TLV int array for dB information h](j)}(h``const unsigned int *tlv``h]j)}(hj)h]hconst unsigned int *tlv}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj#ubj)}(hhh]jg)}(h)optional TLV int array for dB informationh]h)optional TLV int array for dB information}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjdh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubjg)}(huh1jhjhhhj hMubj@)}(hZ(struct snd_kcontrol *kcontrol, void (*hook)(void *private_data, int), void *private_data)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj5sbc.snd_ctl_add_vmaster_hookasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(h%void (*hook)(void *private_data, int)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h(h]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhookh]hhook}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h)h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hvoidh]hvoid}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h,h]h,}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(hAdd a hook to a vmaster controlh]hAdd a hook to a vmaster control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjWhNhNubj)}(hXZ**Parameters** ``struct snd_kcontrol *kcontrol`` vmaster kctl element ``void (*hook)(void *private_data, int)`` the hook function ``void *private_data`` the private_data pointer to be saved **Description** Adds the given hook to the vmaster control element so that it's called at each time when the value is changed. **Return** Zero.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubj)}(hhh](j)}(h7``struct snd_kcontrol *kcontrol`` vmaster kctl element h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj.h]hstruct snd_kcontrol *kcontrol}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj(ubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhj%ubj)}(h<``void (*hook)(void *private_data, int)`` the hook function h](j)}(h)``void (*hook)(void *private_data, int)``h]j)}(hjgh]h%void (*hook)(void *private_data, int)}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjaubj)}(hhh]jg)}(hthe hook functionh]hthe hook function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhj%ubj)}(h<``void *private_data`` the private_data pointer to be saved h](j)}(h``void *private_data``h]j)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h$the private_data pointer to be savedh]h$the private_data pointer to be saved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubjg)}(hnAdds the given hook to the vmaster control element so that it's called at each time when the value is changed.h]hpAdds the given hook to the vmaster control element so that it’s called at each time when the value is changed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_sync_vmaster (C function)c.snd_ctl_sync_vmasterhNtauh1hhjWhhhNhNubh)}(hhh](h)}(hIvoid snd_ctl_sync_vmaster (struct snd_kcontrol *kcontrol, bool hook_only)h]h)}(hHvoid snd_ctl_sync_vmaster(struct snd_kcontrol *kcontrol, bool hook_only)h](h)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjChhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjUhMubj)}(hsnd_ctl_sync_vmasterh]j%)}(hsnd_ctl_sync_vmasterh]hsnd_ctl_sync_vmaster}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjUhMubj@)}(h/(struct snd_kcontrol *kcontrol, bool hook_only)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsbc.snd_ctl_sync_vmasterasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hbool hook_onlyh](h)}(hjԜh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h hook_onlyh]h hook_only}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjUhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjUhMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhMhj<hhubjb)}(hhh]jg)}(h#Sync the vmaster followers and hookh]h#Sync the vmaster followers and hook}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj8hhubah}(h]h ]h"]h$]h&]uh1jahj<hhhjUhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSjjSjjjuh1hhhhjWhNhNubj)}(hX;**Parameters** ``struct snd_kcontrol *kcontrol`` vmaster kctl element ``bool hook_only`` sync only the hook **Description** Forcibly call the put callback of each follower and call the hook function to synchronize with the current value of the given vmaster element. NOP when NULL is passed to **kcontrol**.h](jg)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjWubj)}(hhh](j)}(h7``struct snd_kcontrol *kcontrol`` vmaster kctl element h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj|h]hstruct snd_kcontrol *kcontrol}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjvubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhMhjsubj)}(h&``bool hook_only`` sync only the hook h](j)}(h``bool hook_only``h]j)}(hjh]hbool hook_only}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(hsync only the hookh]hsync only the hook}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjsubeh}(h]h ]h"]h$]h&]uh1jhjWubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjWubjg)}(hForcibly call the put callback of each follower and call the hook function to synchronize with the current value of the given vmaster element. NOP when NULL is passed to **kcontrol**.h](hForcibly call the put callback of each follower and call the hook function to synchronize with the current value of the given vmaster element. NOP when NULL is passed to }(hjhhhNhNubj)}(h **kcontrol**h]hkcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_apply_vmaster_followers (C function)!c.snd_ctl_apply_vmaster_followershNtauh1hhjWhhhNhNubh)}(hhh](h)}(hint snd_ctl_apply_vmaster_followers (struct snd_kcontrol *kctl, int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg), void *arg)h]h)}(hint snd_ctl_apply_vmaster_followers(struct snd_kcontrol *kctl, int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg), void *arg)h](h)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjChhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjUhMubj)}(hsnd_ctl_apply_vmaster_followersh]j%)}(hsnd_ctl_apply_vmaster_followersh]hsnd_ctl_apply_vmaster_followers}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjUhMubj@)}(h}(struct snd_kcontrol *kctl, int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg), void *arg)h](jF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsb!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfunch]hfunc}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h vfollowerh]h vfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjZh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjZh]h,}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hvoidh]hvoid}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(h void *argh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjUhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjUhMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhMhj<hhubjb)}(hhh]jg)}(h'Apply function to each vmaster followerh]h'Apply function to each vmaster follower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj<hhhjUhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjWhNhNubj)}(hXu**Parameters** ``struct snd_kcontrol *kctl`` vmaster kctl element ``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)`` function to apply ``void *arg`` optional function argument **Description** Apply the function **func** to each follower kctl of the given vmaster kctl. **Return** 0 if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj)}(hhh](j)}(h3``struct snd_kcontrol *kctl`` vmaster kctl element h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hj7h]hstruct snd_kcontrol *kctl}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hj1ubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhM hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM hj.ubj)}(hl``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)`` function to apply h](j)}(hY``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)``h]j)}(hjph]hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjjubj)}(hhh]jg)}(hfunction to applyh]hfunction to apply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj.ubj)}(h)``void *arg`` optional function argument h](j)}(h ``void *arg``h]j)}(hjh]h void *arg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj)}(hhh]jg)}(hoptional function argumenth]hoptional function argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj.ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubjg)}(hLApply the function **func** to each follower kctl of the given vmaster kctl.h](hApply the function }(hjhhhNhNubj)}(h**func**h]hfunc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh1 to each follower kctl of the given vmaster kctl.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubjg)}(h)0 if successful, or a negative error codeh]h)0 if successful, or a negative error code}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_find_id_mixer (C function)c.snd_ctl_find_id_mixerhNtauh1hhjWhhhNhNubh)}(hhh](h)}(hUstruct snd_kcontrol * snd_ctl_find_id_mixer (struct snd_card *card, const char *name)h]h)}(hSstruct snd_kcontrol *snd_ctl_find_id_mixer(struct snd_card *card, const char *name)h](jL)}(hjOh]hstruct}(hjbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjohKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_find_id_mixersbc.snd_ctl_find_id_mixerasbuh1hhj^hhhjohKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjohKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhjohKubj)}(hsnd_ctl_find_id_mixerh]j%)}(hjh]hsnd_ctl_find_id_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhjohKubj@)}(h)(struct snd_card *card, const char *name)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_find_id_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hcharh]hchar}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj^hhhjohKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjohKubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohKhjWhhubjb)}(hhh]jg)}(h4find the control instance with the given name stringh]h4find the control instance with the given name string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahjWhhhjohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjWhNhNubj)}(hX_**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the name string **Description** Finds the control instance with the given name and **SNDRV_CTL_ELEM_IFACE_MIXER**. Other fields are set to zero. This is merely a wrapper to snd_ctl_find_id(). **Return** The pointer of the instance if found, or ``NULL`` if not.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h%``const char *name`` the name string h](j)}(h``const char *name``h]j)}(hj4h]hconst char *name}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj.ubj)}(hhh]jg)}(hthe name stringh]hthe name string}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjoh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(hpFinds the control instance with the given name and **SNDRV_CTL_ELEM_IFACE_MIXER**. Other fields are set to zero.h](h3Finds the control instance with the given name and }(hjhhhNhNubj)}(h**SNDRV_CTL_ELEM_IFACE_MIXER**h]hSNDRV_CTL_ELEM_IFACE_MIXER}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. Other fields are set to zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h.This is merely a wrapper to snd_ctl_find_id().h]h.This is merely a wrapper to snd_ctl_find_id().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_add_follower (C function)c.snd_ctl_add_followerhNtauh1hhjWhhhNhNubh)}(hhh](h)}(hUint snd_ctl_add_follower (struct snd_kcontrol *master, struct snd_kcontrol *follower)h]h)}(hTint snd_ctl_add_follower(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_ctl_add_followerh]j%)}(hsnd_ctl_add_followerh]hsnd_ctl_add_follower}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.snd_ctl_add_followerasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(hstruct snd_kcontrol *followerh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_add_followerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj;hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhjWhNhNubj)}(hX|**Parameters** ``struct snd_kcontrol *master`` vmaster element ``struct snd_kcontrol *follower`` follower element to add **Description** Add a virtual follower control to the given master element created via snd_ctl_create_virtual_master() beforehand. All followers must be the same type (returning the same information via info callback). The function doesn't check it, so it's your responsibility. Also, some additional limitations: at most two channels, logarithmic volume control (dB level) thus no linear volume, master can only attenuate the volume without gain **Return** Zero if successful or a negative error code.h](jg)}(h**Parameters**h]j)}(hj`h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hjh]hstruct snd_kcontrol *master}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjyubj)}(hhh]jg)}(hvmaster elementh]hvmaster element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hjh]hstruct snd_kcontrol *follower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubeh}(h]h ]h"]h$]h&]uh1jhjZubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubjg)}(hrAdd a virtual follower control to the given master element created via snd_ctl_create_virtual_master() beforehand.h]hrAdd a virtual follower control to the given master element created via snd_ctl_create_virtual_master() beforehand.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubjg)}(hAll followers must be the same type (returning the same information via info callback). The function doesn't check it, so it's your responsibility.h]hAll followers must be the same type (returning the same information via info callback). The function doesn’t check it, so it’s your responsibility.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubjg)}(hAlso, some additional limitations: at most two channels, logarithmic volume control (dB level) thus no linear volume, master can only attenuate the volume without gainh]hAlso, some additional limitations: at most two channels, logarithmic volume control (dB level) thus no linear volume, master can only attenuate the volume without gain}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubjg)}(h **Return**h]j)}(hj8h]hReturn}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubjg)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_add_follower_uncached (C function)c.snd_ctl_add_follower_uncachedhNtauh1hhjWhhhNhNubh)}(hhh](h)}(h^int snd_ctl_add_follower_uncached (struct snd_kcontrol *master, struct snd_kcontrol *follower)h]h)}(h]int snd_ctl_add_follower_uncached(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](h)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyhhhjhMubj)}(hsnd_ctl_add_follower_uncachedh]j%)}(hsnd_ctl_add_follower_uncachedh]hsnd_ctl_add_follower_uncached}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjyhhhjhMubj@)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_follower_uncachedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *followerh](jL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jc.snd_ctl_add_follower_uncachedasbuh1hhj(ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjyhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjhMubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjrhhubjb)}(hhh]jg)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjWhNhNubj)}(hXp**Parameters** ``struct snd_kcontrol *master`` vmaster element ``struct snd_kcontrol *follower`` follower element to add **Description** Add a virtual follower control to the given master. Unlike snd_ctl_add_follower(), the element added via this function is supposed to have volatile values, and get callback is called at each time queried from the master. When the control peeks the hardware values directly and the value can be changed by other means than the put callback of the element, this function should be used to keep the value always up-to-date. **Return** Zero if successful or a negative error code.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hjh]hstruct snd_kcontrol *master}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjubj)}(hhh]jg)}(hvmaster elementh]hvmaster element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hj'h]hstruct snd_kcontrol *follower}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hj!ubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj<hM hj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjbh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(hAdd a virtual follower control to the given master. Unlike snd_ctl_add_follower(), the element added via this function is supposed to have volatile values, and get callback is called at each time queried from the master.h]hAdd a virtual follower control to the given master. Unlike snd_ctl_add_follower(), the element added via this function is supposed to have volatile values, and get callback is called at each time queried from the master.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(hWhen the control peeks the hardware values directly and the value can be changed by other means than the put callback of the element, this function should be used to keep the value always up-to-date.h]hWhen the control peeks the hardware values directly and the value can be changed by other means than the put callback of the element, this function should be used to keep the value always up-to-date.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjWhhhNhNubeh}(h]virtual-master-control-apiah ]h"]virtual master control apiah$]h&]uh1hhjrhhhhhK>ubeh}(h]control-mixer-apiah ]h"]control/mixer apiah$]h&]uh1hhhhhhhhK2ubh)}(hhh](h)}(hMIDI APIh]hMIDI API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKCubh)}(hhh](h)}(h Raw MIDI APIh]h Raw MIDI API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKFubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_receive (C function)c.snd_rawmidi_receivehNtauh1hhjhhhNhNubh)}(hhh](h)}(hiint snd_rawmidi_receive (struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h]h)}(hhint snd_rawmidi_receive(struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMwubj)}(hsnd_rawmidi_receiveh]j%)}(hsnd_rawmidi_receiveh]hsnd_rawmidi_receive}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMwubj@)}(hQ(struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j)}jj2sbc.snd_rawmidi_receiveasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hconst unsigned char *bufferh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbufferh]hbuffer}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(h int counth](h)}(hinth]hint}(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3 ubj)}(h h]h }(hjE hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3 ubj%)}(hcounth]hcount}(hjS hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3 ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMwubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMwubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMwhjhhubjb)}(hhh]jg)}(h&receive the input data from the deviceh]h&receive the input data from the device}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnhjz hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hX4**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``const unsigned char *buffer`` the buffer pointer ``int count`` the data size to read **Description** Reads the data from the internal buffer. **Return** The size of read data, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhj ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hj h]h'struct snd_rawmidi_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMohj ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMohj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMohj ubj)}(h3``const unsigned char *buffer`` the buffer pointer h](j)}(h``const unsigned char *buffer``h]j)}(hj h]hconst unsigned char *buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMphj ubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMphj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMphj ubj)}(h$``int count`` the data size to read h](j)}(h ``int count``h]j)}(hj0 h]h int count}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMqhj* ubj)}(hhh]jg)}(hthe data size to readh]hthe data size to read}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE hMqhjF ubah}(h]h ]h"]h$]h&]uh1jhj* ubeh}(h]h ]h"]h$]h&]uh1jhjE hMqhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjk h]h Description}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshj ubjg)}(h(Reads the data from the internal buffer.h]h(Reads the data from the internal buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshj ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMuhj ubjg)}(h;The size of read data, or a negative error code on failure.h]h;The size of read data, or a negative error code on failure.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMuhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_rawmidi_transmit_empty (C function)c.snd_rawmidi_transmit_emptyhNtauh1hhjhhhNhNubh)}(hhh](h)}(hHint snd_rawmidi_transmit_empty (struct snd_rawmidi_substream *substream)h]h)}(hGint snd_rawmidi_transmit_empty(struct snd_rawmidi_substream *substream)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM3ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM3ubj)}(hsnd_rawmidi_transmit_emptyh]j%)}(hsnd_rawmidi_transmit_emptyh]hsnd_rawmidi_transmit_empty}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hM3ubj@)}(h)(struct snd_rawmidi_substream *substream)h]jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj! hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj2 hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4 modnameN classnameNjj)}j]j)}jj sbc.snd_rawmidi_transmit_emptyasbuh1hhj ubj)}(h h]h }(hjR hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hjm hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hM3ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hM3ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM3hj hhubjb)}(hhh]jg)}(h(check whether the output buffer is emptyh]h(check whether the output buffer is empty}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM.hj hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hM3ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream **Return** 1 if the internal output buffer is empty, 0 if not.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM2hj ubj)}(hhh]j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hj h]h'struct snd_rawmidi_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM/hj ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM/hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM/hj ubah}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hj ubjg)}(h31 if the internal output buffer is empty, 0 if not.h]h31 if the internal output buffer is empty, 0 if not.}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_rawmidi_transmit_peek (C function)c.snd_rawmidi_transmit_peekhNtauh1hhjhhhNhNubh)}(hhh](h)}(hiint snd_rawmidi_transmit_peek (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]h)}(hhint snd_rawmidi_transmit_peek(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](h)}(hinth]hint}(hjX hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjT hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj)}(h h]h }(hjg hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT hhhjf hMubj)}(hsnd_rawmidi_transmit_peekh]j%)}(hsnd_rawmidi_transmit_peekh]hsnd_rawmidi_transmit_peek}(hjy hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjT hhhjf hMubj@)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj{ sbc.snd_rawmidi_transmit_peekasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned char *bufferh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hcharh]hchar}(hj# hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj1 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj? hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hbufferh]hbuffer}(hjL hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h int counth](h)}(hinth]hint}(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhja ubj)}(h h]h }(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hja ubj%)}(hcounth]hcount}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjT hhhjf hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjP hhhjf hMubah}(h]jK ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjf hMhjM hhubjb)}(hhh]jg)}(h"copy data from the internal bufferh]h"copy data from the internal buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMxhj hhubah}(h]h ]h"]h$]h&]uh1jahjM hhhjf hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``unsigned char *buffer`` the buffer pointer ``int count`` data size to transfer **Description** Copies data from the internal output buffer to the given buffer. Call this in the interrupt handler when the midi output is ready, and call snd_rawmidi_transmit_ack() after the transmission is finished. **Return** The size of copied data, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM|hj ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hj h]h'struct snd_rawmidi_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMyhj ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjhMyhj ubj)}(h-``unsigned char *buffer`` the buffer pointer h](j)}(h``unsigned char *buffer``h]j)}(hj%h]hunsigned char *buffer}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMzhjubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hMzhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hMzhj ubj)}(h$``int count`` data size to transfer h](j)}(h ``int count``h]j)}(hj^h]h int count}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM{hjXubj)}(hhh]jg)}(hdata size to transferh]hdata size to transfer}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM{hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshM{hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM}hj ubjg)}(h@Copies data from the internal output buffer to the given buffer.h]h@Copies data from the internal output buffer to the given buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM}hj ubjg)}(hCall this in the interrupt handler when the midi output is ready, and call snd_rawmidi_transmit_ack() after the transmission is finished.h]hCall this in the interrupt handler when the midi output is ready, and call snd_rawmidi_transmit_ack() after the transmission is finished.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubjg)}(h=The size of copied data, or a negative error code on failure.h]h=The size of copied data, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_rawmidi_transmit_ack (C function)c.snd_rawmidi_transmit_ackhNtauh1hhjhhhNhNubh)}(hhh](h)}(hQint snd_rawmidi_transmit_ack (struct snd_rawmidi_substream *substream, int count)h]h)}(hPint snd_rawmidi_transmit_ack(struct snd_rawmidi_substream *substream, int count)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hMubj)}(hsnd_rawmidi_transmit_ackh]j%)}(hsnd_rawmidi_transmit_ackh]hsnd_rawmidi_transmit_ack}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj"hMubj@)}(h4(struct snd_rawmidi_substream *substream, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.snd_rawmidi_transmit_ackasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(h int counth](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj"hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj"hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hMhj hhubjb)}(hhh]jg)}(hacknowledge the transmissionh]hacknowledge the transmission}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhjhNhNubj)}(hXt**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``int count`` the transferred count **Description** Advances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished. **Return** The advanced size if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj%ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjJh]h'struct snd_rawmidi_substream *substream}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjDubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hMhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjAubj)}(h$``int count`` the transferred count h](j)}(h ``int count``h]j)}(hjh]h int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj}ubj)}(hhh]jg)}(hthe transferred counth]hthe transferred count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjAubeh}(h]h ]h"]h$]h&]uh1jhj%ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj%ubjg)}(hAdvances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished.h]hAdvances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj%ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj%ubjg)}(hEThe advanced size if successful, or a negative error code on failure.h]hEThe advanced size if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_rawmidi_transmit (C function)c.snd_rawmidi_transmithNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_rawmidi_transmit (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]h)}(hcint snd_rawmidi_transmit(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj8hMubj)}(hsnd_rawmidi_transmith]j%)}(hsnd_rawmidi_transmith]hsnd_rawmidi_transmit}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj8hMubj@)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.snd_rawmidi_transmitasbuh1hhjcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(hunsigned char *bufferh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(h int counth](h)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj%)}(hcounth]hcount}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&hhhj8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"hhhj8hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hMhjhhubjb)}(hhh]jg)}(h"copy from the buffer to the deviceh]h"copy from the buffer to the device}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjzhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXU**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``unsigned char *buffer`` the buffer pointer ``int count`` the data size to transfer **Description** Copies data from the buffer to the device and advances the pointer. **Return** The copied size if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h-``unsigned char *buffer`` the buffer pointer h](j)}(h``unsigned char *buffer``h]j)}(hjh]hunsigned char *buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h(``int count`` the data size to transfer h](j)}(h ``int count``h]j)}(hj0h]h int count}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj*ubj)}(hhh]jg)}(hthe data size to transferh]hthe data size to transfer}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubjg)}(hCCopies data from the buffer to the device and advances the pointer.h]hCCopies data from the buffer to the device and advances the pointer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubjg)}(hCThe copied size if successful, or a negative error code on failure.h]hCThe copied size if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_proceed (C function)c.snd_rawmidi_proceedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hAint snd_rawmidi_proceed (struct snd_rawmidi_substream *substream)h]h)}(h@int snd_rawmidi_proceed(struct snd_rawmidi_substream *substream)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_rawmidi_proceedh]j%)}(hsnd_rawmidi_proceedh]hsnd_rawmidi_proceed}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h)(struct snd_rawmidi_substream *substream)h]jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_proceedasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h)Discard the all pending bytes and proceedh]h)Discard the all pending bytes and proceed}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hz**Parameters** ``struct snd_rawmidi_substream *substream`` rawmidi substream **Return** the number of discarded bytesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]j)}(h>``struct snd_rawmidi_substream *substream`` rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]jg)}(hrawmidi substreamh]hrawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubjg)}(hthe number of discarded bytesh]hthe number of discarded bytes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_rawmidi_new (C function)c.snd_rawmidi_newhNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_rawmidi_new (struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h]h)}(hint snd_rawmidi_new(struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjThhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM]ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjThhhjfhM]ubj)}(hsnd_rawmidi_newh]j%)}(hsnd_rawmidi_newh]hsnd_rawmidi_new}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjThhhjfhM]ubj@)}(ho(struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sbc.snd_rawmidi_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hchar *idh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int deviceh](h)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hdeviceh]hdevice}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint output_counth](h)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj%)}(h output_counth]h output_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint input_counth](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h input_counth]h input_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_rawmidi **rrawmidih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_rawmidi_newasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrrawmidih]hrrawmidi}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjThhhjfhM]ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjfhM]ubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhM]hjMhhubjb)}(hhh]jg)}(hcreate a rawmidi instanceh]hcreate a rawmidi instance}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPhjshhubah}(h]h ]h"]h$]h&]uh1jahjMhhhjfhM]ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``char *id`` the id string ``int device`` the device index ``int output_count`` the number of output streams ``int input_count`` the number of input streams ``struct snd_rawmidi **rrawmidi`` the pointer to store the new rawmidi instance **Description** Creates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMThjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMQhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMQhjubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hjh]hchar *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMRhjubj)}(hhh]jg)}(h the id stringh]h the id string}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMRhjubj)}(h ``int device`` the device index h](j)}(h``int device``h]j)}(hj)h]h int device}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMShj#ubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hMShj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hMShjubj)}(h2``int output_count`` the number of output streams h](j)}(h``int output_count``h]j)}(hjbh]hint output_count}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMThj\ubj)}(hhh]jg)}(hthe number of output streamsh]hthe number of output streams}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMThjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMThjubj)}(h0``int input_count`` the number of input streams h](j)}(h``int input_count``h]j)}(hjh]hint input_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMUhjubj)}(hhh]jg)}(hthe number of input streamsh]hthe number of input streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMUhjubj)}(hP``struct snd_rawmidi **rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h!``struct snd_rawmidi **rrawmidi``h]j)}(hjh]hstruct snd_rawmidi **rrawmidi}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMVhjubj)}(hhh]jg)}(h-the pointer to store the new rawmidi instanceh]h-the pointer to store the new rawmidi instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMVhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMXhjubjg)}(hcCreates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance.h]hcCreates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMXhjubjg)}(h **Return**h]j)}(hj6h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM[hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM[hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_set_ops (C function)c.snd_rawmidi_set_opshNtauh1hhjhhhNhNubh)}(hhh](h)}(hcvoid snd_rawmidi_set_ops (struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h]h)}(hbvoid snd_rawmidi_set_ops(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](h)}(hvoidh]hvoid}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjwhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM-ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwhhhjhM-ubj)}(hsnd_rawmidi_set_opsh]j%)}(hsnd_rawmidi_set_opsh]hsnd_rawmidi_set_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjwhhhjhM-ubj@)}(hJ(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](jF)}(hstruct snd_rawmidi *rmidih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_set_opsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrmidih]hrmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj%)}(hstreamh]hstream}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h!const struct snd_rawmidi_ops *opsh](jL)}(hj\h]hconst}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hsnd_rawmidi_opsh]hsnd_rawmidi_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_rawmidi_set_opsasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hopsh]hops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjwhhhjhM-ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjshhhjhM-ubah}(h]jnah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM-hjphhubjb)}(hhh]jg)}(hset the rawmidi operatorsh]hset the rawmidi operators}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM&hjhhubah}(h]h ]h"]h$]h&]uh1jahjphhhjhM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_rawmidi *rmidi`` the rawmidi instance ``int stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX ``const struct snd_rawmidi_ops *ops`` the operator table **Description** Sets the rawmidi operators for the given stream direction.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM*hjubj)}(hhh](j)}(h3``struct snd_rawmidi *rmidi`` the rawmidi instance h](j)}(h``struct snd_rawmidi *rmidi``h]j)}(hj<h]hstruct snd_rawmidi *rmidi}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM'hj6ubj)}(hhh]jg)}(hthe rawmidi instanceh]hthe rawmidi instance}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhM'hjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhM'hj3ubj)}(h>``int stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX h](j)}(h``int stream``h]j)}(hjuh]h int stream}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM(hjoubj)}(hhh]jg)}(h.the stream direction, SNDRV_RAWMIDI_STREAM_XXXh]h.the stream direction, SNDRV_RAWMIDI_STREAM_XXX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhM(hj3ubj)}(h9``const struct snd_rawmidi_ops *ops`` the operator table h](j)}(h%``const struct snd_rawmidi_ops *ops``h]j)}(hjh]h!const struct snd_rawmidi_ops *ops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM)hjubj)}(hhh]jg)}(hthe operator tableh]hthe operator table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hj3ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM+hjubjg)}(h:Sets the rawmidi operators for the given stream direction.h]h:Sets the rawmidi operators for the given stream direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM+hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] raw-midi-apiah ]h"] raw midi apiah$]h&]uh1hhjhhhhhKFubh)}(hhh](h)}(hMPU401-UART APIh]hMPU401-UART API}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKJubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_mpu401_uart_interrupt (C function)c.snd_mpu401_uart_interrupthNtauh1hhjhhhNhNubh)}(hhh](h)}(h=irqreturn_t snd_mpu401_uart_interrupt (int irq, void *dev_id)h]h)}(huh1jhjChhhjkhKyubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *dev_idh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdev_idh]hdev_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjkhKyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjkhKyubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhKyhj<hhubjb)}(hhh]jg)}(h%generic MPU401-UART interrupt handlerh]h%generic MPU401-UART interrupt handler}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKqhjhhubah}(h]h ]h"]h$]h&]uh1jahj<hhhjkhKyubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhjhNhNubj)}(h**Parameters** ``int irq`` the irq number ``void *dev_id`` mpu401 instance **Description** Processes the interrupt for MPU401-UART i/o. **Return** ``IRQ_HANDLED`` if the interrupt was handled. ``IRQ_NONE`` otherwise.h](jg)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKuhj=ubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hjbh]hint irq}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKrhj\ubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhKrhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhKrhjYubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjh]h void *dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKshjubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKshjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKshjYubeh}(h]h ]h"]h$]h&]uh1jhj=ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKuhj=ubjg)}(h,Processes the interrupt for MPU401-UART i/o.h]h,Processes the interrupt for MPU401-UART i/o.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKuhj=ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKwhj=ubjg)}(hE``IRQ_HANDLED`` if the interrupt was handled. ``IRQ_NONE`` otherwise.h](j)}(h``IRQ_HANDLED``h]h IRQ_HANDLED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if the interrupt was handled. }(hjhhhNhNubj)}(h ``IRQ_NONE``h]hIRQ_NONE}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh otherwise.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKwhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_mpu401_uart_interrupt_tx (C function)c.snd_mpu401_uart_interrupt_txhNtauh1hhjhhhNhNubh)}(hhh](h)}(h@irqreturn_t snd_mpu401_uart_interrupt_tx (int irq, void *dev_id)h]h)}(h?irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id)h](h)}(hhh]j%)}(h irqreturn_th]h irqreturn_t}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j)}jsnd_mpu401_uart_interrupt_txsbc.snd_mpu401_uart_interrupt_txasbuh1hhj^hhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjhKubj)}(hsnd_mpu401_uart_interrupt_txh]j%)}(hjh]hsnd_mpu401_uart_interrupt_tx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhjhKubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *dev_idh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdev_idh]hdev_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj^hhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjhKubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjWhhubjb)}(hhh]jg)}(h(generic MPU401-UART transmit irq handlerh]h(generic MPU401-UART transmit irq handler}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhj9hhubah}(h]h ]h"]h$]h&]uh1jahjWhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjhNhNubj)}(h**Parameters** ``int irq`` the irq number ``void *dev_id`` mpu401 instance **Description** Processes the interrupt for MPU401-UART output. **Return** ``IRQ_HANDLED`` if the interrupt was handled. ``IRQ_NONE`` otherwise.h](jg)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjXubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hj}h]hint irq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjwubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhKhjtubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjh]h void *dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjtubeh}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjXubjg)}(h/Processes the interrupt for MPU401-UART output.h]h/Processes the interrupt for MPU401-UART output.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjXubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjXubjg)}(hE``IRQ_HANDLED`` if the interrupt was handled. ``IRQ_NONE`` otherwise.h](j)}(h``IRQ_HANDLED``h]h IRQ_HANDLED}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubh if the interrupt was handled. }(hj. hhhNhNubj)}(h ``IRQ_NONE``h]hIRQ_NONE}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubh otherwise.}(hj. hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_mpu401_uart_new (C function)c.snd_mpu401_uart_newhNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_mpu401_uart_new (struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi ** rrawmidi)h]h)}(hint snd_mpu401_uart_new(struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi **rrawmidi)h](h)}(hinth]hint}(hj} hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjy hhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjy hhhj hMubj)}(hsnd_mpu401_uart_newh]j%)}(hsnd_mpu401_uart_newh]hsnd_mpu401_uart_new}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjy hhhj hMubj@)}(h(struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi **rrawmidi)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_mpu401_uart_newasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hcardh]hcard}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h int deviceh](h)}(hinth]hint}(hj,!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(!ubj)}(h h]h }(hj:!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(!ubj%)}(hdeviceh]hdevice}(hjH!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned short hardwareh](h)}(hunsignedh]hunsigned}(hja!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]!ubj)}(h h]h }(hjo!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]!ubh)}(hshorth]hshort}(hj}!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]!ubj%)}(hhardwareh]hhardware}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned long porth](h)}(hunsignedh]hunsigned}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hlongh]hlong}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj%)}(hporth]hport}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned int info_flagsh](h)}(hunsignedh]hunsigned}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj-"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj%)}(h info_flagsh]h info_flags}(hj;"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hint irqh](h)}(hinth]hint}(hjT"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjP"ubj)}(h h]h }(hjb"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjP"ubj%)}(hirqh]hirq}(hjp"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjP"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hstruct snd_rawmidi **rrawmidih](jL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j c.snd_mpu401_uart_newasbuh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(hrrawmidih]hrrawmidi}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjy hhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhju hhhj hMubah}(h]jp ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjr hhubjb)}(hhh]jg)}(hcreate an MPU401-UART instanceh]hcreate an MPU401-UART instance}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj#hhubah}(h]h ]h"]h$]h&]uh1jahjr hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/#jj/#jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``int device`` the device index, zero-based ``unsigned short hardware`` the hardware type, MPU401_HW_XXXX ``unsigned long port`` the base address of MPU401 port ``unsigned int info_flags`` bitflags MPU401_INFO_XXX ``int irq`` the ISA irq number, -1 if not to be allocated ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance **Description** Creates a new MPU-401 instance. Note that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast). **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hj9#h]h Parameters}(hj;#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7#ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjX#h]hstruct snd_card *card}(hjZ#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV#ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjR#ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjq#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjm#hMhjn#ubah}(h]h ]h"]h$]h&]uh1jhjR#ubeh}(h]h ]h"]h$]h&]uh1jhjm#hMhjO#ubj)}(h,``int device`` the device index, zero-based h](j)}(h``int device``h]j)}(hj#h]h int device}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj#ubj)}(hhh]jg)}(hthe device index, zero-basedh]hthe device index, zero-based}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjO#ubj)}(h>``unsigned short hardware`` the hardware type, MPU401_HW_XXXX h](j)}(h``unsigned short hardware``h]j)}(hj#h]hunsigned short hardware}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj#ubj)}(hhh]jg)}(h!the hardware type, MPU401_HW_XXXXh]h!the hardware type, MPU401_HW_XXXX}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjO#ubj)}(h7``unsigned long port`` the base address of MPU401 port h](j)}(h``unsigned long port``h]j)}(hj$h]hunsigned long port}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj#ubj)}(hhh]jg)}(hthe base address of MPU401 porth]hthe base address of MPU401 port}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjO#ubj)}(h5``unsigned int info_flags`` bitflags MPU401_INFO_XXX h](j)}(h``unsigned int info_flags``h]j)}(hj<$h]hunsigned int info_flags}(hj>$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:$ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj6$ubj)}(hhh]jg)}(hbitflags MPU401_INFO_XXXh]hbitflags MPU401_INFO_XXX}(hjU$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQ$hMhjR$ubah}(h]h ]h"]h$]h&]uh1jhj6$ubeh}(h]h ]h"]h$]h&]uh1jhjQ$hMhjO#ubj)}(h:``int irq`` the ISA irq number, -1 if not to be allocated h](j)}(h ``int irq``h]j)}(hju$h]hint irq}(hjw$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs$ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjo$ubj)}(hhh]jg)}(h-the ISA irq number, -1 if not to be allocatedh]h-the ISA irq number, -1 if not to be allocated}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhjo$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjO#ubj)}(hQ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h"``struct snd_rawmidi ** rrawmidi``h]j)}(hj$h]hstruct snd_rawmidi ** rrawmidi}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj$ubj)}(hhh]jg)}(h-the pointer to store the new rawmidi instanceh]h-the pointer to store the new rawmidi instance}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjO#ubeh}(h]h ]h"]h$]h&]uh1jhj3#ubjg)}(h**Description**h]j)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubjg)}(hCreates a new MPU-401 instance.h]hCreates a new MPU-401 instance.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubjg)}(hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).h]hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubjg)}(h **Return**h]j)}(hj%h]hReturn}(hj!%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj5%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]mpu401-uart-apiah ]h"]mpu401-uart apiah$]h&]uh1hhjhhhhhKJubeh}(h]midi-apiah ]h"]midi apiah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h Proc Info APIh]h Proc Info API}(hj^%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[%hhhhhKNubh)}(hhh](h)}(hProc Info Interfaceh]hProc Info Interface}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjl%hhhhhKQubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_line (C function)c.snd_info_get_linehNtauh1hhjl%hhhNhNubh)}(hhh](h)}(hKint snd_info_get_line (struct snd_info_buffer *buffer, char *line, int len)h]h)}(hJint snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)h](h)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj%hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj%hMIubj)}(hsnd_info_get_lineh]j%)}(hsnd_info_get_lineh]hsnd_info_get_line}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj%hMIubj@)}(h5(struct snd_info_buffer *buffer, char *line, int len)h](jF)}(hstruct snd_info_buffer *bufferh](jL)}(hjOh]hstruct}(hj%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jj%sbc.snd_info_get_lineasbuh1hhj%ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(hbufferh]hbuffer}(hj,&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(h char *lineh](h)}(hcharh]hchar}(hjE&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjA&ubj)}(h h]h }(hjS&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjA&ubj)}(hjh]h*}(hja&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA&ubj%)}(hlineh]hline}(hjn&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hint lenh](h)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj%)}(hlenh]hlen}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj%hhhj%hMIubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj%hhhj%hMIubah}(h]j%ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%hMIhj%hhubjb)}(hhh]jg)}(h$read one line from the procfs bufferh]h$read one line from the procfs buffer}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@hj&hhubah}(h]h ]h"]h$]h&]uh1jahj%hhhj%hMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjl%hNhNubj)}(hX**Parameters** ``struct snd_info_buffer *buffer`` the procfs buffer ``char *line`` the buffer to store ``int len`` the max. buffer size **Description** Reads one line from the buffer and stores the string. **Return** Zero if successful, or 1 if error or EOF.h](jg)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj&ubj)}(hhh](j)}(h5``struct snd_info_buffer *buffer`` the procfs buffer h](j)}(h"``struct snd_info_buffer *buffer``h]j)}(hj'h]hstruct snd_info_buffer *buffer}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMAhj'ubj)}(hhh]jg)}(hthe procfs bufferh]hthe procfs buffer}(hj''hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#'hMAhj$'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj#'hMAhj'ubj)}(h#``char *line`` the buffer to store h](j)}(h``char *line``h]j)}(hjG'h]h char *line}(hjI'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhjA'ubj)}(hhh]jg)}(hthe buffer to storeh]hthe buffer to store}(hj`'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\'hMBhj]'ubah}(h]h ]h"]h$]h&]uh1jhjA'ubeh}(h]h ]h"]h$]h&]uh1jhj\'hMBhj'ubj)}(h!``int len`` the max. buffer size h](j)}(h ``int len``h]j)}(hj'h]hint len}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChjz'ubj)}(hhh]jg)}(hthe max. buffer sizeh]hthe max. buffer size}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hMChj'ubah}(h]h ]h"]h$]h&]uh1jhjz'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMChj'ubeh}(h]h ]h"]h$]h&]uh1jhj&ubjg)}(h**Description**h]j)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj&ubjg)}(h5Reads one line from the buffer and stores the string.h]h5Reads one line from the buffer and stores the string.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj&ubjg)}(h **Return**h]j)}(hj'h]hReturn}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhj&ubjg)}(h)Zero if successful, or 1 if error or EOF.h]h)Zero if successful, or 1 if error or EOF.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_str (C function)c.snd_info_get_strhNtauh1hhjl%hhhNhNubh)}(hhh](h)}(hDconst char * snd_info_get_str (char *dest, const char *src, int len)h]h)}(hBconst char *snd_info_get_str(char *dest, const char *src, int len)h](jL)}(hj\h]hconst}(hj'(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#(hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMoubj)}(h h]h }(hj5(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#(hhhj4(hMoubh)}(hcharh]hchar}(hjC(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#(hhhj4(hMoubj)}(h h]h }(hjQ(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#(hhhj4(hMoubj)}(hjh]h*}(hj_(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#(hhhj4(hMoubj)}(hsnd_info_get_strh]j%)}(hsnd_info_get_strh]hsnd_info_get_str}(hjp(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl(ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj#(hhhj4(hMoubj@)}(h&(char *dest, const char *src, int len)h](jF)}(h char *desth](h)}(hcharh]hchar}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hdesth]hdest}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubjF)}(hconst char *srch](jL)}(hj\h]hconst}(hj(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hcharh]hchar}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hsrch]hsrc}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubjF)}(hint lenh](h)}(hinth]hint}(hj+)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj')ubj)}(h h]h }(hj9)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj')ubj%)}(hlenh]hlen}(hjG)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj')ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj#(hhhj4(hMoubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(hhhj4(hMoubah}(h]j(ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4(hMohj(hhubjb)}(hhh]jg)}(hparse a string tokenh]hparse a string token}(hjq)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMdhjn)hhubah}(h]h ]h"]h$]h&]uh1jahj(hhhj4(hMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1hhhhjl%hNhNubj)}(hXX**Parameters** ``char *dest`` the buffer to store the string token ``const char *src`` the original string ``int len`` the max. length of token - 1 **Description** Parses the original string and copy a token to the given string buffer. **Return** The updated pointer of the original string so that it can be used for the next call.h](jg)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhj)ubj)}(hhh](j)}(h4``char *dest`` the buffer to store the string token h](j)}(h``char *dest``h]j)}(hj)h]h char *dest}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMehj)ubj)}(hhh]jg)}(h$the buffer to store the string tokenh]h$the buffer to store the string token}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hMehj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hMehj)ubj)}(h(``const char *src`` the original string h](j)}(h``const char *src``h]j)}(hj)h]hconst char *src}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMfhj)ubj)}(hhh]jg)}(hthe original stringh]hthe original string}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMfhj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj*hMfhj)ubj)}(h)``int len`` the max. length of token - 1 h](j)}(h ``int len``h]j)}(hj$*h]hint len}(hj&*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"*ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMghj*ubj)}(hhh]jg)}(hthe max. length of token - 1h]hthe max. length of token - 1}(hj=*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9*hMghj:*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj9*hMghj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hj_*h]h Description}(hja*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]*ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihj)ubjg)}(hGParses the original string and copy a token to the given string buffer.h]hGParses the original string and copy a token to the given string buffer.}(hju*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihj)ubjg)}(h **Return**h]j)}(hj*h]hReturn}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhj)ubjg)}(hTThe updated pointer of the original string so that it can be used for the next call.h]hTThe updated pointer of the original string so that it can be used for the next call.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_info_create_module_entry (C function)c.snd_info_create_module_entryhNtauh1hhjl%hhhNhNubh)}(hhh](h)}(h~struct snd_info_entry * snd_info_create_module_entry (struct module * module, const char *name, struct snd_info_entry *parent)h]h)}(h{struct snd_info_entry *snd_info_create_module_entry(struct module *module, const char *name, struct snd_info_entry *parent)h](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj*hMubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jsnd_info_create_module_entrysbc.snd_info_create_module_entryasbuh1hhj*hhhj*hMubj)}(h h]h }(hj +hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj*hMubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*hhhj*hMubj)}(hsnd_info_create_module_entryh]j%)}(hj+h]hsnd_info_create_module_entry}(hj*+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj*hMubj@)}(hH(struct module *module, const char *name, struct snd_info_entry *parent)h](jF)}(hstruct module *moduleh](jL)}(hjOh]hstruct}(hjE+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjA+ubj)}(h h]h }(hjR+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjA+ubh)}(hhh]j%)}(hmoduleh]hmodule}(hjc+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetje+modnameN classnameNjj)}j]j+c.snd_info_create_module_entryasbuh1hhjA+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjA+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA+ubj%)}(hmoduleh]hmodule}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=+ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hj+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hcharh]hchar}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(hnameh]hname}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=+ubjF)}(hstruct snd_info_entry *parenth](jL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj0,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2,modnameN classnameNjj)}j]j+c.snd_info_create_module_entryasbuh1hhj,ubj)}(h h]h }(hjN,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hj\,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hparenth]hparent}(hji,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=+ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj*hhhj*hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj*hhhj*hMubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hMhj*hhubjb)}(hhh]jg)}(h)create an info entry for the given moduleh]h)create an info entry for the given module}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,hhubah}(h]h ]h"]h$]h&]uh1jahj*hhhj*hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhjl%hNhNubj)}(hX4**Parameters** ``struct module * module`` the module pointer ``const char *name`` the file name ``struct snd_info_entry *parent`` the parent directory **Description** Creates a new info entry and assigns it to the given module. **Return** The pointer of the new instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,ubj)}(hhh](j)}(h.``struct module * module`` the module pointer h](j)}(h``struct module * module``h]j)}(hj,h]hstruct module * module}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,ubj)}(hhh]jg)}(hthe module pointerh]hthe module pointer}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMhj,ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj -h]hconst char *name}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj -ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj-ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj&-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"-hMhj#-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj"-hMhj,ubj)}(h7``struct snd_info_entry *parent`` the parent directory h](j)}(h!``struct snd_info_entry *parent``h]j)}(hjF-h]hstruct snd_info_entry *parent}(hjH-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD-ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj@-ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hj_-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[-hMhj\-ubah}(h]h ]h"]h$]h&]uh1jhj@-ubeh}(h]h ]h"]h$]h&]uh1jhj[-hMhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,ubjg)}(h**Description**h]j)}(hj-h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,ubjg)}(huh1jhj-hhhj .hMubj@)}(hH(struct snd_card *card, const char *name, struct snd_info_entry *parent)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjy.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhju.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hju.ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j:.c.snd_info_create_card_entryasbuh1hhju.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hju.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju.ubj%)}(hcardh]hcard}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjq.ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hcharh]hchar}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj /hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hnameh]hname}(hj-/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjq.ubjF)}(hstruct snd_info_entry *parenth](jL)}(hjOh]hstruct}(hjF/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjB/ubj)}(h h]h }(hjS/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB/ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hjd/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf/modnameN classnameNjj)}j]j:.c.snd_info_create_card_entryasbuh1hhjB/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB/ubj%)}(hparenth]hparent}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjq.ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj .hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-hhhj .hMubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj .hMhj-hhubjb)}(hhh]jg)}(h'create an info entry for the given cardh]h'create an info entry for the given card}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/hhubah}(h]h ]h"]h$]h&]uh1jahj-hhhj .hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhjl%hNhNubj)}(hX1**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the file name ``struct snd_info_entry * parent`` the parent directory **Description** Creates a new info entry and assigns it to the given card. **Return** The pointer of the new instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj0h]hstruct snd_card *card}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj0ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj!0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj/ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hjA0h]hconst char *name}(hjC0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj;0ubj)}(hhh]jg)}(h the file nameh]h the file name}(hjZ0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjV0hMhjW0ubah}(h]h ]h"]h$]h&]uh1jhj;0ubeh}(h]h ]h"]h$]h&]uh1jhjV0hMhj/ubj)}(h8``struct snd_info_entry * parent`` the parent directory h](j)}(h"``struct snd_info_entry * parent``h]j)}(hjz0h]hstruct snd_info_entry * parent}(hj|0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjt0ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjt0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubjg)}(h**Description**h]j)}(hj0h]h Description}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubjg)}(h:Creates a new info entry and assigns it to the given card.h]h:Creates a new info entry and assigns it to the given card.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubjg)}(h **Return**h]j)}(hj0h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubjg)}(h8The pointer of the new instance, or ``NULL`` on failure.h](h$The pointer of the new instance, or }(hj0hhhNhNubj)}(h``NULL``h]hNULL}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubh on failure.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_info_free_entry (C function)c.snd_info_free_entryhNtauh1hhjl%hhhNhNubh)}(hhh](h)}(h8void snd_info_free_entry (struct snd_info_entry * entry)h]h)}(h6void snd_info_free_entry(struct snd_info_entry *entry)h](h)}(hvoidh]hvoid}(hj31hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/1hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMubj)}(h h]h }(hjB1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/1hhhjA1hMubj)}(hsnd_info_free_entryh]j%)}(hsnd_info_free_entryh]hsnd_info_free_entry}(hjT1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjP1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/1hhhjA1hMubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](jL)}(hjOh]hstruct}(hjp1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjl1ubj)}(h h]h }(hj}1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjl1ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jjV1sbc.snd_info_free_entryasbuh1hhjl1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjl1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl1ubj%)}(hentryh]hentry}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjh1ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj/1hhhjA1hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj+1hhhjA1hMubah}(h]j&1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjA1hMhj(1hhubjb)}(hhh]jg)}(hrelease the info entryh]hrelease the info entry}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj1hhubah}(h]h ]h"]h$]h&]uh1jahj(1hhhjA1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj 2jj 2jjjuh1hhhhjl%hNhNubj)}(hm**Parameters** ``struct snd_info_entry * entry`` the info entry **Description** Releases the info entry.h](jg)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj2ubj)}(hhh]j)}(h1``struct snd_info_entry * entry`` the info entry h](j)}(h!``struct snd_info_entry * entry``h]j)}(hj42h]hstruct snd_info_entry * entry}(hj62hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj22ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj.2ubj)}(hhh]jg)}(hthe info entryh]hthe info entry}(hjM2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI2hMhjJ2ubah}(h]h ]h"]h$]h&]uh1jhj.2ubeh}(h]h ]h"]h$]h&]uh1jhjI2hMhj+2ubah}(h]h ]h"]h$]h&]uh1jhj2ubjg)}(h**Description**h]j)}(hjo2h]h Description}(hjq2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm2ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj2ubjg)}(hReleases the info entry.h]hReleases the info entry.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_register (C function)c.snd_info_registerhNtauh1hhjl%hhhNhNubh)}(hhh](h)}(h4int snd_info_register (struct snd_info_entry *entry)h]h)}(h3int snd_info_register(struct snd_info_entry *entry)h](h)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM,ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2hhhj2hM,ubj)}(hsnd_info_registerh]j%)}(hsnd_info_registerh]hsnd_info_register}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2hhhj2hM,ubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj2sbc.snd_info_registerasbuh1hhj2ubj)}(h h]h }(hj/3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hj=3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(hentryh]hentry}(hjJ3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj2hhhj2hM,ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhj2hM,ubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2hM,hj2hhubjb)}(hhh]jg)}(hregister the info entryh]hregister the info entry}(hjt3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$hjq3hhubah}(h]h ]h"]h$]h&]uh1jahj2hhhj2hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhjl%hNhNubj)}(h**Parameters** ``struct snd_info_entry *entry`` the info entry **Description** Registers the proc info entry. The all children entries are registered recursively. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj3h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM(hj3ubj)}(hhh]j)}(h0``struct snd_info_entry *entry`` the info entry h](j)}(h ``struct snd_info_entry *entry``h]j)}(hj3h]hstruct snd_info_entry *entry}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM%hj3ubj)}(hhh]jg)}(hthe info entryh]hthe info entry}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3hM%hj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hM%hj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubjg)}(h**Description**h]j)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM'hj3ubjg)}(hSRegisters the proc info entry. The all children entries are registered recursively.h]hSRegisters the proc info entry. The all children entries are registered recursively.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM'hj3ubjg)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM*hj3ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj-4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM*hj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_rw_proc_new (C function)c.snd_card_rw_proc_newhNtauh1hhjl%hhhNhNubh)}(hhh](h)}(hint snd_card_rw_proc_new (struct snd_card *card, const char *name, void *private_data, void (*read)(struct snd_info_entry *, struct snd_info_buffer *), void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer))h]h)}(hint snd_card_rw_proc_new(struct snd_card *card, const char *name, void *private_data, void (*read)(struct snd_info_entry*, struct snd_info_buffer*), void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer))h](h)}(hinth]hint}(hj\4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjX4hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMNubj)}(h h]h }(hjk4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjX4hhhjj4hMNubj)}(hsnd_card_rw_proc_newh]j%)}(hsnd_card_rw_proc_newh]hsnd_card_rw_proc_new}(hj}4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjy4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjX4hhhjj4hMNubj@)}(h(struct snd_card *card, const char *name, void *private_data, void (*read)(struct snd_info_entry*, struct snd_info_buffer*), void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer))h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jj4sbc.snd_card_rw_proc_newasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(hcardh]hcard}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hj 5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hcharh]hchar}(hj&5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hj45hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjB5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hnameh]hname}(hjO5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjh5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjd5ubj)}(h h]h }(hjv5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd5ubj%)}(h private_datah]h private_data}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(h=void (*read)(struct snd_info_entry*, struct snd_info_buffer*)h](h)}(hvoidh]hvoid}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h(}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hreadh]hread}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubj)}(hjh]h)}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h(}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubjL)}(hjOh]hstruct}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj&6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(6modnameN classnameNjj)}j]j4c.snd_card_rw_proc_newasbuh1hhj5ubj)}(hjh]h*}(hjD6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjZh]h,}(hjQ6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(h h]h }(hj^6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubjL)}(hjOh]hstruct}(hjl6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hjy6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j4c.snd_card_rw_proc_newasbuh1hhj5ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj)}(hjh]h)}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)h](h)}(hvoidh]hvoid}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h(}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hwriteh]hwrite}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubj)}(hjh]h)}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hjh]h(}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubjL)}(hjOh]hstruct}(hj+7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hj87hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hjI7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjK7modnameN classnameNjj)}j]j4c.snd_card_rw_proc_newasbuh1hhj6ubj)}(h h]h }(hjg7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hju7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hentryh]hentry}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubj)}(hjZh]h,}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubjL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j4c.snd_card_rw_proc_newasbuh1hhj6ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hbufferh]hbuffer}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubj)}(hjh]h)}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjX4hhhjj4hMNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjT4hhhjj4hMNubah}(h]jO4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjj4hMNhjQ4hhubjb)}(hhh]jg)}(h5Create a read/write text proc file entry for the cardh]h5Create a read/write text proc file entry for the card}(hj98hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhj68hhubah}(h]h ]h"]h$]h&]uh1jahjQ4hhhjj4hMNubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQ8jjQ8jjjuh1hhhhjl%hNhNubj)}(hX<**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the file name ``void *private_data`` the arbitrary private data ``void (*read)(struct snd_info_entry *, struct snd_info_buffer *)`` the read callback ``void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)`` the write callback, NULL for read-only **Description** This proc file entry will be registered via snd_card_register() call, and it will be removed automatically at the card removal, too. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj[8h]h Parameters}(hj]8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY8ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhjU8ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjz8h]hstruct snd_card *card}(hj|8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChjt8ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMChj8ubah}(h]h ]h"]h$]h&]uh1jhjt8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMChjq8ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj8h]hconst char *name}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj8ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMDhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMDhjq8ubj)}(h2``void *private_data`` the arbitrary private data h](j)}(h``void *private_data``h]j)}(hj8h]hvoid *private_data}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj8ubj)}(hhh]jg)}(hthe arbitrary private datah]hthe arbitrary private data}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMEhj9ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj9hMEhjq8ubj)}(hV``void (*read)(struct snd_info_entry *, struct snd_info_buffer *)`` the read callback h](j)}(hC``void (*read)(struct snd_info_entry *, struct snd_info_buffer *)``h]j)}(hj%9h]h?void (*read)(struct snd_info_entry *, struct snd_info_buffer *)}(hj'9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#9ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj9ubj)}(hhh]jg)}(hthe read callbackh]hthe read callback}(hj>9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:9hMFhj;9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj:9hMFhjq8ubj)}(hw``void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)`` the write callback, NULL for read-only h](j)}(hO``void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)``h]j)}(hj^9h]hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)}(hj`9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\9ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhjX9ubj)}(hhh]jg)}(h&the write callback, NULL for read-onlyh]h&the write callback, NULL for read-only}(hjw9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjs9hMGhjt9ubah}(h]h ]h"]h$]h&]uh1jhjX9ubeh}(h]h ]h"]h$]h&]uh1jhjs9hMGhjq8ubeh}(h]h ]h"]h$]h&]uh1jhjU8ubjg)}(h**Description**h]j)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhjU8ubjg)}(hThis proc file entry will be registered via snd_card_register() call, and it will be removed automatically at the card removal, too.h]hThis proc file entry will be registered via snd_card_register() call, and it will be removed automatically at the card removal, too.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhjU8ubjg)}(h **Return**h]j)}(hj9h]hReturn}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMLhjU8ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMLhjU8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjl%hhhNhNubeh}(h]proc-info-interfaceah ]h"]proc info interfaceah$]h&]uh1hhj[%hhhhhKQubeh}(h] proc-info-apiah ]h"] proc info apiah$]h&]uh1hhhhhhhhKNubh)}(hhh](h)}(hCompress Offloadh]hCompress Offload}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhKUubh)}(hhh](h)}(hCompress Offload APIh]hCompress Offload API}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj :hhhhhKXubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_stop_error (C function)c.snd_compr_stop_errorhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hQint snd_compr_stop_error (struct snd_compr_stream *stream, snd_pcm_state_t state)h]h)}(hPint snd_compr_stop_error(struct snd_compr_stream *stream, snd_pcm_state_t state)h](h)}(hinth]hint}(hj7:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3:hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMWubj)}(h h]h }(hjF:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3:hhhjE:hMWubj)}(hsnd_compr_stop_errorh]j%)}(hsnd_compr_stop_errorh]hsnd_compr_stop_error}(hjX:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjT:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3:hhhjE:hMWubj@)}(h8(struct snd_compr_stream *stream, snd_pcm_state_t state)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjt:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjp:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp:ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjZ:sbc.snd_compr_stop_errorasbuh1hhjp:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp:ubj%)}(hstreamh]hstream}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjp:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjl:ubjF)}(hsnd_pcm_state_t stateh](h)}(hhh]j%)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j:c.snd_compr_stop_errorasbuh1hhj:ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj%)}(hstateh]hstate}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjl:ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3:hhhjE:hMWubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/:hhhjE:hMWubah}(h]j*:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjE:hMWhj,:hhubjb)}(hhh]jg)}(h Report a fatal error on a streamh]h Report a fatal error on a stream}(hj?;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMMhj<;hhubah}(h]h ]h"]h$]h&]uh1jahj,:hhhjE:hMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjjW;jjW;jjjuh1hhhhj :hNhNubj)}(hX)**Parameters** ``struct snd_compr_stream *stream`` pointer to stream ``snd_pcm_state_t state`` state to transition the stream to **Description** Stop the stream and set its state. Should be called with compressed device lock held. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hja;h]h Parameters}(hjc;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_;ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj[;ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj;h]hstruct snd_compr_stream *stream}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~;ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMNhjz;ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hMNhj;ubah}(h]h ]h"]h$]h&]uh1jhjz;ubeh}(h]h ]h"]h$]h&]uh1jhj;hMNhjw;ubj)}(h<``snd_pcm_state_t state`` state to transition the stream to h](j)}(h``snd_pcm_state_t state``h]j)}(hj;h]hsnd_pcm_state_t state}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMOhj;ubj)}(hhh]jg)}(h!state to transition the stream toh]h!state to transition the stream to}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hMOhj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hMOhjw;ubeh}(h]h ]h"]h$]h&]uh1jhj[;ubjg)}(h**Description**h]j)}(hj;h]h Description}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj[;ubjg)}(h"Stop the stream and set its state.h]h"Stop the stream and set its state.}(hj <hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj[;ubjg)}(h2Should be called with compressed device lock held.h]h2Should be called with compressed device lock held.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMShj[;ubjg)}(h **Return**h]j)}(hj*<h]hReturn}(hj,<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(<ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMUhj[;ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj@<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMUhj[;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_compr_task_finished (C function)c.snd_compr_task_finishedhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hcvoid snd_compr_task_finished (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h]h)}(hbvoid snd_compr_task_finished(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](h)}(hvoidh]hvoid}(hjo<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjk<hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hj~<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjk<hhhj}<hMubj)}(hsnd_compr_task_finishedh]j%)}(hsnd_compr_task_finishedh]hsnd_compr_task_finished}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjk<hhhj}<hMubj@)}(hF(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jj<sbc.snd_compr_task_finishedasbuh1hhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hstreamh]hstream}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(h#struct snd_compr_task_runtime *taskh](jL)}(hjOh]hstruct}(hj=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hj+=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(hsnd_compr_task_runtimeh]hsnd_compr_task_runtime}(hj<=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>=modnameN classnameNjj)}j]j<c.snd_compr_task_finishedasbuh1hhj=ubj)}(h h]h }(hjZ=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hjh=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(htaskh]htask}(hju=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjk<hhhj}<hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjg<hhhj}<hMubah}(h]jb<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj}<hMhjd<hhubjb)}(hhh]jg)}(h!Notify that the task was finishedh]h!Notify that the task was finished}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jahjd<hhhj}<hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhj :hNhNubj)}(h**Parameters** ``struct snd_compr_stream *stream`` pointer to stream ``struct snd_compr_task_runtime *task`` runtime task structure **Description** Set the finished task state and notify waiters.h](jg)}(h**Parameters**h]j)}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj=h]hstruct snd_compr_stream *stream}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj=ubj)}(h?``struct snd_compr_task_runtime *task`` runtime task structure h](j)}(h'``struct snd_compr_task_runtime *task``h]j)}(hj>h]h#struct snd_compr_task_runtime *task}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj>ubj)}(hhh]jg)}(hruntime task structureh]hruntime task structure}(hj2>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.>hMhj/>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj.>hMhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=ubjg)}(h**Description**h]j)}(hjT>h]h Description}(hjV>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR>ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=ubjg)}(h/Set the finished task state and notify waiters.h]h/Set the finished task state and notify waiters.}(hjj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compress_new (C function)c.snd_compress_newhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hkint snd_compress_new (struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h]h)}(hjint snd_compress_new(struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h](h)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhj>hMubj)}(hsnd_compress_newh]j%)}(hsnd_compress_newh]hsnd_compress_new}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhj>hMubj@)}(hV(struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.snd_compress_newasbuh1hhj>ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj)}(hjh]h*}(hj"?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj%)}(hcardh]hcard}(hj/?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubjF)}(h int deviceh](h)}(hinth]hint}(hjH?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjD?ubj)}(h h]h }(hjV?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjD?ubj%)}(hdeviceh]hdevice}(hjd?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjD?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubjF)}(hint dirnh](h)}(hinth]hint}(hj}?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjy?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjy?ubj%)}(hdirnh]hdirn}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjy?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hcharh]hchar}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hidh]hid}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubjF)}(hstruct snd_compr *comprh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj @ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj @ubh)}(hhh]j%)}(h snd_comprh]h snd_compr}(hj-@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/@modnameN classnameNjj)}j]j?c.snd_compress_newasbuh1hhj @ubj)}(h h]h }(hjK@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj @ubj)}(hjh]h*}(hjY@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj @ubj%)}(hcomprh]hcompr}(hjf@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj @ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj>hhhj>hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhj>hMubah}(h]j>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>hMhj>hhubjb)}(hhh]jg)}(hcreate new compress deviceh]hcreate new compress device}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj@hhubah}(h]h ]h"]h$]h&]uh1jahj>hhhj>hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1hhhhj :hNhNubj)}(hX<**Parameters** ``struct snd_card *card`` sound card pointer ``int device`` device number ``int dirn`` device direction, should be of type enum snd_compr_direction ``const char *id`` ID string ``struct snd_compr *compr`` compress device pointer **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj@ubj)}(hhh](j)}(h-``struct snd_card *card`` sound card pointer h](j)}(h``struct snd_card *card``h]j)}(hj@h]hstruct snd_card *card}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj@ubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj@ubj)}(h``int device`` device number h](j)}(h``int device``h]j)}(hj Ah]h int device}(hj AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjAubj)}(hhh]jg)}(h device numberh]h device number}(hj#AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMhj Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhj@ubj)}(hJ``int dirn`` device direction, should be of type enum snd_compr_direction h](j)}(h ``int dirn``h]j)}(hjCAh]hint dirn}(hjEAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAAubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj=Aubj)}(hhh]jg)}(huh1jhj1BhhhjBBhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-BhhhjBBhKubah}(h]j(Bah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBBhKhj*Bhhubjb)}(hhh]jg)}(hcompressed bufferh]hcompressed buffer}(hjwBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjtBhhubah}(h]h ]h"]h$]h&]uh1jahj*BhhhjBBhKubeh}(h]h ](jstructeh"]h$]h&]jjjjBjjBjjjuh1hhhhj :hNhNubj)}(h**Definition**:: struct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; }; **Members** ``fragment_size`` size of buffer fragment in bytes ``fragments`` number of such fragmentsh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubh:}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBubj')}(hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };h]hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };}hjBsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBubjg)}(h **Members**h]j)}(hjBh]hMembers}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBubj)}(hhh](j)}(h3``fragment_size`` size of buffer fragment in bytes h](j)}(h``fragment_size``h]j)}(hjBh]h fragment_size}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBubj)}(hhh]jg)}(h size of buffer fragment in bytesh]h size of buffer fragment in bytes}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKhjBubj)}(h&``fragments`` number of such fragmentsh](j)}(h ``fragments``h]j)}(hjCh]h fragments}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjCubj)}(hhh]jg)}(hnumber of such fragmentsh]hnumber of such fragments}(hj6ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj3Cubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj2ChKhjBubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_params (C struct)c.snd_compr_paramshNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_paramsh]h)}(hstruct snd_compr_paramsh](jL)}(hjOh]hstruct}(hjwChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsChhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsChhhjChKubj)}(hsnd_compr_paramsh]j%)}(hjqCh]hsnd_compr_params}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjsChhhjChKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjoChhhjChKubah}(h]jjCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjChKhjlChhubjb)}(hhh]jg)}(hcompressed stream paramsh]hcompressed stream params}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjChhubah}(h]h ]h"]h$]h&]uh1jahjlChhhjChKubeh}(h]h ](jstructeh"]h$]h&]jjjjCjjCjjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_params { struct snd_compressed_buffer buffer; struct snd_codec codec; __u8 no_wake_mode; }; **Members** ``buffer`` buffer description ``codec`` codec parameters ``no_wake_mode`` dont wake on fragment elapsedh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh:}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK!hjCubj')}(hxstruct snd_compr_params { struct snd_compressed_buffer buffer; struct snd_codec codec; __u8 no_wake_mode; };h]hxstruct snd_compr_params { struct snd_compressed_buffer buffer; struct snd_codec codec; __u8 no_wake_mode; };}hjCsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK#hjCubjg)}(h **Members**h]j)}(hjDh]hMembers}(hj DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK)hjCubj)}(hhh](j)}(h``buffer`` buffer description h](j)}(h ``buffer``h]j)}(hj&Dh]hbuffer}(hj(DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Dubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj Dubj)}(hhh]jg)}(hbuffer descriptionh]hbuffer description}(hj?DhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;DhKhjuh1jhjDhhhjDhK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjDhK'ubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhK'hjDhhubjb)}(hhh]jg)}(htimestamp descriptorh]htimestamp descriptor}(hj4EhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK)hj1Ehhubah}(h]h ]h"]h$]h&]uh1jahjDhhhjDhK'ubeh}(h]h ](jstructeh"]h$]h&]jjjjLEjjLEjjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_tstamp { __u32 byte_offset; __u32 copied_total; __u32 pcm_frames; __u32 pcm_io_frames; __u32 sampling_rate; }; **Members** ``byte_offset`` Byte offset in ring buffer to DSP ``copied_total`` Total number of bytes copied from/to ring buffer to/by DSP ``pcm_frames`` Frames decoded or encoded by DSP. This field will evolve by large steps and should only be used to monitor encoding/decoding progress. It shall not be used for timing estimates. ``pcm_io_frames`` Frames rendered or received by DSP into a mixer or an audio output/input. This field should be used for A/V sync or time estimates. ``sampling_rate`` sampling rate of audioh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjXEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTEubh:}(hjTEhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK-hjPEubj')}(hstruct snd_compr_tstamp { __u32 byte_offset; __u32 copied_total; __u32 pcm_frames; __u32 pcm_io_frames; __u32 sampling_rate; };h]hstruct snd_compr_tstamp { __u32 byte_offset; __u32 copied_total; __u32 pcm_frames; __u32 pcm_io_frames; __u32 sampling_rate; };}hjqEsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK/hjPEubjg)}(h **Members**h]j)}(hjEh]hMembers}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK7hjPEubj)}(hhh](j)}(h2``byte_offset`` Byte offset in ring buffer to DSP h](j)}(h``byte_offset``h]j)}(hjEh]h byte_offset}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK+hjEubj)}(hhh]jg)}(h!Byte offset in ring buffer to DSPh]h!Byte offset in ring buffer to DSP}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhK+hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhK+hjEubj)}(hL``copied_total`` Total number of bytes copied from/to ring buffer to/by DSP h](j)}(h``copied_total``h]j)}(hjEh]h copied_total}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK,hjEubj)}(hhh]jg)}(h:Total number of bytes copied from/to ring buffer to/by DSPh]h:Total number of bytes copied from/to ring buffer to/by DSP}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhK,hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhK,hjEubj)}(h``pcm_frames`` Frames decoded or encoded by DSP. This field will evolve by large steps and should only be used to monitor encoding/decoding progress. It shall not be used for timing estimates. h](j)}(h``pcm_frames``h]j)}(hjFh]h pcm_frames}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK/hj Fubj)}(hhh]jg)}(hFrames decoded or encoded by DSP. This field will evolve by large steps and should only be used to monitor encoding/decoding progress. It shall not be used for timing estimates.h]hFrames decoded or encoded by DSP. This field will evolve by large steps and should only be used to monitor encoding/decoding progress. It shall not be used for timing estimates.}(hj,FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK-hj)Fubah}(h]h ]h"]h$]h&]uh1jhj Fubeh}(h]h ]h"]h$]h&]uh1jhj(FhK/hjEubj)}(h``pcm_io_frames`` Frames rendered or received by DSP into a mixer or an audio output/input. This field should be used for A/V sync or time estimates. h](j)}(h``pcm_io_frames``h]j)}(hjMFh]h pcm_io_frames}(hjOFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKFubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK1hjGFubj)}(hhh]jg)}(hFrames rendered or received by DSP into a mixer or an audio output/input. This field should be used for A/V sync or time estimates.h]hFrames rendered or received by DSP into a mixer or an audio output/input. This field should be used for A/V sync or time estimates.}(hjfFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK0hjcFubah}(h]h ]h"]h$]h&]uh1jhjGFubeh}(h]h ]h"]h$]h&]uh1jhjbFhK1hjEubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hjFh]h sampling_rate}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK1hjFubj)}(hhh]jg)}(hsampling rate of audioh]hsampling rate of audio}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK2hjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhK1hjEubeh}(h]h ]h"]h$]h&]uh1jhjPEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_avail (C struct)c.snd_compr_availhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_availh]h)}(hstruct snd_compr_availh](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK8ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhK8ubj)}(hsnd_compr_availh]j%)}(hjFh]hsnd_compr_avail}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhjFhK8ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhjFhK8ubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhK8hjFhhubjb)}(hhh]jg)}(havail descriptorh]havail descriptor}(hj#GhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKuh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKBhj?Gubjg)}(h **Members**h]j)}(hjqGh]hMembers}(hjsGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoGubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKGhj?Gubj)}(hhh](j)}(hG``avail`` Number of bytes available in ring buffer for writing/reading h](j)}(h ``avail``h]j)}(hjGh]havail}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK>hjGubj)}(hhh]jg)}(hhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhK>hjGubj)}(h ``tstamp`` timestamp informationh](j)}(h ``tstamp``h]j)}(hjGh]htstamp}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK>hjGubj)}(hhh]jg)}(htimestamp informationh]htimestamp information}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK?hjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhK>hjGubeh}(h]h ]h"]h$]h&]uh1jhj?Gubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_caps (C struct)c.snd_compr_capshNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_capsh]h)}(hstruct snd_compr_capsh](jL)}(hjOh]hstruct}(hj#HhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKEubj)}(h h]h }(hj1HhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhj0HhKEubj)}(hsnd_compr_capsh]j%)}(hjHh]hsnd_compr_caps}(hjCHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?Hubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhj0HhKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj0HhKEubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0HhKEhjHhhubjb)}(hhh]jg)}(hcaps descriptorh]hcaps descriptor}(hjeHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKLhjbHhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhj0HhKEubeh}(h]h ](jstructeh"]h$]h&]jjjj}Hjj}Hjjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; }; **Members** ``num_codecs`` number of codecs supported ``direction`` direction supported. Of type snd_compr_direction ``min_fragment_size`` minimum fragment supported by DSP ``max_fragment_size`` maximum fragment supported by DSP ``min_fragments`` min fragments supported by DSP ``max_fragments`` max fragments supported by DSP ``codecs`` pointer to array of codecs ``reserved`` reserved fieldh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh:}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhjHubj')}(hstruct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; };h]hstruct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; };}hjHsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhjHubjg)}(h **Members**h]j)}(hjHh]hMembers}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK]hjHubj)}(hhh](j)}(h*``num_codecs`` number of codecs supported h](j)}(h``num_codecs``h]j)}(hjHh]h num_codecs}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKThjHubj)}(hhh]jg)}(hnumber of codecs supportedh]hnumber of codecs supported}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKThjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhKThjHubj)}(h?``direction`` direction supported. Of type snd_compr_direction h](j)}(h ``direction``h]j)}(hj Ih]h direction}(hj IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Iubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKOhjIubj)}(hhh]jg)}(h0direction supported. Of type snd_compr_directionh]h0direction supported. Of type snd_compr_direction}(hj$IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj IhKOhj!Iubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhj IhKOhjHubj)}(h8``min_fragment_size`` minimum fragment supported by DSP h](j)}(h``min_fragment_size``h]j)}(hjDIh]hmin_fragment_size}(hjFIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhj>Iubj)}(hhh]jg)}(h!minimum fragment supported by DSPh]h!minimum fragment supported by DSP}(hj]IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYIhKPhjZIubah}(h]h ]h"]h$]h&]uh1jhj>Iubeh}(h]h ]h"]h$]h&]uh1jhjYIhKPhjHubj)}(h8``max_fragment_size`` maximum fragment supported by DSP h](j)}(h``max_fragment_size``h]j)}(hj}Ih]hmax_fragment_size}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Iubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKQhjwIubj)}(hhh]jg)}(h!maximum fragment supported by DSPh]h!maximum fragment supported by DSP}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKQhjIubah}(h]h ]h"]h$]h&]uh1jhjwIubeh}(h]h ]h"]h$]h&]uh1jhjIhKQhjHubj)}(h1``min_fragments`` min fragments supported by DSP h](j)}(h``min_fragments``h]j)}(hjIh]h min_fragments}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhjIubj)}(hhh]jg)}(hmin fragments supported by DSPh]hmin fragments supported by DSP}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKRhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKRhjHubj)}(h1``max_fragments`` max fragments supported by DSP h](j)}(h``max_fragments``h]j)}(hjIh]h max_fragments}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKShjIubj)}(hhh]jg)}(hmax fragments supported by DSPh]hmax fragments supported by DSP}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhKShjJubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjJhKShjHubj)}(h&``codecs`` pointer to array of codecs h](j)}(h ``codecs``h]j)}(hj(Jh]hcodecs}(hj*JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Jubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKNhj"Jubj)}(hhh]jg)}(hpointer to array of codecsh]hpointer to array of codecs}(hjAJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=JhKNhj>Jubah}(h]h ]h"]h$]h&]uh1jhj"Jubeh}(h]h ]h"]h$]h&]uh1jhj=JhKNhjHubj)}(h``reserved`` reserved fieldh](j)}(h ``reserved``h]j)}(hjaJh]hreserved}(hjcJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Jubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKThj[Jubj)}(hhh]jg)}(hreserved fieldh]hreserved field}(hjzJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKUhjwJubah}(h]h ]h"]h$]h&]uh1jhj[Jubeh}(h]h ]h"]h$]h&]uh1jhjvJhKThjHubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_codec_caps (C struct)c.snd_compr_codec_capshNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_codec_capsh]h)}(hstruct snd_compr_codec_capsh](jL)}(hjOh]hstruct}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK[ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJhhhjJhK[ubj)}(hsnd_compr_codec_capsh]j%)}(hjJh]hsnd_compr_codec_caps}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJhhhjJhK[ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhjJhK[ubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhK[hjJhhubjb)}(hhh]jg)}(hquery capability of codech]hquery capability of codec}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKbhjJhhubah}(h]h ]h"]h$]h&]uh1jahjJhhhjJhK[ubeh}(h]h ](jstructeh"]h$]h&]jjjjKjjKjjjuh1hhhhj :hNhNubj)}(hXS**Definition**:: struct snd_compr_codec_caps { __u32 codec; __u32 num_descriptors; struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; }; **Members** ``codec`` codec for which capability is queried ``num_descriptors`` number of codec descriptors ``descriptor`` array of codec capability descriptorh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj!KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh:}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKfhjKubj')}(hstruct snd_compr_codec_caps { __u32 codec; __u32 num_descriptors; struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; };h]hstruct snd_compr_codec_caps { __u32 codec; __u32 num_descriptors; struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; };}hj:Ksbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhhjKubjg)}(h **Members**h]j)}(hjKKh]hMembers}(hjMKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIKubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKnhjKubj)}(hhh](j)}(h0``codec`` codec for which capability is queried h](j)}(h ``codec``h]j)}(hjjKh]hcodec}(hjlKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhKubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKdhjdKubj)}(hhh]jg)}(h%codec for which capability is queriedh]h%codec for which capability is queried}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKdhjKubah}(h]h ]h"]h$]h&]uh1jhjdKubeh}(h]h ]h"]h$]h&]uh1jhjKhKdhjaKubj)}(h0``num_descriptors`` number of codec descriptors h](j)}(h``num_descriptors``h]j)}(hjKh]hnum_descriptors}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKehjKubj)}(hhh]jg)}(hnumber of codec descriptorsh]hnumber of codec descriptors}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKehjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKehjaKubj)}(h3``descriptor`` array of codec capability descriptorh](j)}(h``descriptor``h]j)}(hjKh]h descriptor}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKehjKubj)}(hhh]jg)}(h$array of codec capability descriptorh]h$array of codec capability descriptor}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKfhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKehjaKubeh}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsndrv_compress_encoder (C enum)c.sndrv_compress_encoderhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsndrv_compress_encoderh]h)}(henum sndrv_compress_encoderh](jL)}(hj'h]henum}(hj6LhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2Lhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKlubj)}(h h]h }(hjDLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2LhhhjCLhKlubj)}(hsndrv_compress_encoderh]j%)}(hj0Lh]hsndrv_compress_encoder}(hjVLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRLubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2LhhhjCLhKlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.LhhhjCLhKlubah}(h]j)Lah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjCLhKlhj+Lhhubjb)}(hhh]jg)}(hencoder metadata keyh]hencoder metadata key}(hjxLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKnhjuLhhubah}(h]h ]h"]h$]h&]uh1jahj+LhhhjCLhKlubeh}(h]h ](jenumeh"]h$]h&]jjjjLjjLjjjuh1hhhhj :hNhNubj)}(h**Constants** ``SNDRV_COMPRESS_ENCODER_PADDING`` no of samples appended by the encoder at the end of the track ``SNDRV_COMPRESS_ENCODER_DELAY`` no of samples inserted by the encoder at the beginning of the trackh](jg)}(h **Constants**h]j)}(hjLh]h Constants}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKrhjLubj)}(hhh](j)}(ha``SNDRV_COMPRESS_ENCODER_PADDING`` no of samples appended by the encoder at the end of the track h](j)}(h"``SNDRV_COMPRESS_ENCODER_PADDING``h]j)}(hjLh]hSNDRV_COMPRESS_ENCODER_PADDING}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKvhjLubj)}(hhh]jg)}(h=no of samples appended by the encoder at the end of the trackh]h=no of samples appended by the encoder at the end of the track}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKuhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKvhjLubj)}(hd``SNDRV_COMPRESS_ENCODER_DELAY`` no of samples inserted by the encoder at the beginning of the trackh](j)}(h ``SNDRV_COMPRESS_ENCODER_DELAY``h]j)}(hjLh]hSNDRV_COMPRESS_ENCODER_DELAY}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKyhjLubj)}(hhh]jg)}(hCno of samples inserted by the encoder at the beginning of the trackh]hCno of samples inserted by the encoder at the beginning of the track}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhKyhj Mubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjMhKyhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_metadata (C struct)c.snd_compr_metadatahNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_metadatah]h)}(hstruct snd_compr_metadatah](jL)}(hjOh]hstruct}(hjLMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHMhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjZMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHMhhhjYMhKubj)}(hsnd_compr_metadatah]j%)}(hjFMh]hsnd_compr_metadata}(hjlMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHMhhhjYMhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDMhhhjYMhKubah}(h]j?Mah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYMhKhjAMhhubjb)}(hhh]jg)}(hcompressed stream metadatah]hcompressed stream metadata}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKzhjMhhubah}(h]h ]h"]h$]h&]uh1jahjAMhhhjYMhKubeh}(h]h ](jstructeh"]h$]h&]jjjjMjjMjjjuh1hhhhj :hNhNubj)}(h**Definition**:: struct snd_compr_metadata { __u32 key; __u32 value[8]; }; **Members** ``key`` key id ``value`` key valueh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh:}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK~hjMubj')}(hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };h]hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };}hjMsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubjg)}(h **Members**h]j)}(hjMh]hMembers}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubj)}(hhh](j)}(h``key`` key id h](j)}(h``key``h]j)}(hjMh]hkey}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK|hjMubj)}(hhh]jg)}(hkey idh]hkey id}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhK|hjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjNhK|hjMubj)}(h``value`` key valueh](j)}(h ``value``h]j)}(hj4Nh]hvalue}(hj6NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Nubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK|hj.Nubj)}(hhh]jg)}(h key valueh]h key value}(hjMNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK}hjJNubah}(h]h ]h"]h$]h&]uh1jhj.Nubeh}(h]h ]h"]h$]h&]uh1jhjINhK|hjMubeh}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_task (C struct)c.snd_compr_taskhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_taskh]h)}(hstruct snd_compr_taskh](jL)}(hjOh]hstruct}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhjNhKubj)}(hsnd_compr_taskh]j%)}(hjNh]hsnd_compr_task}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhjNhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNhhhjNhKubah}(h]jNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNhKhjNhhubjb)}(hhh]jg)}(h)task primitive for non-realtime operationh]h)task primitive for non-realtime operation}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjNhKubeh}(h]h ](jstructeh"]h$]h&]jjjjNjjNjjjuh1hhhhj :hNhNubj)}(hXl**Definition**:: struct snd_compr_task { __u64 seqno; __u64 origin_seqno; int input_fd; int output_fd; __u64 input_size; __u32 flags; __u8 reserved[16]; }; **Members** ``seqno`` sequence number (task identifier) ``origin_seqno`` previous sequence number (task identifier) - for reuse ``input_fd`` data input file descriptor (dma-buf) ``output_fd`` data output file descriptor (dma-buf) ``input_size`` filled data in bytes (from caller, must not exceed fragment size) ``flags`` see SND_COMPRESS_TFLG_* defines ``reserved`` reserved for future extensionh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh:}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNubj')}(hstruct snd_compr_task { __u64 seqno; __u64 origin_seqno; int input_fd; int output_fd; __u64 input_size; __u32 flags; __u8 reserved[16]; };h]hstruct snd_compr_task { __u64 seqno; __u64 origin_seqno; int input_fd; int output_fd; __u64 input_size; __u32 flags; __u8 reserved[16]; };}hj Osbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNubjg)}(h **Members**h]j)}(hjOh]hMembers}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hj=Oh]hseqno}(hj?OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Oubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj7Oubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hjVOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjROhKhjSOubah}(h]h ]h"]h$]h&]uh1jhj7Oubeh}(h]h ]h"]h$]h&]uh1jhjROhKhj4Oubj)}(hH``origin_seqno`` previous sequence number (task identifier) - for reuse h](j)}(h``origin_seqno``h]j)}(hjvOh]h origin_seqno}(hjxOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtOubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjpOubj)}(hhh]jg)}(h6previous sequence number (task identifier) - for reuseh]h6previous sequence number (task identifier) - for reuse}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjpOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhj4Oubj)}(h2``input_fd`` data input file descriptor (dma-buf) h](j)}(h ``input_fd``h]j)}(hjOh]hinput_fd}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOubj)}(hhh]jg)}(h$data input file descriptor (dma-buf)h]h$data input file descriptor (dma-buf)}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhj4Oubj)}(h4``output_fd`` data output file descriptor (dma-buf) h](j)}(h ``output_fd``h]j)}(hjOh]h output_fd}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOubj)}(hhh]jg)}(h%data output file descriptor (dma-buf)h]h%data output file descriptor (dma-buf)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhj4Oubj)}(hQ``input_size`` filled data in bytes (from caller, must not exceed fragment size) h](j)}(h``input_size``h]j)}(hj!Ph]h input_size}(hj#PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(hAfilled data in bytes (from caller, must not exceed fragment size)h]hAfilled data in bytes (from caller, must not exceed fragment size)}(hj:PhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6PhKhj7Pubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj6PhKhj4Oubj)}(h*``flags`` see SND_COMPRESS_TFLG_* defines h](j)}(h ``flags``h]j)}(hjZPh]hflags}(hj\PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjTPubj)}(hhh]jg)}(hsee SND_COMPRESS_TFLG_* definesh]hsee SND_COMPRESS_TFLG_* defines}(hjsPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjoPhKhjpPubah}(h]h ]h"]h$]h&]uh1jhjTPubeh}(h]h ]h"]h$]h&]uh1jhjoPhKhj4Oubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjPh]hreserved}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKhj4Oubeh}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_state (C enum)c.snd_compr_statehNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_stateh]h)}(henum snd_compr_stateh](jL)}(hj'h]henum}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhKubj)}(hsnd_compr_stateh]j%)}(hjPh]hsnd_compr_state}(hj QhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Qubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjPhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjPhKubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhKhjPhhubjb)}(hhh]jg)}(h task stateh]h task state}(hj/QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj,Qhhubah}(h]h ]h"]h$]h&]uh1jahjPhhhjPhKubeh}(h]h ](jenumeh"]h$]h&]jjjjGQjjGQjjjuh1hhhhj :hNhNubj)}(h**Constants** ``SND_COMPRESS_TASK_STATE_IDLE`` task is not queued ``SND_COMPRESS_TASK_STATE_ACTIVE`` task is in the queue ``SND_COMPRESS_TASK_STATE_FINISHED`` task was processed, output is availableh](jg)}(h **Constants**h]j)}(hjQQh]h Constants}(hjSQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOQubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjKQubj)}(hhh](j)}(h4``SND_COMPRESS_TASK_STATE_IDLE`` task is not queued h](j)}(h ``SND_COMPRESS_TASK_STATE_IDLE``h]j)}(hjpQh]hSND_COMPRESS_TASK_STATE_IDLE}(hjrQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnQubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjjQubj)}(hhh]jg)}(htask is not queuedh]htask is not queued}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjgQubj)}(h8``SND_COMPRESS_TASK_STATE_ACTIVE`` task is in the queue h](j)}(h"``SND_COMPRESS_TASK_STATE_ACTIVE``h]j)}(hjQh]hSND_COMPRESS_TASK_STATE_ACTIVE}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjQubj)}(hhh]jg)}(htask is in the queueh]htask is in the queue}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjgQubj)}(hL``SND_COMPRESS_TASK_STATE_FINISHED`` task was processed, output is availableh](j)}(h$``SND_COMPRESS_TASK_STATE_FINISHED``h]j)}(hjQh]h SND_COMPRESS_TASK_STATE_FINISHED}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjQubj)}(hhh]jg)}(h'task was processed, output is availableh]h'task was processed, output is available}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjgQubeh}(h]h ]h"]h$]h&]uh1jhjKQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_compr_task_status (C struct)c.snd_compr_task_statushNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_task_statush]h)}(hstruct snd_compr_task_statush](jL)}(hjOh]hstruct}(hjuh1jhj8RhhhjIRhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4RhhhjIRhKubah}(h]j/Rah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjIRhKhj1Rhhubjb)}(hhh]jg)}(h task statush]h task status}(hj~RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj{Rhhubah}(h]h ]h"]h$]h&]uh1jahj1RhhhjIRhKubeh}(h]h ](jstructeh"]h$]h&]jjjjRjjRjjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_task_status { __u64 seqno; __u64 input_size; __u64 output_size; __u32 output_flags; __u8 state; __u8 reserved[15]; }; **Members** ``seqno`` sequence number (task identifier) ``input_size`` filled data in bytes (from user space) ``output_size`` filled data in bytes (from driver) ``output_flags`` reserved for future (all zeros - from driver) ``state`` actual task state (SND_COMPRESS_TASK_STATE_*) ``reserved`` reserved for future extensionh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh:}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjRubj')}(hstruct snd_compr_task_status { __u64 seqno; __u64 input_size; __u64 output_size; __u32 output_flags; __u8 state; __u8 reserved[15]; };h]hstruct snd_compr_task_status { __u64 seqno; __u64 input_size; __u64 output_size; __u32 output_flags; __u8 state; __u8 reserved[15]; };}hjRsbah}(h]h ]h"]h$]h&]j=j>uh1j&hv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjRubjg)}(h **Members**h]j)}(hjRh]hMembers}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjRubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjRh]hseqno}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjRubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjShKhjRubj)}(h6``input_size`` filled data in bytes (from user space) h](j)}(h``input_size``h]j)}(hj$Sh]h input_size}(hj&ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"Subah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjSubj)}(hhh]jg)}(h&filled data in bytes (from user space)h]h&filled data in bytes (from user space)}(hj=ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9ShKhj:Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj9ShKhjRubj)}(h3``output_size`` filled data in bytes (from driver) h](j)}(h``output_size``h]j)}(hj]Sh]h output_size}(hj_ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Subah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjWSubj)}(hhh]jg)}(h"filled data in bytes (from driver)h]h"filled data in bytes (from driver)}(hjvShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrShKhjsSubah}(h]h ]h"]h$]h&]uh1jhjWSubeh}(h]h ]h"]h$]h&]uh1jhjrShKhjRubj)}(h?``output_flags`` reserved for future (all zeros - from driver) h](j)}(h``output_flags``h]j)}(hjSh]h output_flags}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjSubj)}(hhh]jg)}(h-reserved for future (all zeros - from driver)h]h-reserved for future (all zeros - from driver)}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjRubj)}(h8``state`` actual task state (SND_COMPRESS_TASK_STATE_*) h](j)}(h ``state``h]j)}(hjSh]hstate}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjSubj)}(hhh]jg)}(h-actual task state (SND_COMPRESS_TASK_STATE_*)h]h-actual task state (SND_COMPRESS_TASK_STATE_*)}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjRubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjTh]hreserved}(hj ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjTubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hj!ThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhjRubeh}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_vorbis (C struct)c.snd_enc_vorbishNtauh1hhj :hhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhNubh)}(hhh](h)}(hsnd_enc_vorbish]h)}(hstruct snd_enc_vorbish](jL)}(hjOh]hstruct}(hjcThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj_Thhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hjqThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ThhhjpThKubj)}(hsnd_enc_vorbish]j%)}(hj]Th]hsnd_enc_vorbis}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_ThhhjpThKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[ThhhjpThKubah}(h]jUTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjpThKhjXThhubjb)}(hhh]jg)}(hVorbis encoder parametersh]hVorbis encoder parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjThhubah}(h]h ]h"]h$]h&]uh1jahjXThhhjpThKubeh}(h]h ](jstructeh"]h$]h&]jjjjTjjTjjjuh1hhhhj :hjWThNubj)}(hXV**Definition**:: struct snd_enc_vorbis { __s32 quality; __u32 managed; __u32 max_bit_rate; __u32 min_bit_rate; __u32 downmix; }; **Members** ``quality`` Sets encoding quality to n, between -1 (low) and 10 (high). In the default mode of operation, the quality level is 3. Normal quality range is 0 - 10. ``managed`` Boolean. Set bitrate management mode. This turns off the normal VBR encoding, but allows hard or soft bitrate constraints to be enforced by the encoder. This mode can be slower, and may also be lower quality. It is primarily useful for streaming. ``max_bit_rate`` Enabled only if managed is TRUE ``min_bit_rate`` Enabled only if managed is TRUE ``downmix`` Boolean. Downmix input from stereo to mono (has no effect on non-stereo streams). Useful for lower-bitrate encoding.h](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh:}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubj')}(hstruct snd_enc_vorbis { __s32 quality; __u32 managed; __u32 max_bit_rate; __u32 min_bit_rate; __u32 downmix; };h]hstruct snd_enc_vorbis { __s32 quality; __u32 managed; __u32 max_bit_rate; __u32 min_bit_rate; __u32 downmix; };}hjTsbah}(h]h ]h"]h$]h&]j=j>uh1j&hu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubjg)}(h **Members**h]j)}(hjTh]hMembers}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubj)}(hhh](j)}(h``quality`` Sets encoding quality to n, between -1 (low) and 10 (high). In the default mode of operation, the quality level is 3. Normal quality range is 0 - 10. h](j)}(h ``quality``h]j)}(hjUh]hquality}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj Uubj)}(hhh]jg)}(hSets encoding quality to n, between -1 (low) and 10 (high). In the default mode of operation, the quality level is 3. Normal quality range is 0 - 10.h]hSets encoding quality to n, between -1 (low) and 10 (high). In the default mode of operation, the quality level is 3. Normal quality range is 0 - 10.}(hj+UhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj(Uubah}(h]h ]h"]h$]h&]uh1jhj Uubeh}(h]h ]h"]h$]h&]uh1jhj'UhKhj Uubj)}(hX``managed`` Boolean. Set bitrate management mode. This turns off the normal VBR encoding, but allows hard or soft bitrate constraints to be enforced by the encoder. This mode can be slower, and may also be lower quality. It is primarily useful for streaming. h](j)}(h ``managed``h]j)}(hjLUh]hmanaged}(hjNUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjFUubj)}(hhh]jg)}(hBoolean. Set bitrate management mode. This turns off the normal VBR encoding, but allows hard or soft bitrate constraints to be enforced by the encoder. This mode can be slower, and may also be lower quality. It is primarily useful for streaming.h]hBoolean. Set bitrate management mode. This turns off the normal VBR encoding, but allows hard or soft bitrate constraints to be enforced by the encoder. This mode can be slower, and may also be lower quality. It is primarily useful for streaming.}(hjeUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjbUubah}(h]h ]h"]h$]h&]uh1jhjFUubeh}(h]h ]h"]h$]h&]uh1jhjaUhKhj Uubj)}(h1``max_bit_rate`` Enabled only if managed is TRUE h](j)}(h``max_bit_rate``h]j)}(hjUh]h max_bit_rate}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjUubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhj Uubj)}(h1``min_bit_rate`` Enabled only if managed is TRUE h](j)}(h``min_bit_rate``h]j)}(hjUh]h min_bit_rate}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjUubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhj Uubj)}(h``downmix`` Boolean. Downmix input from stereo to mono (has no effect on non-stereo streams). Useful for lower-bitrate encoding.h](j)}(h ``downmix``h]j)}(hjUh]hdownmix}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjUubj)}(hhh]jg)}(htBoolean. Downmix input from stereo to mono (has no effect on non-stereo streams). Useful for lower-bitrate encoding.h]htBoolean. Downmix input from stereo to mono (has no effect on non-stereo streams). Useful for lower-bitrate encoding.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj VhKhjVubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhj VhKhj Uubeh}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhjWThNubjg)}(h**Description**h]j)}(hj:Vh]h Description}(hjuh1jhjVhhhjVhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjVhKubah}(h]jzVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjVhKhj|Vhhubjb)}(hhh]jg)}(hRealAudio encoder parametersh]hRealAudio encoder parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjVhhubah}(h]h ]h"]h$]h&]uh1jahj|VhhhjVhKubeh}(h]h ](jstructeh"]h$]h&]jjjjVjjVjjjuh1hhhhj :hjWThNubj)}(hX.**Definition**:: struct snd_enc_real { __u32 quant_bits; __u32 start_region; __u32 num_regions; }; **Members** ``quant_bits`` number of coupling quantization bits in the stream ``start_region`` coupling start region in the stream ``num_regions`` number of regions valueh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh:}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjVubj')}(h]struct snd_enc_real { __u32 quant_bits; __u32 start_region; __u32 num_regions; };h]h]struct snd_enc_real { __u32 quant_bits; __u32 start_region; __u32 num_regions; };}hjWsbah}(h]h ]h"]h$]h&]j=j>uh1j&hu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjVubjg)}(h **Members**h]j)}(hjWh]hMembers}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjVubj)}(hhh](j)}(hB``quant_bits`` number of coupling quantization bits in the stream h](j)}(h``quant_bits``h]j)}(hj6Wh]h quant_bits}(hj8WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Wubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj0Wubj)}(hhh]jg)}(h2number of coupling quantization bits in the streamh]h2number of coupling quantization bits in the stream}(hjOWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKWhKhjLWubah}(h]h ]h"]h$]h&]uh1jhj0Wubeh}(h]h ]h"]h$]h&]uh1jhjKWhKhj-Wubj)}(h5``start_region`` coupling start region in the stream h](j)}(h``start_region``h]j)}(hjoWh]h start_region}(hjqWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmWubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjiWubj)}(hhh]jg)}(h#coupling start region in the streamh]h#coupling start region in the stream}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhKhjWubah}(h]h ]h"]h$]h&]uh1jhjiWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhj-Wubj)}(h'``num_regions`` number of regions valueh](j)}(h``num_regions``h]j)}(hjWh]h num_regions}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjWubj)}(hhh]jg)}(hnumber of regions valueh]hnumber of regions value}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhj-Wubeh}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhjWThNubjg)}(h**Description**h]j)}(hjWh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj :hhubjg)}(h5These options were extracted from the OpenMAX IL spech]h5These options were extracted from the OpenMAX IL spec}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj :hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_flac (C struct)c.snd_enc_flachNtauh1hhj :hhhjWThNubh)}(hhh](h)}(h snd_enc_flach]h)}(hstruct snd_enc_flach](jL)}(hjOh]hstruct}(hj)XhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%Xhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMubj)}(h h]h }(hj7XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%Xhhhj6XhMubj)}(h snd_enc_flach]j%)}(hj#Xh]h snd_enc_flac}(hjIXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEXubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%Xhhhj6XhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!Xhhhj6XhMubah}(h]jXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj6XhMhjXhhubjb)}(hhh]jg)}(hFLAC encoder parametersh]hFLAC encoder parameters}(hjkXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjhXhhubah}(h]h ]h"]h$]h&]uh1jahjXhhhj6XhMubeh}(h]h ](jstructeh"]h$]h&]jjjjXjjXjjjuh1hhhhj :hjWThNubj)}(h**Definition**:: struct snd_enc_flac { __u32 num; __u32 gain; }; **Members** ``num`` serial number, valid only for OGG formats needs to be set by application ``gain`` Add replay gain tagsh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh:}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjXubj')}(h7struct snd_enc_flac { __u32 num; __u32 gain; };h]h7struct snd_enc_flac { __u32 num; __u32 gain; };}hjXsbah}(h]h ]h"]h$]h&]j=j>uh1j&hu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjXubjg)}(h **Members**h]j)}(hjXh]hMembers}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjXubj)}(hhh](j)}(hQ``num`` serial number, valid only for OGG formats needs to be set by application h](j)}(h``num``h]j)}(hjXh]hnum}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjXubj)}(hhh]jg)}(hHserial number, valid only for OGG formats needs to be set by applicationh]hHserial number, valid only for OGG formats needs to be set by application}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhM hjXubj)}(h``gain`` Add replay gain tagsh](j)}(h``gain``h]j)}(hjYh]hgain}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hj Yubj)}(hhh]jg)}(hAdd replay gain tagsh]hAdd replay gain tags}(hj+YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hj(Yubah}(h]h ]h"]h$]h&]uh1jhj Yubeh}(h]h ]h"]h$]h&]uh1jhj'YhM hjXubeh}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhjWThNubjg)}(h**Description**h]j)}(hjUYh]h Description}(hjWYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSYubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj :hhubjg)}(h|These options were extracted from the FLAC online documentation at http://flac.sourceforge.net/documentation_tools_flac.htmlh](hCThese options were extracted from the FLAC online documentation at }(hjkYhhhNhNubh reference)}(h9http://flac.sourceforge.net/documentation_tools_flac.htmlh]h9http://flac.sourceforge.net/documentation_tools_flac.html}(hjuYhhhNhNubah}(h]h ]h"]h$]h&]refurijwYuh1jsYhjkYubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hj :hhubjg)}(hTo make the API simpler, it is assumed that the user will select quality profiles. Additional options that affect encoding quality and speed can be added at a later stage if needed.h]hTo make the API simpler, it is assumed that the user will select quality profiles. Additional options that affect encoding quality and speed can be added at a later stage if needed.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj :hhubjg)}(h1By default the Subset format is used by encoders.h]h1By default the Subset format is used by encoders.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj :hhubjg)}(hhTAGS such as pictures, etc, cannot be handled by an offloaded encoder and are not supported in this API.h]hhTAGS such as pictures, etc, cannot be handled by an offloaded encoder and are not supported in this API.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj :hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_task_runtime (C struct)c.snd_compr_task_runtimehNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_task_runtimeh]h)}(hstruct snd_compr_task_runtimeh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhKubj)}(hsnd_compr_task_runtimeh]j%)}(hjYh]hsnd_compr_task_runtime}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjYhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjYhKubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhKhjYhhubjb)}(hhh]jg)}(htask runtime descriptionh]htask runtime description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjZhhubah}(h]h ]h"]h$]h&]uh1jahjYhhhjYhKubeh}(h]h ](jstructeh"]h$]h&]jjjj+Zjj+Zjjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; }; **Members** ``list`` list of all managed tasks ``input`` input DMA buffer ``output`` output DMA buffer ``seqno`` sequence number ``input_size`` really used data in the input buffer ``output_size`` really used data in the output buffer ``flags`` see SND_COMPRESS_TFLG_* ``state`` actual task state ``private_value`` used by the lowlevel driver (opaque)h](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj7ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Zubh:}(hj3ZhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj/Zubj')}(hstruct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; };h]hstruct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; };}hjPZsbah}(h]h ]h"]h$]h&]j=j>uh1j&hp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj/Zubjg)}(h **Members**h]j)}(hjaZh]hMembers}(hjcZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Zubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK)hj/Zubj)}(hhh](j)}(h#``list`` list of all managed tasks h](j)}(h``list``h]j)}(hjZh]hlist}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~Zubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjzZubj)}(hhh]jg)}(hlist of all managed tasksh]hlist of all managed tasks}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjzZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjwZubj)}(h``input`` input DMA buffer h](j)}(h ``input``h]j)}(hjZh]hinput}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjZubj)}(hhh]jg)}(hinput DMA bufferh]hinput DMA buffer}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjwZubj)}(h``output`` output DMA buffer h](j)}(h ``output``h]j)}(hjZh]houtput}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjZubj)}(hhh]jg)}(houtput DMA bufferh]houtput DMA buffer}(hj [hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjwZubj)}(h``seqno`` sequence number h](j)}(h ``seqno``h]j)}(hj+[h]hseqno}(hj-[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj%[ubj)}(hhh]jg)}(hsequence numberh]hsequence number}(hjD[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@[hKhjA[ubah}(h]h ]h"]h$]h&]uh1jhj%[ubeh}(h]h ]h"]h$]h&]uh1jhj@[hKhjwZubj)}(h4``input_size`` really used data in the input buffer h](j)}(h``input_size``h]j)}(hjd[h]h input_size}(hjf[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj^[ubj)}(hhh]jg)}(h$really used data in the input bufferh]h$really used data in the input buffer}(hj}[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjy[hKhjz[ubah}(h]h ]h"]h$]h&]uh1jhj^[ubeh}(h]h ]h"]h$]h&]uh1jhjy[hKhjwZubj)}(h6``output_size`` really used data in the output buffer h](j)}(h``output_size``h]j)}(hj[h]h output_size}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[ubj)}(hhh]jg)}(h%really used data in the output bufferh]h%really used data in the output buffer}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjwZubj)}(h"``flags`` see SND_COMPRESS_TFLG_* h](j)}(h ``flags``h]j)}(hj[h]hflags}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[ubj)}(hhh]jg)}(hsee SND_COMPRESS_TFLG_*h]hsee SND_COMPRESS_TFLG_*}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjwZubj)}(h``state`` actual task state h](j)}(h ``state``h]j)}(hj\h]hstate}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj \ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK hj \ubj)}(hhh]jg)}(hactual task stateh]hactual task state}(hj(\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$\hK hj%\ubah}(h]h ]h"]h$]h&]uh1jhj \ubeh}(h]h ]h"]h$]h&]uh1jhj$\hK hjwZubj)}(h6``private_value`` used by the lowlevel driver (opaque)h](j)}(h``private_value``h]j)}(hjH\h]h private_value}(hjJ\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK hjB\ubj)}(hhh]jg)}(h$used by the lowlevel driver (opaque)h]h$used by the lowlevel driver (opaque)}(hja\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK!hj^\ubah}(h]h ]h"]h$]h&]uh1jhjB\ubeh}(h]h ]h"]h$]h&]uh1jhj]\hK hjwZubeh}(h]h ]h"]h$]h&]uh1jhj/Zubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_runtime (C struct)c.snd_compr_runtimehNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_runtimeh]h)}(hstruct snd_compr_runtimeh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\hhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK'ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhj\hK'ubj)}(hsnd_compr_runtimeh]j%)}(hj\h]hsnd_compr_runtime}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhj\hK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj\hhhj\hK'ubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hK'hj\hhubjb)}(hhh]jg)}(hruntime stream descriptionh]hruntime stream description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK/hj\hhubah}(h]h ]h"]h$]h&]uh1jahj\hhhj\hK'ubeh}(h]h ](jstructeh"]h$]h&]jjjj\jj\jjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); u32 active_tasks; u32 total_tasks; u64 task_seqno; struct list_head tasks; #endif; }; **Members** ``state`` stream state ``ops`` pointer to DSP callbacks ``buffer`` pointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copy ``buffer_size`` size of the above buffer ``fragment_size`` size of buffer fragment in bytes ``fragments`` number of such fragments ``total_bytes_available`` cumulative number of bytes made available in the ring buffer ``total_bytes_transferred`` cumulative bytes transferred by offload DSP ``sleep`` poll sleep ``private_data`` driver private data pointer ``dma_area`` virtual buffer address ``dma_addr`` physical buffer address (not accessible from main CPU) ``dma_bytes`` size of DMA area ``dma_buffer_p`` runtime dma buffer pointer ``active_tasks`` count of active tasks ``total_tasks`` count of all tasks ``task_seqno`` last task sequence number (!= 0) ``tasks`` list of all tasksh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubh:}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hj]ubj')}(hX struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); u32 active_tasks; u32 total_tasks; u64 task_seqno; struct list_head tasks; #endif; };h]hX struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); u32 active_tasks; u32 total_tasks; u64 task_seqno; struct list_head tasks; #endif; };}hj!]sbah}(h]h ]h"]h$]h&]j=j>uh1j&hp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hj]ubjg)}(h **Members**h]j)}(hj2]h]hMembers}(hj4]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0]ubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKLhj]ubj)}(hhh](j)}(h``state`` stream state h](j)}(h ``state``h]j)}(hjQ]h]hstate}(hjS]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK1hjK]ubj)}(hhh]jg)}(h stream stateh]h stream state}(hjj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjf]hK1hjg]ubah}(h]h ]h"]h$]h&]uh1jhjK]ubeh}(h]h ]h"]h$]h&]uh1jhjf]hK1hjH]ubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hj]h]hops}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK2hj]ubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hK2hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hK2hjH]ubj)}(hd``buffer`` pointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copy h](j)}(h ``buffer``h]j)}(hj]h]hbuffer}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK4hj]ubj)}(hhh]jg)}(hXpointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copyh]hZpointer to kernel buffer, valid only when not in mmap mode or DSP doesn’t implement copy}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hK4hjH]ubj)}(h)``buffer_size`` size of the above buffer h](j)}(h``buffer_size``h]j)}(hj]h]h buffer_size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hj]ubj)}(hhh]jg)}(hsize of the above bufferh]hsize of the above buffer}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hK5hj^ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj^hK5hjH]ubj)}(h3``fragment_size`` size of buffer fragment in bytes h](j)}(h``fragment_size``h]j)}(hj6^h]h fragment_size}(hj8^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK6hj0^ubj)}(hhh]jg)}(h size of buffer fragment in bytesh]h size of buffer fragment in bytes}(hjO^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjK^hK6hjL^ubah}(h]h ]h"]h$]h&]uh1jhj0^ubeh}(h]h ]h"]h$]h&]uh1jhjK^hK6hjH]ubj)}(h'``fragments`` number of such fragments h](j)}(h ``fragments``h]j)}(hjo^h]h fragments}(hjq^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK7hji^ubj)}(hhh]jg)}(hnumber of such fragmentsh]hnumber of such fragments}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hK7hj^ubah}(h]h ]h"]h$]h&]uh1jhji^ubeh}(h]h ]h"]h$]h&]uh1jhj^hK7hjH]ubj)}(hW``total_bytes_available`` cumulative number of bytes made available in the ring buffer h](j)}(h``total_bytes_available``h]j)}(hj^h]htotal_bytes_available}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK9hj^ubj)}(hhh]jg)}(hhj_ubj)}(hhh]jg)}(h6physical buffer address (not accessible from main CPU)h]h6physical buffer address (not accessible from main CPU)}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hK>hj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hK>hjH]ubj)}(h``dma_bytes`` size of DMA area h](j)}(h ``dma_bytes``h]j)}(hj_h]h dma_bytes}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK?hj_ubj)}(hhh]jg)}(hsize of DMA areah]hsize of DMA area}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hK?hj`ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj`hK?hjH]ubj)}(h,``dma_buffer_p`` runtime dma buffer pointer h](j)}(h``dma_buffer_p``h]j)}(hj8`h]h dma_buffer_p}(hj:`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK@hj2`ubj)}(hhh]jg)}(hruntime dma buffer pointerh]hruntime dma buffer pointer}(hjQ`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjM`hK@hjN`ubah}(h]h ]h"]h$]h&]uh1jhj2`ubeh}(h]h ]h"]h$]h&]uh1jhjM`hK@hjH]ubj)}(h'``active_tasks`` count of active tasks h](j)}(h``active_tasks``h]j)}(hjq`h]h active_tasks}(hjs`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKAhjk`ubj)}(hhh]jg)}(hcount of active tasksh]hcount of active tasks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKAhj`ubah}(h]h ]h"]h$]h&]uh1jhjk`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKAhjH]ubj)}(h#``total_tasks`` count of all tasks h](j)}(h``total_tasks``h]j)}(hj`h]h total_tasks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKBhj`ubj)}(hhh]jg)}(hcount of all tasksh]hcount of all tasks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKBhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKBhjH]ubj)}(h0``task_seqno`` last task sequence number (!= 0) h](j)}(h``task_seqno``h]j)}(hj`h]h task_seqno}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChj`ubj)}(hhh]jg)}(h last task sequence number (!= 0)h]h last task sequence number (!= 0)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKChj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKChjH]ubj)}(h``tasks`` list of all tasksh](j)}(h ``tasks``h]j)}(hjah]htasks}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChjaubj)}(hhh]jg)}(hlist of all tasksh]hlist of all tasks}(hj5ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKDhj2aubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj1ahKChjH]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_stream (C struct)c.snd_compr_streamhNtauh1hhj :hhhNhNubh)}(hhh](h)}(hsnd_compr_streamh]h)}(hstruct snd_compr_streamh](jL)}(hjOh]hstruct}(hjvahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrahhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKJubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrahhhjahKJubj)}(hsnd_compr_streamh]j%)}(hjpah]hsnd_compr_stream}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrahhhjahKJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnahhhjahKJubah}(h]jiaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahKJhjkahhubjb)}(hhh]jg)}(hcompressed streamh]hcompressed stream}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK_hjahhubah}(h]h ]h"]h$]h&]uh1jahjkahhhjahKJubeh}(h]h ](jstructeh"]h$]h&]jjjjajjajjjuh1hhhhj :hNhNubj)}(hX***Definition**:: struct snd_compr_stream { const char *name; struct snd_compr_ops *ops; struct snd_compr_runtime *runtime; struct snd_compr *device; struct delayed_work error_work; enum snd_compr_direction direction; bool metadata_set; bool next_track; bool partial_drain; bool pause_in_draining; void *private_data; struct snd_dma_buffer dma_buffer; }; **Members** ``name`` device name ``ops`` pointer to DSP callbacks ``runtime`` pointer to runtime structure ``device`` device pointer ``error_work`` delayed work used when closing the stream due to an error ``direction`` stream direction, playback/recording ``metadata_set`` metadata set flag, true when set ``next_track`` has userspace signal next track transition, true when set ``partial_drain`` undergoing partial_drain for stream, true when set ``pause_in_draining`` paused during draining state, true when set ``private_data`` pointer to DSP private data ``dma_buffer`` allocated buffer if anyh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh:}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjaubj')}(hXstruct snd_compr_stream { const char *name; struct snd_compr_ops *ops; struct snd_compr_runtime *runtime; struct snd_compr *device; struct delayed_work error_work; enum snd_compr_direction direction; bool metadata_set; bool next_track; bool partial_drain; bool pause_in_draining; void *private_data; struct snd_dma_buffer dma_buffer; };h]hXstruct snd_compr_stream { const char *name; struct snd_compr_ops *ops; struct snd_compr_runtime *runtime; struct snd_compr *device; struct delayed_work error_work; enum snd_compr_direction direction; bool metadata_set; bool next_track; bool partial_drain; bool pause_in_draining; void *private_data; struct snd_dma_buffer dma_buffer; };}hjasbah}(h]h ]h"]h$]h&]j=j>uh1j&hp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKehjaubjg)}(h **Members**h]j)}(hjbh]hMembers}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKthjaubj)}(hhh](j)}(h``name`` device name h](j)}(h``name``h]j)}(hj%bh]hname}(hj'bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#bubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKahjbubj)}(hhh]jg)}(h device nameh]h device name}(hj>bhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:bhKahj;bubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj:bhKahjbubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hj^bh]hops}(hj`bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\bubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKbhjXbubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjwbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjsbhKbhjtbubah}(h]h ]h"]h$]h&]uh1jhjXbubeh}(h]h ]h"]h$]h&]uh1jhjsbhKbhjbubj)}(h)``runtime`` pointer to runtime structure h](j)}(h ``runtime``h]j)}(hjbh]hruntime}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjbubj)}(hhh]jg)}(hpointer to runtime structureh]hpointer to runtime structure}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKchjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKchjbubj)}(h``device`` device pointer h](j)}(h ``device``h]j)}(hjbh]hdevice}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKdhjbubj)}(hhh]jg)}(hdevice pointerh]hdevice pointer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKdhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKdhjbubj)}(hI``error_work`` delayed work used when closing the stream due to an error h](j)}(h``error_work``h]j)}(hj ch]h error_work}(hj chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKehjcubj)}(hhh]jg)}(h9delayed work used when closing the stream due to an errorh]h9delayed work used when closing the stream due to an error}(hj"chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKehjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKehjbubj)}(h3``direction`` stream direction, playback/recording h](j)}(h ``direction``h]j)}(hjBch]h direction}(hjDchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@cubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKfhjuh1jhjdhhhjdhKrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjdhhhjdhKrubah}(h]jdah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjdhKrhjdhhubjb)}(hhh]jg)}(hcompressed path DSP operationsh]hcompressed path DSP operations}(hj4ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK}hj1ehhubah}(h]h ]h"]h$]h&]uh1jahjdhhhjdhKrubeh}(h]h ](jstructeh"]h$]h&]jjjjLejjLejjjuh1hhhhj :hNhNubj)}(hXT **Definition**:: struct snd_compr_ops { int (*open)(struct snd_compr_stream *stream); int (*free)(struct snd_compr_stream *stream); int (*set_params)(struct snd_compr_stream *stream, struct snd_compr_params *params); int (*get_params)(struct snd_compr_stream *stream, struct snd_codec *params); int (*set_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*get_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*trigger)(struct snd_compr_stream *stream, int cmd); int (*pointer)(struct snd_compr_stream *stream, struct snd_compr_tstamp *tstamp); int (*copy)(struct snd_compr_stream *stream, char __user *buf, size_t count); int (*mmap)(struct snd_compr_stream *stream, struct vm_area_struct *vma); int (*ack)(struct snd_compr_stream *stream, size_t bytes); int (*get_caps) (struct snd_compr_stream *stream, struct snd_compr_caps *caps); int (*get_codec_caps) (struct snd_compr_stream *stream, struct snd_compr_codec_caps *codec); #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); int (*task_create) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_start) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_stop) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_free) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); #endif; }; **Members** ``open`` Open the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameter ``free`` Close the compressed stream, mandatory ``set_params`` Sets the compressed stream parameters, mandatory This can be called in during stream creation only to set codec params and the stream properties ``get_params`` retrieve the codec parameters, mandatory ``set_metadata`` Set the metadata values for a stream ``get_metadata`` retrieves the requested metadata values from stream ``trigger`` Trigger operations like start, pause, resume, drain, stop. This callback is mandatory ``pointer`` Retrieve current h/w pointer information. Mandatory ``copy`` Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmap ``mmap`` DSP mmap method to mmap DSP memory ``ack`` Ack for DSP when data is written to audio buffer, Optional Not valid if copy is implemented ``get_caps`` Retrieve DSP capabilities, mandatory ``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory ``task_create`` Create a set of input/output buffers for accel operations ``task_start`` Start (queue) a task for accel operations ``task_stop`` Stop (dequeue) a task for accel operations ``task_free`` Free a set of input/output buffers for accel operationsh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjXehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTeubh:}(hjTehhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjPeubj')}(hXstruct snd_compr_ops { int (*open)(struct snd_compr_stream *stream); int (*free)(struct snd_compr_stream *stream); int (*set_params)(struct snd_compr_stream *stream, struct snd_compr_params *params); int (*get_params)(struct snd_compr_stream *stream, struct snd_codec *params); int (*set_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*get_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*trigger)(struct snd_compr_stream *stream, int cmd); int (*pointer)(struct snd_compr_stream *stream, struct snd_compr_tstamp *tstamp); int (*copy)(struct snd_compr_stream *stream, char __user *buf, size_t count); int (*mmap)(struct snd_compr_stream *stream, struct vm_area_struct *vma); int (*ack)(struct snd_compr_stream *stream, size_t bytes); int (*get_caps) (struct snd_compr_stream *stream, struct snd_compr_caps *caps); int (*get_codec_caps) (struct snd_compr_stream *stream, struct snd_compr_codec_caps *codec); #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); int (*task_create) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_start) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_stop) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_free) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); #endif; };h]hXstruct snd_compr_ops { int (*open)(struct snd_compr_stream *stream); int (*free)(struct snd_compr_stream *stream); int (*set_params)(struct snd_compr_stream *stream, struct snd_compr_params *params); int (*get_params)(struct snd_compr_stream *stream, struct snd_codec *params); int (*set_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*get_metadata)(struct snd_compr_stream *stream, struct snd_compr_metadata *metadata); int (*trigger)(struct snd_compr_stream *stream, int cmd); int (*pointer)(struct snd_compr_stream *stream, struct snd_compr_tstamp *tstamp); int (*copy)(struct snd_compr_stream *stream, char __user *buf, size_t count); int (*mmap)(struct snd_compr_stream *stream, struct vm_area_struct *vma); int (*ack)(struct snd_compr_stream *stream, size_t bytes); int (*get_caps) (struct snd_compr_stream *stream, struct snd_compr_caps *caps); int (*get_codec_caps) (struct snd_compr_stream *stream, struct snd_compr_codec_caps *codec); #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); int (*task_create) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_start) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_stop) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); int (*task_free) (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task); #endif; };}hjqesbah}(h]h ]h"]h$]h&]j=j>uh1j&hp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjPeubjg)}(h **Members**h]j)}(hjeh]hMembers}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjPeubj)}(hhh](j)}(hx``open`` Open the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameter h](j)}(h``open``h]j)}(hjeh]hopen}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(hnOpen the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameterh]hnOpen the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameter}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehKhjeubj)}(h0``free`` Close the compressed stream, mandatory h](j)}(h``free``h]j)}(hjeh]hfree}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(h&Close the compressed stream, mandatoryh]h&Close the compressed stream, mandatory}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehKhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehKhjeubj)}(h``set_params`` Sets the compressed stream parameters, mandatory This can be called in during stream creation only to set codec params and the stream properties h](j)}(h``set_params``h]j)}(hjfh]h set_params}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(hSets the compressed stream parameters, mandatory This can be called in during stream creation only to set codec params and the stream propertiesh]hSets the compressed stream parameters, mandatory This can be called in during stream creation only to set codec params and the stream properties}(hj-fhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj*fubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhj)fhKhjeubj)}(h8``get_params`` retrieve the codec parameters, mandatory h](j)}(h``get_params``h]j)}(hjNfh]h get_params}(hjPfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjHfubj)}(hhh]jg)}(h(retrieve the codec parameters, mandatoryh]h(retrieve the codec parameters, mandatory}(hjgfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjcfhKhjdfubah}(h]h ]h"]h$]h&]uh1jhjHfubeh}(h]h ]h"]h$]h&]uh1jhjcfhKhjeubj)}(h6``set_metadata`` Set the metadata values for a stream h](j)}(h``set_metadata``h]j)}(hjfh]h set_metadata}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(h$Set the metadata values for a streamh]h$Set the metadata values for a stream}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhKhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(hE``get_metadata`` retrieves the requested metadata values from stream h](j)}(h``get_metadata``h]j)}(hjfh]h get_metadata}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(h3retrieves the requested metadata values from streamh]h3retrieves the requested metadata values from stream}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhKhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(hb``trigger`` Trigger operations like start, pause, resume, drain, stop. This callback is mandatory h](j)}(h ``trigger``h]j)}(hjfh]htrigger}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatoryh]hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatory}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(h@``pointer`` Retrieve current h/w pointer information. Mandatory h](j)}(h ``pointer``h]j)}(hj3gh]hpointer}(hj5ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1gubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj-gubj)}(hhh]jg)}(h3Retrieve current h/w pointer information. Mandatoryh]h3Retrieve current h/w pointer information. Mandatory}(hjLghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHghKhjIgubah}(h]h ]h"]h$]h&]uh1jhj-gubeh}(h]h ]h"]h$]h&]uh1jhjHghKhjeubj)}(hh``copy`` Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmap h](j)}(h``copy``h]j)}(hjlgh]hcopy}(hjnghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfgubj)}(hhh]jg)}(h^Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmaph]h`Copy the compressed data to/from userspace, Optional Can’t be implemented if DSP supports mmap}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubah}(h]h ]h"]h$]h&]uh1jhjfgubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(h,``mmap`` DSP mmap method to mmap DSP memory h](j)}(h``mmap``h]j)}(hjgh]hmmap}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(h"DSP mmap method to mmap DSP memoryh]h"DSP mmap method to mmap DSP memory}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghKhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(hd``ack`` Ack for DSP when data is written to audio buffer, Optional Not valid if copy is implemented h](j)}(h``ack``h]j)}(hjgh]hack}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(h[Ack for DSP when data is written to audio buffer, Optional Not valid if copy is implementedh]h[Ack for DSP when data is written to audio buffer, Optional Not valid if copy is implemented}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(h2``get_caps`` Retrieve DSP capabilities, mandatory h](j)}(h ``get_caps``h]j)}(hjhh]hget_caps}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h$Retrieve DSP capabilities, mandatoryh]h$Retrieve DSP capabilities, mandatory9}(hj2hhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hhKhj/hubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhj.hhKhjeubj)}(hI``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory h](j)}(h``get_codec_caps``h]j)}(hjRhh]hget_codec_caps}(hjThhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjLhubj)}(hhh]jg)}(h5Retrieve capabilities for a specific codec, mandatoryh]h5Retrieve capabilities for a specific codec, mandatory}(hjkhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjLhubeh}(h]h ]h"]h$]h&]uh1jhjghhKhjeubj)}(hJ``task_create`` Create a set of input/output buffers for accel operations h](j)}(h``task_create``h]j)}(hjhh]h task_create}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h9Create a set of input/output buffers for accel operationsh]h9Create a set of input/output buffers for accel operations}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(h9``task_start`` Start (queue) a task for accel operations h](j)}(h``task_start``h]j)}(hjhh]h task_start}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h)Start (queue) a task for accel operationsh]h)Start (queue) a task for accel operations}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(h9``task_stop`` Stop (dequeue) a task for accel operations h](j)}(h ``task_stop``h]j)}(hjhh]h task_stop}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h*Stop (dequeue) a task for accel operationsh]h*Stop (dequeue) a task for accel operations}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihKhjiubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjihKhjeubj)}(hE``task_free`` Free a set of input/output buffers for accel operationsh](j)}(h ``task_free``h]j)}(hj6ih]h task_free}(hj8ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4iubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj0iubj)}(hhh]jg)}(h7Free a set of input/output buffers for accel operationsh]h7Free a set of input/output buffers for accel operations}(hjOihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjLiubah}(h]h ]h"]h$]h&]uh1jhj0iubeh}(h]h ]h"]h$]h&]uh1jhjKihKhjeubeh}(h]h ]h"]h$]h&]uh1jhjPeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr (C struct) c.snd_comprhNtauh1hhj :hhhNhNubh)}(hhh](h)}(h snd_comprh]h)}(hstruct snd_comprh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjihhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihKubj)}(h snd_comprh]j%)}(hjih]h snd_compr}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihKubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihKhjihhubjb)}(hhh]jg)}(hCompressed deviceh]hCompressed device}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjihhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihKubeh}(h]h ](jstructeh"]h$]h&]jjjjijjijjjuh1hhhhj :hNhNubj)}(hX**Definition**:: struct snd_compr { const char *name; struct device *dev; struct snd_compr_ops *ops; void *private_data; struct snd_card *card; unsigned int direction; struct mutex lock; int device; bool use_pause_in_draining; #ifdef CONFIG_SND_VERBOSE_PROCFS; }; **Members** ``name`` DSP device name ``dev`` associated device instance ``ops`` pointer to DSP callbacks ``private_data`` pointer to DSP pvt data ``card`` sound card pointer ``direction`` Playback or capture direction ``lock`` device lock ``device`` device id ``use_pause_in_draining`` allow pause in draining, true when seth](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh:}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjiubj')}(hXstruct snd_compr { const char *name; struct device *dev; struct snd_compr_ops *ops; void *private_data; struct snd_card *card; unsigned int direction; struct mutex lock; int device; bool use_pause_in_draining; #ifdef CONFIG_SND_VERBOSE_PROCFS; };h]hXstruct snd_compr { const char *name; struct device *dev; struct snd_compr_ops *ops; void *private_data; struct snd_card *card; unsigned int direction; struct mutex lock; int device; bool use_pause_in_draining; #ifdef CONFIG_SND_VERBOSE_PROCFS; };}hjjsbah}(h]h ]h"]h$]h&]j=j>uh1j&hp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjiubjg)}(h **Members**h]j)}(hj jh]hMembers}(hj"jhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjiubj)}(hhh](j)}(h``name`` DSP device name h](j)}(h``name``h]j)}(hj?jh]hname}(hjAjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=jubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj9jubj)}(hhh]jg)}(hDSP device nameh]hDSP device name}(hjXjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjTjhKhjUjubah}(h]h ]h"]h$]h&]uh1jhj9jubeh}(h]h ]h"]h$]h&]uh1jhjTjhKhj6jubj)}(h#``dev`` associated device instance h](j)}(h``dev``h]j)}(hjxjh]hdev}(hjzjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjrjubj)}(hhh]jg)}(hassociated device instanceh]hassociated device instance}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjrjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj6jubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjjh]hops}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj6jubj)}(h)``private_data`` pointer to DSP pvt data h](j)}(h``private_data``h]j)}(hjjh]h private_data}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjubj)}(hhh]jg)}(hpointer to DSP pvt datah]hpointer to DSP pvt data}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjkubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj6jubj)}(h``card`` sound card pointer h](j)}(h``card``h]j)}(hj#kh]hcard}(hj%khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!kubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hjuh1jhj]lhhhjolhKubj@)}(h$(struct snd_compr_stream *substream)h]jF)}(h"struct snd_compr_stream *substreamh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j)}jjlsb!c.snd_compr_use_pause_in_drainingasbuh1hhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(h substreamh]h substream}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubah}(h]h ]h"]h$]h&]j=j>uh1j?hj]lhhhjolhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYlhhhjolhKubah}(h]jTlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjolhKhjVlhhubjb)}(hhh]jg)}(h(Allow pause and resume in draining stateh]h(Allow pause and resume in draining state}(hj!mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmhhubah}(h]h ]h"]h$]h&]uh1jahjVlhhhjolhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9mjj9mjjjuh1hhhhj :hNhNubj)}(h**Parameters** ``struct snd_compr_stream *substream`` compress substream to set **Description** Allow pause and resume in draining state. Only HW driver supports this transition can call this API.h](jg)}(h**Parameters**h]j)}(hjCmh]h Parameters}(hjEmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAmubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj=mubj)}(hhh]j)}(hA``struct snd_compr_stream *substream`` compress substream to set h](j)}(h&``struct snd_compr_stream *substream``h]j)}(hjbmh]h"struct snd_compr_stream *substream}(hjdmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`mubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj\mubj)}(hhh]jg)}(hcompress substream to seth]hcompress substream to set}(hj{mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwmhKhjxmubah}(h]h ]h"]h$]h&]uh1jhj\mubeh}(h]h ]h"]h$]h&]uh1jhjwmhKhjYmubah}(h]h ]h"]h$]h&]uh1jhj=mubjg)}(h**Description**h]j)}(hjmh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj=mubjg)}(hdAllow pause and resume in draining state. Only HW driver supports this transition can call this API.h]hdAllow pause and resume in draining state. Only HW driver supports this transition can call this API.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj=mubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_compr_set_runtime_buffer (C function)c.snd_compr_set_runtime_bufferhNtauh1hhj :hhhNhNubh)}(hhh](h)}(h`void snd_compr_set_runtime_buffer (struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h]h)}(h_void snd_compr_set_runtime_buffer(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](h)}(hvoidh]hvoid}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhM ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmhhhjmhM ubj)}(hsnd_compr_set_runtime_bufferh]j%)}(hsnd_compr_set_runtime_bufferh]hsnd_compr_set_runtime_buffer}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjmhhhjmhM ubj@)}(h>(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hj,nhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj=nhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:nubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?nmodnameN classnameNjj)}j]j)}jjnsbc.snd_compr_set_runtime_bufferasbuh1hhjnubj)}(h h]h }(hj]nhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjknhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hstreamh]hstream}(hjxnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hstruct snd_dma_buffer *bufph](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jYnc.snd_compr_set_runtime_bufferasbuh1hhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hbufph]hbufp}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhjmhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjmhM ubah}(h]jmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmhM hjmhhubjb)}(hhh]jg)}(hSet the Compress runtime bufferh]hSet the Compress runtime buffer}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjohhubah}(h]h ]h"]h$]h&]uh1jahjmhhhjmhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*ojj*ojjjuh1hhhhj :hNhNubj)}(hX$**Parameters** ``struct snd_compr_stream *stream`` compress stream to set ``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear **Description** Copy the buffer information to runtime buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](jg)}(h**Parameters**h]j)}(hj4oh]h Parameters}(hj6ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2oubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj.oubj)}(hhh](j)}(h;``struct snd_compr_stream *stream`` compress stream to set h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjSoh]hstruct snd_compr_stream *stream}(hjUohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQoubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjMoubj)}(hhh]jg)}(hcompress stream to seth]hcompress stream to set}(hjlohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhohMhjioubah}(h]h ]h"]h$]h&]uh1jhjMoubeh}(h]h ]h"]h$]h&]uh1jhjhohMhjJoubj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hjoh]hstruct snd_dma_buffer *bufp}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjoubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohMhjJoubeh}(h]h ]h"]h$]h&]uh1jhj.oubjg)}(h**Description**h]j)}(hjoh]h Description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj.oubjg)}(h|Copy the buffer information to runtime buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](h3Copy the buffer information to runtime buffer when }(hjohhhNhNubj)}(h**bufp**h]hbufp}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubhA is non-NULL. Otherwise it clears the current buffer information.}(hjohhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj.oubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj :hhhNhNubeh}(h]compress-offload-apiah ]h"]compress offload apiah$]h&]uh1hhj9hhhhhKXubeh}(h]compress-offloadah ]h"]compress offloadah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hASoCh]hASoC}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphhhhhK_ubh)}(hhh](h)}(h ASoC Core APIh]h ASoC Core API}(hj)phhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&phhhhhKbubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_kcontrol_component (C function)c.snd_soc_kcontrol_componenthNtauh1hhj&phhhNhNubh)}(hhh](h)}(hUstruct snd_soc_component * snd_soc_kcontrol_component (struct snd_kcontrol *kcontrol)h]h)}(hSstruct snd_soc_component *snd_soc_kcontrol_component(struct snd_kcontrol *kcontrol)h](jL)}(hjOh]hstruct}(hjPphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLphhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM(ubj)}(h h]h }(hj^phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLphhhj]phM(ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjophhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqpmodnameN classnameNjj)}j]j)}jsnd_soc_kcontrol_componentsbc.snd_soc_kcontrol_componentasbuh1hhjLphhhj]phM(ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLphhhj]phM(ubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLphhhj]phM(ubj)}(hsnd_soc_kcontrol_componenth]j%)}(hjph]hsnd_soc_kcontrol_component}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLphhhj]phM(ubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jpc.snd_soc_kcontrol_componentasbuh1hhjpubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hkcontrolh]hkcontrol}(hj!qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLphhhj]phM(ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHphhhj]phM(ubah}(h]jCpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]phM(hjEphhubjb)}(hhh]jg)}(h1Returns the component that registered the controlh]h1Returns the component that registered the control}(hjKqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjHqhhubah}(h]h ]h"]h$]h&]uh1jahjEphhhj]phM(ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcqjjcqjjjuh1hhhhj&phNhNubj)}(hXG**Parameters** ``struct snd_kcontrol *kcontrol`` The control for which to get the component **Note** This function will work correctly if the control has been registered for a component. With snd_soc_add_codec_controls() or via table based setup for either a CODEC or component driver. Otherwise the behavior is undefined.h](jg)}(h**Parameters**h]j)}(hjmqh]h Parameters}(hjoqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkqubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM#hjgqubj)}(hhh]j)}(hM``struct snd_kcontrol *kcontrol`` The control for which to get the component h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjqh]hstruct snd_kcontrol *kcontrol}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM!hjqubj)}(hhh]jg)}(h*The control for which to get the componenth]h*The control for which to get the component}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhM!hjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhM!hjqubah}(h]h ]h"]h$]h&]uh1jhjgqubjg)}(h**Note**h]j)}(hjqh]hNote}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM#hjgqubjg)}(hThis function will work correctly if the control has been registered for a component. With snd_soc_add_codec_controls() or via table based setup for either a CODEC or component driver. Otherwise the behavior is undefined.h]hThis function will work correctly if the control has been registered for a component. With snd_soc_add_codec_controls() or via table based setup for either a CODEC or component driver. Otherwise the behavior is undefined.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM#hjgqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_find_dai (C function)c.snd_soc_find_daihNtauh1hhj&phhhNhNubh)}(hhh](h)}(hTstruct snd_soc_dai * snd_soc_find_dai (const struct snd_soc_dai_link_component *dlc)h]h)}(hRstruct snd_soc_dai *snd_soc_find_dai(const struct snd_soc_dai_link_component *dlc)h](jL)}(hjOh]hstruct}(hj rhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjrhMubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hj+rhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-rmodnameN classnameNjj)}j]j)}jsnd_soc_find_daisbc.snd_soc_find_daiasbuh1hhjrhhhjrhMubj)}(h h]h }(hjLrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjrhMubj)}(hjh]h*}(hjZrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrhhhjrhMubj)}(hsnd_soc_find_daih]j%)}(hjIrh]hsnd_soc_find_dai}(hjkrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrhhhjrhMubj@)}(h.(const struct snd_soc_dai_link_component *dlc)h]jF)}(h,const struct snd_soc_dai_link_component *dlch](jL)}(hj\h]hconst}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubjL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_soc_dai_link_componenth]hsnd_soc_dai_link_component}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jGrc.snd_soc_find_daiasbuh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hdlch]hdlc}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~rubah}(h]h ]h"]h$]h&]j=j>uh1j?hjrhhhjrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrhhhjrhMubah}(h]jqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhMhjrhhubjb)}(hhh]jg)}(hFind a registered DAIh]hFind a registered DAI}(hj"shhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjshhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:sjj:sjjjuh1hhhhj&phNhNubj)}(hXz**Parameters** ``const struct snd_soc_dai_link_component *dlc`` name of the DAI or the DAI driver and optional component info to match **Description** This function will search all registered components and their DAIs to find the DAI of the same name. The component's of_node and name should also match if being specified. **Return** pointer of DAI, or NULL if not found.h](jg)}(h**Parameters**h]j)}(hjDsh]h Parameters}(hjFshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj>subj)}(hhh]j)}(hx``const struct snd_soc_dai_link_component *dlc`` name of the DAI or the DAI driver and optional component info to match h](j)}(h0``const struct snd_soc_dai_link_component *dlc``h]j)}(hjcsh]h,const struct snd_soc_dai_link_component *dlc}(hjeshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjasubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj]subj)}(hhh]jg)}(hFname of the DAI or the DAI driver and optional component info to matchh]hFname of the DAI or the DAI driver and optional component info to match}(hj|shhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxshMhjysubah}(h]h ]h"]h$]h&]uh1jhj]subeh}(h]h ]h"]h$]h&]uh1jhjxshMhjZsubah}(h]h ]h"]h$]h&]uh1jhj>subjg)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj>subjg)}(hThis function will search all registered components and their DAIs to find the DAI of the same name. The component's of_node and name should also match if being specified.h]hThis function will search all registered components and their DAIs to find the DAI of the same name. The component’s of_node and name should also match if being specified.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj>subjg)}(h **Return**h]j)}(hjsh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj>subjg)}(h%pointer of DAI, or NULL if not found.h]h%pointer of DAI, or NULL if not found.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj>subeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_remove_pcm_runtime (C function)c.snd_soc_remove_pcm_runtimehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h\void snd_soc_remove_pcm_runtime (struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h]h)}(h[void snd_soc_remove_pcm_runtime(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](h)}(hvoidh]hvoid}(hj thhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjthhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMsubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjthhhjthMsubj)}(hsnd_soc_remove_pcm_runtimeh]j%)}(hsnd_soc_remove_pcm_runtimeh]hsnd_soc_remove_pcm_runtime}(hj+thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjthhhjthMsubj@)}(h<(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjGthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCtubj)}(h h]h }(hjTthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCtubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjethhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgtmodnameN classnameNjj)}j]j)}jj-tsbc.snd_soc_remove_pcm_runtimeasbuh1hhjCtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCtubj%)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?tubjF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jtc.snd_soc_remove_pcm_runtimeasbuh1hhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hrtdh]hrtd}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?tubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjthhhjthMsubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjthhhjthMsubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthMshjshhubjb)}(hhh]jg)}(hRemove a pcm_runtime from cardh]hRemove a pcm_runtime from card}(hj:uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmhj7uhhubah}(h]h ]h"]h$]h&]uh1jahjshhhjthMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRujjRujjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime has ``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove **Description** This function removes a pcm_runtime from the ASoC card.h](jg)}(h**Parameters**h]j)}(hj\uh]h Parameters}(hj^uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhjVuubj)}(hhh](j)}(hI``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime has h](j)}(h``struct snd_soc_card *card``h]j)}(hj{uh]hstruct snd_soc_card *card}(hj}uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMnhjuuubj)}(hhh]jg)}(h*The ASoC card to which the pcm_runtime hash]h*The ASoC card to which the pcm_runtime has}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMnhjuubah}(h]h ]h"]h$]h&]uh1jhjuuubeh}(h]h ]h"]h$]h&]uh1jhjuhMnhjruubj)}(h>``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjuh]hstruct snd_soc_pcm_runtime *rtd}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMohjuubj)}(hhh]jg)}(hThe pcm_runtime to removeh]hThe pcm_runtime to remove}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMohjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMohjruubeh}(h]h ]h"]h$]h&]uh1jhjVuubjg)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhjVuubjg)}(h7This function removes a pcm_runtime from the ASoC card.h]h7This function removes a pcm_runtime from the ASoC card.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhjVuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_add_pcm_runtime (C function)c.snd_soc_add_pcm_runtimehNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_add_pcm_runtime (struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h]h)}(hYint snd_soc_add_pcm_runtime(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](h)}(hinth]hint}(hj4vhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0vhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjCvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0vhhhjBvhMubj)}(hsnd_soc_add_pcm_runtimeh]j%)}(hsnd_soc_add_pcm_runtimeh]hsnd_soc_add_pcm_runtime}(hjUvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0vhhhjBvhMubj@)}(h>(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjqvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmvubj)}(h h]h }(hj~vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmvubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jjWvsbc.snd_soc_add_pcm_runtimeasbuh1hhjmvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmvubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmvubj%)}(hcardh]hcard}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjivubjF)}(h!struct snd_soc_dai_link *dai_linkh](jL)}(hjOh]hstruct}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(hsnd_soc_dai_linkh]hsnd_soc_dai_link}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jvc.snd_soc_add_pcm_runtimeasbuh1hhjvubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hj-whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hdai_linkh]hdai_link}(hj:whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjivubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0vhhhjBvhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,vhhhjBvhMubah}(h]j'vah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBvhMhj)vhhubjb)}(hhh]jg)}(h*Add a pcm_runtime dynamically via dai_linkh]h*Add a pcm_runtime dynamically via dai_link}(hjdwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjawhhubah}(h]h ]h"]h$]h&]uh1jahj)vhhhjBvhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|wjj|wjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime is added ``struct snd_soc_dai_link *dai_link`` The DAI link to find pcm_runtime **Description** This function adds a pcm_runtime ASoC card by using dai_link. **Note** Topology can use this API to add pcm_runtime when probing the topology component. And machine drivers can still define static DAI links in dai_link array.h](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubj)}(hhh](j)}(hN``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime is added h](j)}(h``struct snd_soc_card *card``h]j)}(hjwh]hstruct snd_soc_card *card}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubj)}(hhh]jg)}(h/The ASoC card to which the pcm_runtime is addedh]h/The ASoC card to which the pcm_runtime is added}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjwubj)}(hG``struct snd_soc_dai_link *dai_link`` The DAI link to find pcm_runtime h](j)}(h%``struct snd_soc_dai_link *dai_link``h]j)}(hjwh]h!struct snd_soc_dai_link *dai_link}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubj)}(hhh]jg)}(h The DAI link to find pcm_runtimeh]h The DAI link to find pcm_runtime}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjwubeh}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h**Description**h]j)}(hjxh]h Description}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(h=This function adds a pcm_runtime ASoC card by using dai_link.h]h=This function adds a pcm_runtime ASoC card by using dai_link.}(hj/xhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(h**Note**h]j)}(hj@xh]hNote}(hjBxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>xubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(hTopology can use this API to add pcm_runtime when probing the topology component. And machine drivers can still define static DAI links in dai_link array.h]hTopology can use this API to add pcm_runtime when probing the topology component. And machine drivers can still define static DAI links in dai_link array.}(hjVxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_runtime_set_dai_fmt (C function)c.snd_soc_runtime_set_dai_fmthNtauh1hhj&phhhNhNubh)}(hhh](h)}(hWint snd_soc_runtime_set_dai_fmt (struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h]h)}(hVint snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhjxhMubj)}(hsnd_soc_runtime_set_dai_fmth]j%)}(hsnd_soc_runtime_set_dai_fmth]hsnd_soc_runtime_set_dai_fmt}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhjxhMubj@)}(h7(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jjxsbc.snd_soc_runtime_set_dai_fmtasbuh1hhjxubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hrtdh]hrtd}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hunsigned int dai_fmth](h)}(hunsignedh]hunsigned}(hj4yhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0yubj)}(h h]h }(hjByhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0yubh)}(hinth]hint}(hjPyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0yubj)}(h h]h }(hj^yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0yubj%)}(hdai_fmth]hdai_fmt}(hjlyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0yubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhjxhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}xhhhjxhMubah}(h]jxxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhMhjzxhhubjb)}(hhh]jg)}(h)Change DAI link format for a ASoC runtimeh]h)Change DAI link format for a ASoC runtime}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyhhubah}(h]h ]h"]h$]h&]uh1jahjzxhhhjxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The runtime for which the DAI link format should be changed ``unsigned int dai_fmt`` The new DAI link format **Description** This function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime. Returns 0 on success, otherwise a negative error code. **Note** For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function.h](jg)}(h**Parameters**h]j)}(hjyh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj)}(hhh](j)}(h```struct snd_soc_pcm_runtime *rtd`` The runtime for which the DAI link format should be changed h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjyh]hstruct snd_soc_pcm_runtime *rtd}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj)}(hhh]jg)}(h;The runtime for which the DAI link format should be changedh]h;The runtime for which the DAI link format should be changed}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjyubj)}(h1``unsigned int dai_fmt`` The new DAI link format h](j)}(h``unsigned int dai_fmt``h]j)}(hjzh]hunsigned int dai_fmt}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj zubj)}(hhh]jg)}(hThe new DAI link formath]hThe new DAI link format}(hj)zhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%zhMhj&zubah}(h]h ]h"]h$]h&]uh1jhj zubeh}(h]h ]h"]h$]h&]uh1jhj%zhMhjyubeh}(h]h ]h"]h$]h&]uh1jhjyubjg)}(h**Description**h]j)}(hjKzh]h Description}(hjMzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIzubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubjg)}(hkThis function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime.h]hkThis function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime.}(hjazhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(hjpzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubjg)}(h**Note**h]j)}(hjzh]hNote}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubjg)}(h~For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function.h]h~For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_set_dmi_name (C function)c.snd_soc_set_dmi_namehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h4int snd_soc_set_dmi_name (struct snd_soc_card *card)h]h)}(h3int snd_soc_set_dmi_name(struct snd_soc_card *card)h](h)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM~ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzhhhjzhM~ubj)}(hsnd_soc_set_dmi_nameh]j%)}(hsnd_soc_set_dmi_nameh]hsnd_soc_set_dmi_name}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjzhhhjzhM~ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hj{hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj!{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#{modnameN classnameNjj)}j]j)}jjzsbc.snd_soc_set_dmi_nameasbuh1hhjzubj)}(h h]h }(hjA{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjO{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hcardh]hcard}(hj\{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubah}(h]h ]h"]h$]h&]j=j>uh1j?hjzhhhjzhM~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjzhM~ubah}(h]jzah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzhM~hjzhhubjb)}(hhh]jg)}(hRegister DMI names to cardh]hRegister DMI names to card}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMahj{hhubah}(h]h ]h"]h$]h&]uh1jahjzhhhjzhM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_card *card`` The card to register DMI names **Description** An Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of "vendor-product-version-board" (Character '-' is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card. Possible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAX This function also supports flavoring the card longname to provide the extra differentiation, like "vendor-product-version-board-flavor". We only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE. Returns 0 on success, otherwise a negative error code.h](jg)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMehj{ubj)}(hhh]j)}(h=``struct snd_soc_card *card`` The card to register DMI names h](j)}(h``struct snd_soc_card *card``h]j)}(hj{h]hstruct snd_soc_card *card}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMbhj{ubj)}(hhh]jg)}(hThe card to register DMI namesh]hThe card to register DMI names}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMbhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMbhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubjg)}(h**Description**h]j)}(hj|h]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMdhj{ubjg)}(hXXAn Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of "vendor-product-version-board" (Character '-' is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card.h]hX`An Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of “vendor-product-version-board” (Character ‘-’ is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMdhj{ubjg)}(hPossible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAXh]hPossible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAX}(hj'|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMohj{ubjg)}(hThis function also supports flavoring the card longname to provide the extra differentiation, like "vendor-product-version-board-flavor".h]hThis function also supports flavoring the card longname to provide the extra differentiation, like “vendor-product-version-board-flavor”.}(hj6|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMthj{ubjg)}(hWe only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE.h]hWe only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE.}(hjE|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMwhj{ubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(hjT|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM|hj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_cnew (C function)c.snd_soc_cnewhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hstruct snd_kcontrol * snd_soc_cnew (const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h]h)}(hstruct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](jL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMV ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hMV ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}j snd_soc_cnewsbc.snd_soc_cnewasbuh1hhj|hhhj|hMV ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hMV ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|hhhj|hMV ubj)}(h snd_soc_cnewh]j%)}(hj|h]h snd_soc_cnew}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj|hhhj|hMV ubj@)}(ha(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](jF)}(h(const struct snd_kcontrol_new *_templateh](jL)}(hj\h]hconst}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj }hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubjL)}(hjOh]hstruct}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj%}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hj6}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8}modnameN classnameNjj)}j]j|c.snd_soc_cnewasbuh1hhj|ubj)}(h h]h }(hjT}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjb}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(h _templateh]h _template}(hjo}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hdatah]hdata}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hconst char *long_nameh](jL)}(hj\h]hconst}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hcharh]hchar}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(h long_nameh]h long_name}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hconst char *prefixh](jL)}(hj\h]hconst}(hj'~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#~ubj)}(h h]h }(hj4~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#~ubh)}(hcharh]hchar}(hjB~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#~ubj)}(h h]h }(hjP~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#~ubj)}(hjh]h*}(hj^~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#~ubj%)}(hprefixh]hprefix}(hjk~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj|hhhj|hMV ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{|hhhj|hMV ubah}(h]jv|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hMV hjx|hhubjb)}(hhh]jg)}(hcreate new controlh]hcreate new control}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chML hj~hhubah}(h]h ]h"]h$]h&]uh1jahjx|hhhj|hMV ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~jj~jjjuh1hhhhj&phNhNubj)}(hX=**Parameters** ``const struct snd_kcontrol_new *_template`` control template ``void *data`` control private data ``const char *long_name`` control long name ``const char *prefix`` control name prefix **Description** Create a new mixer control from a template control. Returns 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hj~h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMP hj~ubj)}(hhh](j)}(h>``const struct snd_kcontrol_new *_template`` control template h](j)}(h,``const struct snd_kcontrol_new *_template``h]j)}(hj~h]h(const struct snd_kcontrol_new *_template}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMM hj~ubj)}(hhh]jg)}(hcontrol templateh]hcontrol template}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hMM hj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMM hj~ubj)}(h$``void *data`` control private data h](j)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMN hj ubj)}(hhh]jg)}(hcontrol private datah]hcontrol private data}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMN hj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hMN hj~ubj)}(h,``const char *long_name`` control long name h](j)}(h``const char *long_name``h]j)}(hjHh]hconst char *long_name}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMO hjBubj)}(hhh]jg)}(hcontrol long nameh]hcontrol long name}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hMO hj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMO hj~ubj)}(h+``const char *prefix`` control name prefix h](j)}(h``const char *prefix``h]j)}(hjh]hconst char *prefix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMP hj{ubj)}(hhh]jg)}(hcontrol name prefixh]hcontrol name prefix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMP hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMP hj~ubeh}(h]h ]h"]h$]h&]uh1jhj~ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMR hj~ubjg)}(h3Create a new mixer control from a template control.h]h3Create a new mixer control from a template control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMR hj~ubjg)}(h"Returns 0 for success, else error.h]h"Returns 0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMT hj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_add_component_controls (C function) c.snd_soc_add_component_controlshNtauh1hhj&phhhNhNubh)}(hhh](h)}(hint snd_soc_add_component_controls (struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h]h)}(hint snd_soc_add_component_controls(struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhM ubj)}(hsnd_soc_add_component_controlsh]j%)}(hsnd_soc_add_component_controlsh]hsnd_soc_add_component_controls}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhM ubj@)}(hi(struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sb c.snd_soc_add_component_controlsasbuh1hhjIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj̀hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjڀhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.snd_soc_add_component_controlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hunsigned int num_controlsh](h)}(hunsignedh]hunsigned}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(h num_controlsh]h num_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h(Add an array of controls to a component.h]h(Add an array of controls to a component.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjājjājjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to add controls to ``const struct snd_kcontrol_new *controls`` Array of controls to add ``unsigned int num_controls`` Number of elements in the array **Return** 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hj΁h]h Parameters}(hjЁhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj́ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjȁubj)}(hhh](j)}(hE``struct snd_soc_component *component`` Component to add controls to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hComponent to add controls toh]hComponent to add controls to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hE``const struct snd_kcontrol_new *controls`` Array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hj&h]h'const struct snd_kcontrol_new *controls}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj ubj)}(hhh]jg)}(hArray of controls to addh]hArray of controls to add}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hM hj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hM hjubj)}(h>``unsigned int num_controls`` Number of elements in the array h](j)}(h``unsigned int num_controls``h]j)}(hj_h]hunsigned int num_controls}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjYubj)}(hhh]jg)}(hNumber of elements in the arrayh]hNumber of elements in the array}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthM hjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthM hjubeh}(h]h ]h"]h$]h&]uh1jhjȁubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjȁubjg)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjȁubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_add_card_controls (C function)c.snd_soc_add_card_controlshNtauh1hhj&phhhNhNubh)}(hhh](h)}(hxint snd_soc_add_card_controls (struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h]h)}(hwint snd_soc_add_card_controls(struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h](h)}(hinth]hint}(hj߂hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjۂhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjۂhhhjhM ubj)}(hsnd_soc_add_card_controlsh]j%)}(hsnd_soc_add_card_controlsh]hsnd_soc_add_card_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjۂhhhjhM ubj@)}(hZ(struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h](jF)}(hstruct snd_soc_card *soc_cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.snd_soc_add_card_controlsasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hsoc_cardh]hsoc_card}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjǃhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjăubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjɃmodnameN classnameNjj)}j]jVc.snd_soc_add_card_controlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint num_controlsh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h num_controlsh]h num_controls}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjۂhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjׂhhhjhM ubah}(h]j҂ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjԂhhubjb)}(hhh]jg)}(hWadd an array of controls to a SoC card. Convenience function to add a list of controls.h]hWadd an array of controls to a SoC card. Convenience function to add a list of controls.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj\hhubah}(h]h ]h"]h$]h&]uh1jahjԂhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_card *soc_card`` SoC card to add controls to ``const struct snd_kcontrol_new *controls`` array of controls to add ``int num_controls`` number of elements in the array **Description** Return 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj{ubj)}(hhh](j)}(h>``struct snd_soc_card *soc_card`` SoC card to add controls to h](j)}(h!``struct snd_soc_card *soc_card``h]j)}(hjh]hstruct snd_soc_card *soc_card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hSoC card to add controls toh]hSoC card to add controls to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjلh]h'const struct snd_kcontrol_new *controls}(hjۄhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjׄubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjӄubj)}(hhh]jg)}(harray of controls to addh]harray of controls to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjӄubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hjh]hint num_controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj ubj)}(hhh]jg)}(hnumber of elements in the arrayh]hnumber of elements in the array}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hM hj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hM hjubeh}(h]h ]h"]h$]h&]uh1jhj{ubjg)}(h**Description**h]j)}(hjMh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj{ubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_add_dai_controls (C function)c.snd_soc_add_dai_controlshNtauh1hhj&phhhNhNubh)}(hhh](h)}(hqint snd_soc_add_dai_controls (struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h]h)}(hpint snd_soc_add_dai_controls(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_add_dai_controlsh]j%)}(hsnd_soc_add_dai_controlsh]hsnd_soc_add_dai_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hT(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](jF)}(hstruct snd_soc_dai *daih](jL)}(hjOh]hstruct}(hjυhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj˅ubj)}(h h]h }(hj܅hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj˅ubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_add_dai_controlsasbuh1hhj˅ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj˅ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˅ubj%)}(hdaih]hdai}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj˅ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDžubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubjL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j c.snd_soc_add_dai_controlsasbuh1hhj=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDžubjF)}(hint num_controlsh](h)}(hinth]hint}(hj̆hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjȆubj)}(h h]h }(hjچhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjȆubj%)}(h num_controlsh]h num_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjȆubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDžubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hRadd an array of controls to a DAI. Convenience function to add a list of controls.h]hRadd an array of controls to a DAI. Convenience function to add a list of controls.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_dai *dai`` DAI to add controls to ``const struct snd_kcontrol_new *controls`` array of controls to add ``int num_controls`` number of elements in the array **Description** Return 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj.ubj)}(hhh](j)}(h3``struct snd_soc_dai *dai`` DAI to add controls to h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjSh]hstruct snd_soc_dai *dai}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjMubj)}(hhh]jg)}(hDAI to add controls toh]hDAI to add controls to}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjJubj)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjh]h'const struct snd_kcontrol_new *controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(harray of controls to addh]harray of controls to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjJubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hjŇh]hint num_controls}(hjLJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjÇubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hnumber of elements in the arrayh]hnumber of elements in the array}(hjއhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjڇhM hjۇubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjڇhM hjJubeh}(h]h ]h"]h$]h&]uh1jhj.ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj.ubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_card (C function)c.snd_soc_register_cardhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h5int snd_soc_register_card (struct snd_soc_card *card)h]h)}(h4int snd_soc_register_card(struct snd_soc_card *card)h](h)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhjShM ubj)}(hsnd_soc_register_cardh]j%)}(hsnd_soc_register_cardh]hsnd_soc_register_card}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhjShM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_soc_register_cardasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjΈhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(hcardh]hcard}(hjۈhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubah}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhjShM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=hhhjShM ubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShM hj:hhubjb)}(hhh]jg)}(h"Register a card with the ASoC coreh]h"Register a card with the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahj:hhhjShM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h@**Parameters** ``struct snd_soc_card *card`` Card to registerh](jg)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj!ubj)}(hhh]j)}(h.``struct snd_soc_card *card`` Card to registerh](j)}(h``struct snd_soc_card *card``h]j)}(hjFh]hstruct snd_soc_card *card}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj@ubj)}(hhh]jg)}(hCard to registerh]hCard to register}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hM hj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_card (C function)c.snd_soc_unregister_cardhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h8void snd_soc_unregister_card (struct snd_soc_card *card)h]h)}(h7void snd_soc_unregister_card(struct snd_soc_card *card)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_unregister_cardh]j%)}(hsnd_soc_unregister_cardh]hsnd_soc_unregister_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hj݉hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjىubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjىubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjÉsbc.snd_soc_unregister_cardasbuh1hhjىubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjىubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjىubj%)}(hcardh]hcard}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjىubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjՉubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h$Unregister a card with the ASoC coreh]h$Unregister a card with the ASoC core}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj]hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1hhhhj&phNhNubj)}(hB**Parameters** ``struct snd_soc_card *card`` Card to unregisterh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj|ubj)}(hhh]j)}(h0``struct snd_soc_card *card`` Card to unregisterh](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hCard to unregisterh]hCard to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_register_dai (C function)c.snd_soc_register_daihNtauh1hhj&phhhNhNubh)}(hhh](h)}(hstruct snd_soc_dai * snd_soc_register_dai (struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h]h)}(hstruct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chME ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhME ubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_register_daisbc.snd_soc_register_daiasbuh1hhjhhhjhME ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhME ubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhME ubj)}(hsnd_soc_register_daih]j%)}(hj8h]hsnd_soc_register_dai}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhME ubj@)}(ha(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.snd_soc_register_daiasbuh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj%)}(h componenth]h component}(hj̋hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(h"struct snd_soc_dai_driver *dai_drvh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.snd_soc_register_daiasbuh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(hbool legacy_dai_namingh](h)}(hjԜh]hbool}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj%)}(hlegacy_dai_namingh]hlegacy_dai_naming}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhME ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhME ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhME hjhhubjb)}(hhh]jg)}(h/Register a DAI dynamically & create its widgetsh]h/Register a DAI dynamically & create its widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM: hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhME ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` The component the DAIs are registered for ``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAI ``bool legacy_dai_naming`` if ``true``, use legacy single-name format; if ``false``, use multiple-name format; **Description** Topology can use this API to register DAIs when probing a component. These DAIs's widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM> hjubj)}(hhh](j)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hjیh]h#struct snd_soc_component *component}(hj݌hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjٌubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM< hjՌubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM< hjubah}(h]h ]h"]h$]h&]uh1jhjՌubeh}(h]h ]h"]h$]h&]uh1jhjhM< hjҌubj)}(hE``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAI h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjh]h"struct snd_soc_dai_driver *dai_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM= hjubj)}(hhh]jg)}(hDAI driver to use for the DAIh]hDAI driver to use for the DAI}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hM= hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hM= hjҌubj)}(ho``bool legacy_dai_naming`` if ``true``, use legacy single-name format; if ``false``, use multiple-name format; h](j)}(h``bool legacy_dai_naming``h]j)}(hjMh]hbool legacy_dai_naming}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM? hjGubj)}(hhh]jg)}(hSif ``true``, use legacy single-name format; if ``false``, use multiple-name format;h](hif }(hjfhhhNhNubj)}(h``true``h]htrue}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh$, use legacy single-name format; if }(hjfhhhNhNubj)}(h ``false``h]hfalse}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh, use multiple-name format;}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM> hjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhM? hjҌubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMA hjubjg)}(hTopology can use this API to register DAIs when probing a component. These DAIs's widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.h]hTopology can use this API to register DAIs when probing a component. These DAIs’s widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.}(hjÍhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMA hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_dais (C function)c.snd_soc_unregister_daishNtauh1hhj&phhhNhNubh)}(hhh](h)}(hBvoid snd_soc_unregister_dais (struct snd_soc_component *component)h]h)}(hAvoid snd_soc_unregister_dais(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMy ubj)}(hsnd_soc_unregister_daish]j%)}(hsnd_soc_unregister_daish]hsnd_soc_unregister_dais}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMy ubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_unregister_daisasbuh1hhj+ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMy ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMy ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMy hjhhubjb)}(hhh]jg)}(h"Unregister DAIs from the ASoC coreh]h"Unregister DAIs from the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMy ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjʎjjʎjjjuh1hhhhj&phNhNubj)}(hq**Parameters** ``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](jg)}(h**Parameters**h]j)}(hjԎh]h Parameters}(hj֎hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjҎubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hjΎubj)}(hhh]j)}(h_``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM{ hjubj)}(hhh]jg)}(h7The component for which the DAIs should be unregisteredh]h7The component for which the DAIs should be unregistered}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMw hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hjubah}(h]h ]h"]h$]h&]uh1jhjΎubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_dais (C function)c.snd_soc_register_daishNtauh1hhj&phhhNhNubh)}(hhh](h)}(hqint snd_soc_register_dais (struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h]h)}(hpint snd_soc_register_dais(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h](h)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhj[hM ubj)}(hsnd_soc_register_daish]j%)}(hsnd_soc_register_daish]hsnd_soc_register_dais}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhj[hM ubj@)}(hW(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjpsbc.snd_soc_register_daisasbuh1hhjubj)}(h h]h }(hjȏhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj֏hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_soc_dai_driver *dai_drvh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jďc.snd_soc_register_daisasbuh1hhjubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jďc.snd_soc_register_daisasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhj[hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhj[hM ubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hM hjBhhubjb)}(hhh]jg)}(h!Register a DAI with the ASoC coreh]h!Register a DAI with the ASoC core}(hjŐhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjBhhhj[hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjݐjjݐjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` The component the DAIs are registered for ``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAIs ``size_t count`` Number of DAIsh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hF``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAIs h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hj?h]h"struct snd_soc_dai_driver *dai_drv}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj9ubj)}(hhh]jg)}(hDAI driver to use for the DAIsh]hDAI driver to use for the DAIs}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM hjubj)}(h``size_t count`` Number of DAIsh](j)}(h``size_t count``h]j)}(hjxh]h size_t count}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjrubj)}(hhh]jg)}(hNumber of DAIsh]hNumber of DAIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_unregister_component_by_driver (C function)(c.snd_soc_unregister_component_by_driverhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hyvoid snd_soc_unregister_component_by_driver (struct device *dev, const struct snd_soc_component_driver *component_driver)h]h)}(hxvoid snd_soc_unregister_component_by_driver(struct device *dev, const struct snd_soc_component_driver *component_driver)h](h)}(hvoidh]hvoid}(hjґhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjΑhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMA ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΑhhhjhMA ubj)}(h&snd_soc_unregister_component_by_driverh]j%)}(h&snd_soc_unregister_component_by_driverh]h&snd_soc_unregister_component_by_driver}(hjhhmhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjΑhhhjhMA ubj@)}(hM(struct device *dev, const struct snd_soc_component_driver *component_driver)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjsb(c.snd_soc_unregister_component_by_driverasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hdevh]hdev}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h7const struct snd_soc_component_driver *component_driverh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(hsnd_soc_component_driverh]hsnd_soc_component_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jI(c.snd_soc_unregister_component_by_driverasbuh1hhj}ubj)}(h h]h }(hjؒhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hcomponent_driverh]hcomponent_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjΑhhhjhMA ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjʑhhhjhMA ubah}(h]jőah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMA hjǑhhubjb)}(hhh]jg)}(h hjXubj)}(hhh]jg)}(hThe device to unregisterh]hThe device to unregister}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM> hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshM> hjUubj)}(h^``const struct snd_soc_component_driver *component_driver`` The component driver to unregisterh](j)}(h;``const struct snd_soc_component_driver *component_driver``h]j)}(hjh]h7const struct snd_soc_component_driver *component_driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM@ hjubj)}(hhh]jg)}(h"The component driver to unregisterh]h"The component driver to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM? hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM@ hjUubeh}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_unregister_component (C function)c.snd_soc_unregister_componenthNtauh1hhj&phhhNhNubh)}(hhh](h)}(h6void snd_soc_unregister_component (struct device *dev)h]h)}(h5void snd_soc_unregister_component(struct device *dev)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM[ ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM[ ubj)}(hsnd_soc_unregister_componenth]j%)}(hsnd_soc_unregister_componenth]hsnd_soc_unregister_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM[ ubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_unregister_componentasbuh1hhj*ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM[ ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM[ ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM[ hjhhubjb)}(hhh]jg)}(h3Unregister all related component from the ASoC coreh]h3Unregister all related component from the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMV hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM[ ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjɔjjɔjjjuh1hhhhj&phNhNubj)}(hA**Parameters** ``struct device *dev`` The device to unregisterh](jg)}(h**Parameters**h]j)}(hjӔh]h Parameters}(hjՔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjєubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMZ hj͔ubj)}(hhh]j)}(h/``struct device *dev`` The device to unregisterh](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM\ hjubj)}(hhh]jg)}(hThe device to unregisterh]hThe device to unregister}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMY hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM\ hjubah}(h]h ]h"]h$]h&]uh1jhj͔ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_soc_register_component (C function)!c.devm_snd_soc_register_componenthNtauh1hhj&phhhNhNubh)}(hhh](h)}(hint devm_snd_soc_register_component (struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h]h)}(hint devm_snd_soc_register_component(struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h](h)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhKubj)}(hdevm_snd_soc_register_componenth]j%)}(hdevm_snd_soc_register_componenth]hdevm_snd_soc_register_component}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhKubj@)}(hw(struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjosb!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjǕhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjՕhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h0const struct snd_soc_component_driver *cmpnt_drvh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_component_driverh]hsnd_soc_component_driver}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]jÕ!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h cmpnt_drvh]h cmpnt_drv}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_soc_dai_driver *dai_drvh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jÕ!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hj–hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjЖhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjݖhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int num_daih](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnum_daih]hnum_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjZhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjZhKubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhKhjAhhubjb)}(hhh]jg)}(h'resource managed component registrationh]h'resource managed component registration}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj9hhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhj&phNhNubj)}(hXZ**Parameters** ``struct device *dev`` Device used to manage component ``const struct snd_soc_component_driver *cmpnt_drv`` Component driver ``struct snd_soc_dai_driver *dai_drv`` DAI driver ``int num_dai`` Number of DAIs to register **Description** Register a component with automatic unregistration when the device is unregistered.h](jg)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjXubj)}(hhh](j)}(h7``struct device *dev`` Device used to manage component h](j)}(h``struct device *dev``h]j)}(hj}h]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjwubj)}(hhh]jg)}(hDevice used to manage componenth]hDevice used to manage component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhKhjtubj)}(hF``const struct snd_soc_component_driver *cmpnt_drv`` Component driver h](j)}(h4``const struct snd_soc_component_driver *cmpnt_drv``h]j)}(hjh]h0const struct snd_soc_component_driver *cmpnt_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(hhh]jg)}(hComponent driverh]hComponent driver}(hjϗhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj˗hKhj̗ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj˗hKhjtubj)}(h2``struct snd_soc_dai_driver *dai_drv`` DAI driver h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjh]h"struct snd_soc_dai_driver *dai_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(hhh]jg)}(h DAI driverh]h DAI driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjtubj)}(h+``int num_dai`` Number of DAIs to register h](j)}(h``int num_dai``h]j)}(hj(h]h int num_dai}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj"ubj)}(hhh]jg)}(hNumber of DAIs to registerh]hNumber of DAIs to register}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hKhjtubeh}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hjch]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjXubjg)}(hSRegister a component with automatic unregistration when the device is unregistered.h]hSRegister a component with automatic unregistration when the device is unregistered.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'devm_snd_soc_register_card (C function)c.devm_snd_soc_register_cardhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hNint devm_snd_soc_register_card (struct device *dev, struct snd_soc_card *card)h]h)}(hMint devm_snd_soc_register_card(struct device *dev, struct snd_soc_card *card)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKAubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKAubj)}(hdevm_snd_soc_register_cardh]j%)}(hdevm_snd_soc_register_cardh]hdevm_snd_soc_register_card}(hjɘhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjŘubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKAubj@)}(h/(struct device *dev, struct snd_soc_card *card)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj˘sbc.devm_snd_soc_register_cardasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjݘubjF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jc.devm_snd_soc_register_cardasbuh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjݘubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKAubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKAubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKAhjhhubjb)}(hhh]jg)}(h"resource managed card registrationh]h"resource managed card registration}(hjؙhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK:hjՙhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKAubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct device *dev`` Device used to manage card ``struct snd_soc_card *card`` Card to register **Description** Register a card with automatic unregistration when the device is unregistered.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK>hjubj)}(hhh](j)}(h2``struct device *dev`` Device used to manage card h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK;hjubj)}(hhh]jg)}(hDevice used to manage cardh]hDevice used to manage card}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hK;hj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hK;hjubj)}(h/``struct snd_soc_card *card`` Card to register h](j)}(h``struct snd_soc_card *card``h]j)}(hjRh]hstruct snd_soc_card *card}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubjg)}(hNRegister a card with automatic unregistration when the device is unregistered.h]hNRegister a card with automatic unregistration when the device is unregistered.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_dmaengine_pcm_register (C function)!c.devm_snd_dmaengine_pcm_registerhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h{int devm_snd_dmaengine_pcm_register (struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h]h)}(hzint devm_snd_dmaengine_pcm_register(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](h)}(hinth]hint}(hjҚhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjΚhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKfubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΚhhhjhKfubj)}(hdevm_snd_dmaengine_pcm_registerh]j%)}(hdevm_snd_dmaengine_pcm_registerh]hdevm_snd_dmaengine_pcm_register}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjΚhhhjhKfubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjsb!c.devm_snd_dmaengine_pcm_registerasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hdevh]hdev}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h-const struct snd_dmaengine_pcm_config *configh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jI!c.devm_snd_dmaengine_pcm_registerasbuh1hhj}ubj)}(h h]h }(hj؛hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hconfigh]hconfig}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hflagsh]hflags}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjΚhhhjhKfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjʚhhhjhKfubah}(h]jŚah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKfhjǚhhubjb)}(hhh]jg)}(h+resource managed dmaengine PCM registrationh]h+resource managed dmaengine PCM registration}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK^hjkhhubah}(h]h ]h"]h$]h&]uh1jahjǚhhhjhKfubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hXP**Parameters** ``struct device *dev`` The parent device for the PCM device ``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration ``unsigned int flags`` Platform specific quirks **Description** Register a dmaengine based PCM device with automatic unregistration when the device is unregistered.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKbhjubj)}(hhh](j)}(h<``struct device *dev`` The parent device for the PCM device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK_hjubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hjȜhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjĜhK_hjŜubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjĜhK_hjubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjh]h-const struct snd_dmaengine_pcm_config *config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK`hjubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK`hjubj)}(h0``unsigned int flags`` Platform specific quirks h](j)}(h``unsigned int flags``h]j)}(hj!h]hunsigned int flags}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKahjubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hKahj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hKahjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj\h]h Description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKchjubjg)}(hdRegister a dmaengine based PCM device with automatic unregistration when the device is unregistered.h]hdRegister a dmaengine based PCM device with automatic unregistration when the device is unregistered.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKchjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_set_sysclk (C function)c.snd_soc_component_set_sysclkhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hzint snd_soc_component_set_sysclk (struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h]h)}(hyint snd_soc_component_set_sysclk(struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKNubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKNubj)}(hsnd_soc_component_set_sysclkh]j%)}(hsnd_soc_component_set_sysclkh]hsnd_soc_component_set_sysclk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKNubj@)}(hY(struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjޝhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjڝubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjڝubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjĝsbc.snd_soc_component_set_sysclkasbuh1hhjڝubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjڝubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjڝubj%)}(h componenth]h component}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjڝubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj֝ubjF)}(h int clk_idh](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj%)}(hclk_idh]hclk_id}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj֝ubjF)}(h int sourceh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsourceh]hsource}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj֝ubjF)}(hunsigned int freqh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjȞhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj֞hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfreqh]hfreq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj֝ubjF)}(hint dirh](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hdirh]hdir}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj֝ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKNubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKNhjhhubjb)}(hhh]jg)}(h+configure COMPONENT system or master clock.h]h+configure COMPONENT system or master clock.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKEhjNhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKNubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhj&phNhNubj)}(hXJ**Parameters** ``struct snd_soc_component *component`` COMPONENT ``int clk_id`` DAI specific clock ID ``int source`` Source for the clock ``unsigned int freq`` new clock frequency in Hz ``int dir`` new clock direction - input/output. **Description** Configures the CODEC master (MCLK) or system (SYSCLK) clocking.h](jg)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKIhjmubj)}(hhh](j)}(h2``struct snd_soc_component *component`` COMPONENT h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKFhjubj)}(hhh]jg)}(h COMPONENTh]h COMPONENT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjubj)}(h%``int clk_id`` DAI specific clock ID h](j)}(h``int clk_id``h]j)}(hj˟h]h int clk_id}(hj͟hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɟubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKGhjşubj)}(hhh]jg)}(hDAI specific clock IDh]hDAI specific clock ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKGhjubah}(h]h ]h"]h$]h&]uh1jhjşubeh}(h]h ]h"]h$]h&]uh1jhjhKGhjubj)}(h$``int source`` Source for the clock h](j)}(h``int source``h]j)}(hjh]h int source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKHhjubj)}(hhh]jg)}(hSource for the clockh]hSource for the clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjubj)}(h0``unsigned int freq`` new clock frequency in Hz h](j)}(h``unsigned int freq``h]j)}(hj=h]hunsigned int freq}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKIhj7ubj)}(hhh]jg)}(hnew clock frequency in Hzh]hnew clock frequency in Hz}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhKIhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhKIhjubj)}(h0``int dir`` new clock direction - input/output. h](j)}(h ``int dir``h]j)}(hjvh]hint dir}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKJhjpubj)}(hhh]jg)}(h#new clock direction - input/output.h]h#new clock direction - input/output.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubeh}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjmubjg)}(h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.h]h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.}(hjǠhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_component_set_jack (C function)c.snd_soc_component_set_jackhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hkint snd_soc_component_set_jack (struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h]h)}(hjint snd_soc_component_set_jack(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_set_jackh]j%)}(hsnd_soc_component_set_jackh]hsnd_soc_component_set_jack}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hL(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_set_jackasbuh1hhj/ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+ubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjáhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjšmodnameN classnameNjj)}j]jmc.snd_soc_component_set_jackasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjackh]hjack}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+ubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdatah]hdata}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hconfigure component jack.h]hconfigure component jack.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjehhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` COMPONENTs ``struct snd_soc_jack *jack`` structure to use for the jack ``void *data`` can be used if codec driver need extra data for configuring jack **Description** Configures and enables jack detection function.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh](j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hj¢hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h<``struct snd_soc_jack *jack`` structure to use for the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjh]hstruct snd_soc_jack *jack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjܢubj)}(hhh]jg)}(hstructure to use for the jackh]hstructure to use for the jack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjܢubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hP``void *data`` can be used if codec driver need extra data for configuring jack h](j)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh]jg)}(h@can be used if codec driver need extra data for configuring jackh]h@can be used if codec driver need extra data for configuring jack}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hM hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjVh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h/Configures and enables jack detection function.h]h/Configures and enables jack detection function.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_component_get_jack_type (C function)!c.snd_soc_component_get_jack_typehNtauh1hhj&phhhNhNubh)}(hhh](h)}(hIint snd_soc_component_get_jack_type (struct snd_soc_component *component)h]h)}(hHint snd_soc_component_get_jack_type(struct snd_soc_component *component)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM$ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM$ubj)}(hsnd_soc_component_get_jack_typeh]j%)}(hsnd_soc_component_get_jack_typeh]hsnd_soc_component_get_jack_type}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM$ubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjأhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjԣubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԣubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb!c.snd_soc_component_get_jack_typeasbuh1hhjԣubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԣubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԣubj%)}(h componenth]h component}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjԣubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjУubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM$ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM$ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM$hjhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjhhhjhM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` COMPONENTs **Description** Returns the jack type of the component This can either be the supported type or one read from devicetree with the property: jack-type.h](jg)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjhubj)}(hhh]j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjȤh]h Description}(hjʤhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƤubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjhubjg)}(hReturns the jack type of the component This can either be the supported type or one read from devicetree with the property: jack-type.h]hReturns the jack type of the component This can either be the supported type or one read from devicetree with the property: jack-type.}(hjޤhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_init_regmap (C function)c.snd_soc_component_init_regmaphNtauh1hhj&phhhNhNubh)}(hhh](h)}(h_void snd_soc_component_init_regmap (struct snd_soc_component *component, struct regmap *regmap)h]h)}(h^void snd_soc_component_init_regmap(struct snd_soc_component *component, struct regmap *regmap)h](h)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_soc_component_init_regmaph]j%)}(hsnd_soc_component_init_regmaph]hsnd_soc_component_init_regmap}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(h<(struct snd_soc_component *component, struct regmap *regmap)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sbc.snd_soc_component_init_regmapasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(hstruct regmap *regmaph](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjɥhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hregmaph]hregmap}(hjڥhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjץubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjܥmodnameN classnameNjj)}j]jc.snd_soc_component_init_regmapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,Initialize regmap instance for the componenth]h,Initialize regmap instance for the component}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` The component for which to initialize the regmap instance ``struct regmap *regmap`` The regmap instance that should be used by the component **Description** This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.h](jg)}(h**Parameters**h]j)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjYubj)}(hhh](j)}(hb``struct snd_soc_component *component`` The component for which to initialize the regmap instance h](j)}(h'``struct snd_soc_component *component``h]j)}(hj~h]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjxubj)}(hhh]jg)}(h9The component for which to initialize the regmap instanceh]h9The component for which to initialize the regmap instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubj)}(hS``struct regmap *regmap`` The regmap instance that should be used by the component h](j)}(h``struct regmap *regmap``h]j)}(hjh]hstruct regmap *regmap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h8The regmap instance that should be used by the componenth]h8The regmap instance that should be used by the component}(hjЦhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj̦hMhjͦubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj̦hMhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjYubjg)}(hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.h]hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_exit_regmap (C function)c.snd_soc_component_exit_regmaphNtauh1hhj&phhhNhNubh)}(hhh](h)}(hHvoid snd_soc_component_exit_regmap (struct snd_soc_component *component)h]h)}(hGvoid snd_soc_component_exit_regmap(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhjEhMubj)}(hsnd_soc_component_exit_regmaph]j%)}(hsnd_soc_component_exit_regmaph]hsnd_soc_component_exit_regmap}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhjEhMubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.snd_soc_component_exit_regmapasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(h componenth]h component}(hjͧhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubah}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhjEhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhjEhMubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhMhj,hhubjb)}(hhh]jg)}(h/De-initialize regmap instance for the componenth]h/De-initialize regmap instance for the component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj,hhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hXu**Parameters** ``struct snd_soc_component *component`` The component for which to de-initialize the regmap instance **Description** Calls regmap_exit() on the regmap instance associated to the component and removes the regmap instance from the component. This function should only be used if snd_soc_component_init_regmap() was used to initialize the regmap instance.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(he``struct snd_soc_component *component`` The component for which to de-initialize the regmap instance h](j)}(h'``struct snd_soc_component *component``h]j)}(hj8h]h#struct snd_soc_component *component}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj2ubj)}(hhh]jg)}(huh1jhjèhhhjըhMubj@)}(h7(struct snd_soc_component *component, unsigned int reg)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_readasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjʩhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjèhhhjըhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjըhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjըhMhjhhubjb)}(hhh]jg)}(hRead register valueh]hRead register value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjըhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component to read from ``unsigned int reg`` Register to read **Return** read valueh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh](j)}(h?``struct snd_soc_component *component`` Component to read from h](j)}(h'``struct snd_soc_component *component``h]j)}(hj5h]h#struct snd_soc_component *component}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj/ubj)}(hhh]jg)}(hComponent to read fromh]hComponent to read from}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMhjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhMhj,ubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hjnh]hunsigned int reg}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhMhj,ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h read valueh]h read value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_component_write (C function)c.snd_soc_component_writehNtauh1hhj&phhhNhNubh)}(hhh](h)}(heint snd_soc_component_write (struct snd_soc_component *component, unsigned int reg, unsigned int val)h]h)}(hdint snd_soc_component_write(struct snd_soc_component *component, unsigned int reg, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_writeh]j%)}(hsnd_soc_component_writeh]hsnd_soc_component_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hI(struct snd_soc_component *component, unsigned int reg, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_writeasbuh1hhj'ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#ubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjǫhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjիhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#ubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hWrite register valueh]hWrite register value}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjMhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component to write to ``unsigned int reg`` Register to write ``unsigned int val`` Value to write to the register **Return** 0 on success, a negative error code otherwise.h](jg)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlubj)}(hhh](j)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``unsigned int reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjʬh]hunsigned int reg}(hj̬hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjȬubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjĬubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj߬hMhjubah}(h]h ]h"]h$]h&]uh1jhjĬubeh}(h]h ]h"]h$]h&]uh1jhj߬hMhjubj)}(h4``unsigned int val`` Value to write to the register h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hValue to write to the registerh]hValue to write to the register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h **Return**h]j)}(hj>h]hReturn}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlubjg)}(h.0 on success, a negative error code otherwise.h]h.0 on success, a negative error code otherwise.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_update_bits (C function)c.snd_soc_component_update_bitshNtauh1hhj&phhhNhNubh)}(hhh](h)}(h~int snd_soc_component_update_bits (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]h)}(h}int snd_soc_component_update_bits(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMAubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMAubj)}(hsnd_soc_component_update_bitsh]j%)}(hsnd_soc_component_update_bitsh]hsnd_soc_component_update_bits}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMAubj@)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjͭhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjޭhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjۭubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_update_bitsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(hregh]hreg}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjԮhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjЮubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjЮubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjЮubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjЮubj%)}(hvalh]hval}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjЮubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMAubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{hhhjhMAubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMAhjxhhubjb)}(hhh]jg)}(hPerform read/modify/write cycleh]hPerform read/modify/write cycle}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM7hj3hhubah}(h]h ]h"]h$]h&]uh1jahjxhhhjhMAubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to update ``unsigned int reg`` Register to update ``unsigned int mask`` Mask that specifies which bits to update ``unsigned int val`` New value for the bits specified by mask **Return** 1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.h](jg)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM;hjRubj)}(hhh](j)}(h<``struct snd_soc_component *component`` Component to update h](j)}(h'``struct snd_soc_component *component``h]j)}(hjwh]h#struct snd_soc_component *component}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM8hjqubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjnubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hjh]hunsigned int reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM9hjubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjɯhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjůhM9hjƯubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjůhM9hjnubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM:hjubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM:hjnubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hj"h]hunsigned int val}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM;hjubj)}(hhh]jg)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hM;hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hM;hjnubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h **Return**h]j)}(hj]h]hReturn}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM=hjRubjg)}(h1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.h]h1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM=hjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_soc_component_update_bits_async (C function)%c.snd_soc_component_update_bits_asynchNtauh1hhj&phhhNhNubh)}(hhh](h)}(hint snd_soc_component_update_bits_async (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]h)}(hint snd_soc_component_update_bits_async(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMeubj)}(h#snd_soc_component_update_bits_asynch]j%)}(h#snd_soc_component_update_bits_asynch]h#snd_soc_component_update_bits_async}(hjðhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMeubj@)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj߰hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj۰ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj۰ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjŰsb%c.snd_soc_component_update_bits_asyncasbuh1hhj۰ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj۰ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj۰ubj%)}(h componenth]h component}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj۰ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjװubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjװubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj̱hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjڱhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjװubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjװubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMeubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMeubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMehjhhubjb)}(hhh]jg)}(h,Perform asynchronous read/modify/write cycleh]h,Perform asynchronous read/modify/write cycle}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMUhjRhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to update ``unsigned int reg`` Register to update ``unsigned int mask`` Mask that specifies which bits to update ``unsigned int val`` New value for the bits specified by mask **Description** This function is similar to snd_soc_component_update_bits(), but the update operation is scheduled asynchronously. This means it may not be completed when the function returns. To make sure that all scheduled updates have been completed snd_soc_component_async_complete() must be called. **Return** 1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.h](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMYhjqubj)}(hhh](j)}(h<``struct snd_soc_component *component`` Component to update h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMWhjubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hjϲh]hunsigned int reg}(hjѲhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjͲubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMXhjɲubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjɲubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMYhjubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMYhjubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hjAh]hunsigned int val}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMZhj;ubj)}(hhh]jg)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMZhjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhMZhjubeh}(h]h ]h"]h$]h&]uh1jhjqubjg)}(h**Description**h]j)}(hj|h]h Description}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM\hjqubjg)}(hXThis function is similar to snd_soc_component_update_bits(), but the update operation is scheduled asynchronously. This means it may not be completed when the function returns. To make sure that all scheduled updates have been completed snd_soc_component_async_complete() must be called.h]hXThis function is similar to snd_soc_component_update_bits(), but the update operation is scheduled asynchronously. This means it may not be completed when the function returns. To make sure that all scheduled updates have been completed snd_soc_component_async_complete() must be called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM\hjqubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMahjqubjg)}(h1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.h]h1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMahjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_read_field (C function)c.snd_soc_component_read_fieldhNtauh1hhj&phhhNhNubh)}(hhh](h)}(htunsigned int snd_soc_component_read_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask)h]h)}(hsunsigned int snd_soc_component_read_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_read_fieldh]j%)}(hsnd_soc_component_read_fieldh]hsnd_soc_component_read_field}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hJ(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.snd_soc_component_read_fieldasbuh1hhj=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjϴhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjݴhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j۳ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjݳhhubjb)}(hhh]jg)}(hRead register field valueh]hRead register field value}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMyhjchhubah}(h]h ]h"]h$]h&]uh1jahjݳhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~jj~jjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component to read from ``unsigned int reg`` Register to read ``unsigned int mask`` mask of the register field **Return** read value of register field.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM}hjubj)}(hhh](j)}(h?``struct snd_soc_component *component`` Component to read from h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMzhjubj)}(hhh]jg)}(hComponent to read fromh]hComponent to read from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hjh]hunsigned int reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj޵ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM{hjڵubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjڵubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjubj)}(h1``unsigned int mask`` mask of the register field h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM|hjubj)}(hhh]jg)}(hmask of the register fieldh]hmask of the register field}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hM|hj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hM|hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjTh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM~hjubjg)}(hread value of register field.h]hread value of register field.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM~hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_write_field (C function)c.snd_soc_component_write_fieldhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h~int snd_soc_component_write_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]h)}(h}int snd_soc_component_write_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_write_fieldh]j%)}(hsnd_soc_component_write_fieldh]hsnd_soc_component_write_field}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjֶhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjҶubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjҶubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_write_fieldasbuh1hhjҶubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjҶubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjҶubj%)}(h componenth]h component}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjҶubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjζubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjζubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj÷hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjѷhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjζubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjζubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hwrite to register fieldh]hwrite to register field}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjIhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to write to ``unsigned int reg`` Register to write ``unsigned int mask`` mask of the register field to update ``unsigned int val`` value of the field to write **Return** 1 for change, otherwise 0.h](jg)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhubj)}(hhh](j)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``unsigned int reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjƸh]hunsigned int reg}(hjȸhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjĸubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hj߸hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj۸hMhjܸubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj۸hMhjubj)}(h;``unsigned int mask`` mask of the register field to update h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h$mask of the register field to updateh]h$mask of the register field to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h1``unsigned int val`` value of the field to write h](j)}(h``unsigned int val``h]j)}(hj8h]hunsigned int val}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj2ubj)}(hhh]jg)}(hvalue of the field to writeh]hvalue of the field to write}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h **Return**h]j)}(hjsh]hReturn}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhubjg)}(h1 for change, otherwise 0.h]h1 for change, otherwise 0.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_component_async_complete (C function)"c.snd_soc_component_async_completehNtauh1hhj&phhhNhNubh)}(hhh](h)}(hKvoid snd_soc_component_async_complete (struct snd_soc_component *component)h]h)}(hJvoid snd_soc_component_async_complete(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjǹhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjƹhMubj)}(h snd_soc_component_async_completeh]j%)}(h snd_soc_component_async_completeh]h snd_soc_component_async_complete}(hjٹhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjչubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjƹhMubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj۹sb"c.snd_soc_component_async_completeasbuh1hhjubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjƹhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjƹhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjƹhMhjhhubjb)}(hhh]jg)}(h%Ensure asynchronous I/O has completedh]h%Ensure asynchronous I/O has completed}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjƹhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component for which to wait **Description** This function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(hD``struct snd_soc_component *component`` Component for which to wait h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent for which to waith]hComponent for which to wait}(hjҺhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjκhMhjϺubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjκhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h]hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_component_test_bits (C function)c.snd_soc_component_test_bitshNtauh1hhj&phhhNhNubh)}(hhh](h)}(h~int snd_soc_component_test_bits (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h]h)}(h}int snd_soc_component_test_bits(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h](h)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5hhhjGhMubj)}(hsnd_soc_component_test_bitsh]j%)}(hsnd_soc_component_test_bitsh]hsnd_soc_component_test_bits}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5hhhjGhMubj@)}(h^(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj\sbc.snd_soc_component_test_bitsasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hj»hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(h componenth]h component}(hjϻhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj%)}(hmaskh]hmask}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hunsigned int valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hj¼hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj5hhhjGhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhjGhMubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGhMhj.hhubjb)}(hhh]jg)}(hTest register for changeh]hTest register for change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj.hhhjGhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hXu**Parameters** ``struct snd_soc_component *component`` component ``unsigned int reg`` Register to test ``unsigned int mask`` Mask that specifies which bits to test ``unsigned int value`` Value to test against **Description** Tests a register with a new value and checks if the new value is different from the old value. **Return** 1 for change, otherwise 0.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh](j)}(h2``struct snd_soc_component *component`` component h](j)}(h'``struct snd_soc_component *component``h]j)}(hj-h]h#struct snd_soc_component *component}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj'ubj)}(hhh]jg)}(h componenth]h component}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhj$ubj)}(h&``unsigned int reg`` Register to test h](j)}(h``unsigned int reg``h]j)}(hjfh]hunsigned int reg}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj`ubj)}(hhh]jg)}(hRegister to testh]hRegister to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj$ubj)}(h=``unsigned int mask`` Mask that specifies which bits to test h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h&Mask that specifies which bits to testh]h&Mask that specifies which bits to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj$ubj)}(h-``unsigned int value`` Value to test against h](j)}(h``unsigned int value``h]j)}(hjؽh]hunsigned int value}(hjڽhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjֽubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjҽubj)}(hhh]jg)}(hValue to test againsth]hValue to test against}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjҽubeh}(h]h ]h"]h$]h&]uh1jhjhMhj$ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h^Tests a register with a new value and checks if the new value is different from the old value.h]h^Tests a register with a new value and checks if the new value is different from the old value.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h1 for change, otherwise 0.h]h1 for change, otherwise 0.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_runtime_action (C function)c.snd_soc_runtime_actionhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hUvoid snd_soc_runtime_action (struct snd_soc_pcm_runtime *rtd, int stream, int action)h]h)}(hTvoid snd_soc_runtime_action(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj{hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{hhhjhMdubj)}(hsnd_soc_runtime_actionh]j%)}(hsnd_soc_runtime_actionh]hsnd_soc_runtime_action}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj{hhhjhMdubj@)}(h9(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjɾhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjھhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj׾ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjܾmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_actionasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj%)}(hstreamh]hstream}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int actionh](h)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj%)}(hactionh]haction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj{hhhjhMdubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhMdubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMdhjthhubjb)}(hhh]jg)}(h;Increment/Decrement active count for PCM runtime componentsh]h;Increment/Decrement active count for PCM runtime components}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXhjhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated ``int stream`` Direction of the PCM stream ``int action`` Activate stream if 1. Deactivate if -1. **Description** Increments/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened. Must be called with the rtd->card->pcm_mutex being heldh](jg)}(h**Parameters**h]j)}(hj˿h]h Parameters}(hjͿhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɿubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM\hjſubj)}(hhh](j)}(hG``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMZhjubj)}(hhh]jg)}(h"ASoC PCM runtime that is activatedh]h"ASoC PCM runtime that is activated}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjubj)}(h+``int stream`` Direction of the PCM stream h](j)}(h``int stream``h]j)}(hj#h]h int stream}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM[hjubj)}(hhh]jg)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hM[hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM[hjubj)}(h7``int action`` Activate stream if 1. Deactivate if -1. h](j)}(h``int action``h]j)}(hj\h]h int action}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM\hjVubj)}(hhh]jg)}(h'Activate stream if 1. Deactivate if -1.h]h'Activate stream if 1. Deactivate if -1.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhM\hjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhM\hjubeh}(h]h ]h"]h$]h&]uh1jhjſubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM^hjſubjg)}(hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.h]hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM^hjſubjg)}(h7Must be called with the rtd->card->pcm_mutex being heldh]h7Must be called with the rtd->card->pcm_mutex being held}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMbhjſubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_runtime_ignore_pmdown_time (C function)$c.snd_soc_runtime_ignore_pmdown_timehNtauh1hhj&phhhNhNubh)}(hhh](h)}(hIbool snd_soc_runtime_ignore_pmdown_time (struct snd_soc_pcm_runtime *rtd)h]h)}(hHbool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd)h](h)}(hjԜh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h"snd_soc_runtime_ignore_pmdown_timeh]j%)}(h"snd_soc_runtime_ignore_pmdown_timeh]h"snd_soc_runtime_ignore_pmdown_time}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sb$c.snd_soc_runtime_ignore_pmdown_timeasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,Check whether to ignore the power down delayh]h,Check whether to ignore the power down delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hXj**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The ASoC PCM runtime that should be checked. **Description** This function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM~hjubj)}(hhh]j)}(hQ``struct snd_soc_pcm_runtime *rtd`` The ASoC PCM runtime that should be checked. h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM{hjubj)}(hhh]jg)}(h,The ASoC PCM runtime that should be checked.h]h,The ASoC PCM runtime that should be checked.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj&h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM}hjubjg)}(hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.h]hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM}hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_runtime_calc_hw (C function)c.snd_soc_runtime_calc_hwhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hfint snd_soc_runtime_calc_hw (struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h]h)}(heint snd_soc_runtime_calc_hw(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h](h)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMkubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjyhMkubj)}(hsnd_soc_runtime_calc_hwh]j%)}(hsnd_soc_runtime_calc_hwh]hsnd_soc_runtime_calc_hw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjghhhjyhMkubj@)}(hJ(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhwh]hhw}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjyhMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjyhMkubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyhMkhj`hhubjb)}(hhh]jg)}(h$Calculate hw limits for a PCM streamh]h$Calculate hw limits for a PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMchjhhubah}(h]h ]h"]h$]h&]uh1jahj`hhhjyhMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX+**Parameters** ``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime ``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) ``int stream`` Direction of the PCM stream **Description** Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMghjubj)}(hhh](j)}(h5``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMdhj ubj)}(hhh]jg)}(hASoC PCM runtimeh]hASoC PCM runtime}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hMdhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hMdhjubj)}(hA``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjJh]hstruct snd_pcm_hardware *hw}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMehjDubj)}(hhh]jg)}(h PCM hardware parameters (output)h]h PCM hardware parameters (output)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hMehj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMehjubj)}(h+``int stream`` Direction of the PCM stream h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMfhj}ubj)}(hhh]jg)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMhhjubjg)}(h`Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.h]h`Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMhhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_info_enum_double (C function)c.snd_soc_info_enum_doublehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h]int snd_soc_info_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h\int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK'ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhK'ubj)}(hsnd_soc_info_enum_doubleh]j%)}(hsnd_soc_info_enum_doubleh]hsnd_soc_info_enum_double}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhK'ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj&sbc.snd_soc_info_enum_doubleasbuh1hhj<ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.snd_soc_info_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhK'ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhK'hjhhubjb)}(hhh]jg)}(h%enumerated double mixer info callbackh]h%enumerated double mixer info callback}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKhj0hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhK'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information about a double enumerated mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hjOubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjth]hstruct snd_kcontrol *kcontrol}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKhjnubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhKhjkubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjkubeh}(h]h ]h"]h$]h&]uh1jhjOubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hjOubjg)}(hHCallback to provide information about a double enumerated mixer control.h]hHCallback to provide information about a double enumerated mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hjOubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK%hjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_get_enum_double (C function)c.snd_soc_get_enum_doublehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h`int snd_soc_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h_int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK:ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjJhK:ubj)}(hsnd_soc_get_enum_doubleh]j%)}(hsnd_soc_get_enum_doubleh]hsnd_soc_get_enum_double}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjJhK:ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_soc_get_enum_doubleasbuh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_soc_get_enum_doubleasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhjJhK:ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4hhhjJhK:ubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhK:hj1hhubjb)}(hhh]jg)}(h$enumerated double mixer get callbackh]h$enumerated double mixer get callback}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2hjihhubah}(h]h ]h"]h$]h&]uh1jahj1hhhjJhK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a double enumerated mixer. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK3hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK3hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK4hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK4hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj!h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjubjg)}(h7Callback to get the value of a double enumerated mixer.h]h7Callback to get the value of a double enumerated mixer.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_put_enum_double (C function)c.snd_soc_put_enum_doublehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h`int snd_soc_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h_int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqhhhjhKYubj)}(hsnd_soc_put_enum_doubleh]j%)}(hsnd_soc_put_enum_doubleh]hsnd_soc_put_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqhhhjhKYubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jc.snd_soc_put_enum_doubleasbuh1hhj ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hucontrolh]hucontrol}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjqhhhjhKYubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhKYubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKYhjjhhubjb)}(hhh]jg)}(h$enumerated double mixer put callbackh]h$enumerated double mixer put callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKQhjhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhKYubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a double enumerated mixer. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKRhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKShjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hKShj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hKShjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjZh]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubjg)}(h7Callback to set the value of a double enumerated mixer.h]h7Callback to set the value of a double enumerated mixer.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKWhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_volsw (C function)c.snd_soc_info_volswhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hWint snd_soc_info_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hVint snd_soc_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_info_volswh]j%)}(hsnd_soc_info_volswh]hsnd_soc_info_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_volswasbuh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j%c.snd_soc_info_volswasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&single mixer info callback with range.h]h&single mixer info callback with range.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX-**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjXh]hstruct snd_ctl_elem_info *uinfo}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjRubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(h~Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers.h]h~Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_info_volsw_sx (C function)c.snd_soc_info_volsw_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_info_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hYint snd_soc_info_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM2ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM2ubj)}(hsnd_soc_info_volsw_sxh]j%)}(hsnd_soc_info_volsw_sxh]hsnd_soc_info_volsw_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM2ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_info_volsw_sxasbuh1hhj ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j^c.snd_soc_info_volsw_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM2ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM2hjhhubjb)}(hhh]jg)}(h'Mixer info callback for SX TLV controlsh]h'Mixer info callback for SX TLV controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM&hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers of the SX TLV type. SX TLV controls have a range that represents both positive and negative values either side of zero but without a sign bit. min is the minimum register value, max is the number of steps. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM*hj3ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjXh]hstruct snd_kcontrol *kcontrol}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM'hjRubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhM'hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhM'hjOubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM(hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM(hjOubeh}(h]h ]h"]h$]h&]uh1jhj3ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM*hj3ubjg)}(hX<Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers of the SX TLV type. SX TLV controls have a range that represents both positive and negative values either side of zero but without a sign bit. min is the minimum register value, max is the number of steps.h]hX<Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers of the SX TLV type. SX TLV controls have a range that represents both positive and negative values either side of zero but without a sign bit. min is the minimum register value, max is the number of steps.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM*hj3ubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM0hj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_volsw (C function)c.snd_soc_get_volswhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMFubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj.hMFubj)}(hsnd_soc_get_volswh]j%)}(hsnd_soc_get_volswh]hsnd_soc_get_volsw}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj.hMFubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.snd_soc_get_volswasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_volswasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj.hMFubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj.hMFubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.hMFhjhhubjb)}(hhh]jg)}(h$single mixer get callback with rangeh]h$single mixer get callback with range}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM=hjMhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj.hMFubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj&phNhNubj)}(hX***Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value, within a range, of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMAhjlubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM>hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM>hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM?hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMAhjlubjg)}(hwCallback to get the value, within a range, of a single mixer control, or a double mixer control that spans 2 registers.h]hwCallback to get the value, within a range, of a single mixer control, or a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMAhjlubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMDhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_volsw (C function)c.snd_soc_put_volswhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM[ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjghM[ubj)}(hsnd_soc_put_volswh]j%)}(hsnd_soc_put_volswh]hsnd_soc_put_volsw}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjghM[ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj|sbc.snd_soc_put_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]jc.snd_soc_put_volswasbuh1hhjubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j= j>uh1j?hjUhhhjghM[ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjghM[ubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghM[hjNhhubjb)}(hhh]jg)}(h$single mixer put callback with rangeh]h$single mixer put callback with range}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMRhjhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjghM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX+**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value , within a range, of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMVhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMShjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMShjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMThjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj>h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMVhjubjg)}(hxCallback to set the value , within a range, of a single mixer control, or a double mixer control that spans 2 registers.h]hxCallback to set the value , within a range, of a single mixer control, or a double mixer control that spans 2 registers.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMVhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMYhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_get_volsw_sx (C function)c.snd_soc_get_volsw_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h]int snd_soc_get_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h\int snd_soc_get_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMpubj)}(hsnd_soc_get_volsw_sxh]j%)}(hsnd_soc_get_volsw_sxh]hsnd_soc_get_volsw_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMpubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_volsw_sxasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j c.snd_soc_get_volsw_sxasbuh1hhj=ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMpubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMphjhhubjb)}(hhh]jg)}(hsingle mixer get callbackh]hsingle mixer get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMghjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMkhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj<h]h#struct snd_ctl_elem_value *ucontrol}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMihj6ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhMihjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMihjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMkhjubjg)}(hfCallback to get the value of a single mixer control, or a double mixer control that spans 2 registers.h]hfCallback to get the value of a single mixer control, or a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMkhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_put_volsw_sx (C function)c.snd_soc_put_volsw_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(h]int snd_soc_put_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h\int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_put_volsw_sxh]j%)}(hsnd_soc_put_volsw_sxh]hsnd_soc_put_volsw_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_volsw_sxasbuh1hhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jBc.snd_soc_put_volsw_sxasbuh1hhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hdouble mixer set callbackh]hdouble mixer set callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM|hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj<h]hstruct snd_kcontrol *kcontrol}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM}hj6ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhM}hjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhM}hj3ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjuh]h#struct snd_ctl_elem_value *ucontrol}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM~hjoubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM~hjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhM~hj3ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hKCallback to set the value of a double mixer control that spans 2 registers.h]hKCallback to set the value of a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_limit_volume (C function)c.snd_soc_limit_volumehNtauh1hhj&phhhNhNubh)}(hhh](h)}(hOint snd_soc_limit_volume (struct snd_soc_card *card, const char *name, int max)h]h)}(hNint snd_soc_limit_volume(struct snd_soc_card *card, const char *name, int max)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_limit_volumeh]j%)}(hsnd_soc_limit_volumeh]hsnd_soc_limit_volume}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h6(struct snd_soc_card *card, const char *name, int max)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.snd_soc_limit_volumeasbuh1hhj=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(hint maxh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hmaxh]hmax}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,Set new limit to an existing volume control.h]h,Set new limit to an existing volume control.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_card *card`` where to look for the control ``const char *name`` Name of the control ``int max`` new maximum limit **Description** Return 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubj)}(hhh](j)}(h<``struct snd_soc_card *card`` where to look for the control h](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hwhere to look for the controlh]hwhere to look for the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``const char *name`` Name of the control h](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hName of the controlh]hName of the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int max`` new maximum limit h](j)}(h ``int max``h]j)}(hj h]hint max}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hnew maximum limith]hnew maximum limit}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjrubjg)}(h**Description**h]j)}(hjDh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_xr_sx (C function)c.snd_soc_info_xr_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hWint snd_soc_info_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hVint snd_soc_info_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMsubj)}(hsnd_soc_info_xr_sxh]j%)}(hsnd_soc_info_xr_sxh]hsnd_soc_info_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMsubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_xr_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jc.snd_soc_info_xr_sxasbuh1hhj4ubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMsubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMsubah}(h]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMshj~hhubjb)}(hhh]jg)}(h#signed multi register info callbackh]h#signed multi register info callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhhjhhubah}(h]h ]h"]h$]h&]uh1jahj~hhhjhMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mreg control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information of a control that can span multiple codec registers which together forms a single signed value. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMihjubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMihjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj3h]hstruct snd_ctl_elem_info *uinfo}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMjhj-ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMjhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMjhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjnh]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjubjg)}(hXCallback to provide information of a control that can span multiple codec registers which together forms a single signed value. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.h]hXCallback to provide information of a control that can span multiple codec registers which together forms a single signed value. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMqhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_xr_sx (C function)c.snd_soc_get_xr_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_get_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_get_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_get_xr_sxh]j%)}(hsnd_soc_get_xr_sxh]hsnd_soc_get_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_xr_sxasbuh1hhjubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j9c.snd_soc_get_xr_sxasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj&phNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` mreg control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj3h]hstruct snd_kcontrol *kcontrol}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj-ubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhj*ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjlh]h#struct snd_ctl_elem_value *ucontrol}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjfubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hXtCallback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.h]hXtCallback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_xr_sx (C function)c.snd_soc_put_xr_sxhNtauh1hhj&phhhNhNubh)}(hhh](h)}(hZint snd_soc_put_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hsnd_soc_put_xr_sxh]j%)}(hsnd_soc_put_xr_sxh]hsnd_soc_put_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_xr_sxasbuh1hhj4ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jrc.snd_soc_put_xr_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get callback}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj(hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhj&phNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` mreg control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjGubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjlh]hstruct snd_kcontrol *kcontrol}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjfubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhjcubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjGubjg)}(hXtCallback to set the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.h]hXtCallback to set the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjGubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_strobe (C function)c.snd_soc_get_strobehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h[int snd_soc_get_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hZint snd_soc_get_strobe(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0hhhjBhMubj)}(hsnd_soc_get_strobeh]j%)}(hsnd_soc_get_strobeh]hsnd_soc_get_strobe}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0hhhjBhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjWsbc.snd_soc_get_strobeasbuh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_strobeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0hhhjBhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,hhhjBhMubah}(h]j'ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBhMhj)hhubjb)}(hhh]jg)}(hstrobe get callbackh]hstrobe get callback}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjahhubah}(h]h ]h"]h$]h&]uh1jahj)hhhjBhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|jj|jjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback get the value of a strobe mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(h1Callback get the value of a strobe mixer control.h]h1Callback get the value of a strobe mixer control.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_strobe (C function)c.snd_soc_put_strobehNtauh1hhj&phhhNhNubh)}(hhh](h)}(h[int snd_soc_put_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hZint snd_soc_put_strobe(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhj{hM ubj)}(hsnd_soc_put_strobeh]j%)}(hsnd_soc_put_strobeh]hsnd_soc_put_strobe}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhj{hM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_strobeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]jc.snd_soc_put_strobeasbuh1hhjubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhj{hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhj{hM ubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj{hM hjbhhubjb)}(hhh]jg)}(hstrobe put callbackh]hstrobe put callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjbhhhj{hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj&phNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback strobe a register bit to high then low (or the inverse) in one pass of a single mixer enum control. Returns 1 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjRh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hlCallback strobe a register bit to high then low (or the inverse) in one pass of a single mixer enum control.h]hlCallback strobe a register bit to high then low (or the inverse) in one pass of a single mixer enum control.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 1 for success.h]hReturns 1 for success.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_new_compress (C function)c.snd_soc_new_compresshNtauh1hhj&phhhNhNubh)}(hhh](h)}(h:int snd_soc_new_compress (struct snd_soc_pcm_runtime *rtd)h]h)}(h9int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_new_compressh]j%)}(hsnd_soc_new_compressh]hsnd_soc_new_compress}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_new_compressasbuh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hcreate a new compress.h]hcreate a new compress.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjchhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~jj~jjjuh1hhhhj&phNhNubj)}(h**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The runtime for which we will create compress **Return** 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubj)}(hhh]j)}(hR``struct snd_soc_pcm_runtime *rtd`` The runtime for which we will create compress h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubj)}(hhh]jg)}(h-The runtime for which we will create compressh]h-The runtime for which we will create compress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubjg)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj&phhhNhNubeh}(h] asoc-core-apiah ]h"] asoc core apiah$]h&]uh1hhjphhhhhKbubh)}(hhh](h)}(h ASoC DAPM APIh]h ASoC DAPM API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKlubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_kcontrol_widget (C function)c.snd_soc_dapm_kcontrol_widgethNtauh1hhjhhhNhNubh)}(hhh](h)}(hYstruct snd_soc_dapm_widget * snd_soc_dapm_kcontrol_widget (struct snd_kcontrol *kcontrol)h]h)}(hWstruct snd_soc_dapm_widget *snd_soc_dapm_kcontrol_widget(struct snd_kcontrol *kcontrol)h](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhjMhMJubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_widgetsbc.snd_soc_dapm_kcontrol_widgetasbuh1hhj<hhhjMhMJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhjMhMJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<hhhjMhMJubj)}(hsnd_soc_dapm_kcontrol_widgeth]j%)}(hj}h]hsnd_soc_dapm_kcontrol_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhjMhMJubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j{c.snd_soc_dapm_kcontrol_widgetasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhjMhMJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhjMhMJubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhMJhj5hhubjb)}(hhh]jg)}(h+Returns the widget associated to a kcontrolh]h+Returns the widget associated to a kcontrol}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMFhj8hhubah}(h]h ]h"]h$]h&]uh1jahj5hhhjMhMJubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSjjSjjjuh1hhhhjhNhNubj)}(h@**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrolh](jg)}(h**Parameters**h]j)}(hj]h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJhjWubj)}(hhh]j)}(h.``struct snd_kcontrol *kcontrol`` The kcontrolh](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj|h]hstruct snd_kcontrol *kcontrol}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMLhjvubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMHhjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhMLhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_dapm_kcontrol_dapm (C function)c.snd_soc_dapm_kcontrol_dapmhNtauh1hhjhhhNhNubh)}(hhh](h)}(hXstruct snd_soc_dapm_context * snd_soc_dapm_kcontrol_dapm (struct snd_kcontrol *kcontrol)h]h)}(hVstruct snd_soc_dapm_context *snd_soc_dapm_kcontrol_dapm(struct snd_kcontrol *kcontrol)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMYubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_dapmsbc.snd_soc_dapm_kcontrol_dapmasbuh1hhjhhhjhMYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMYubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMYubj)}(hsnd_soc_dapm_kcontrol_dapmh]j%)}(hjh]hsnd_soc_dapm_kcontrol_dapm}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMYubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jc.snd_soc_dapm_kcontrol_dapmasbuh1hhjLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMYubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMYubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMYhjhhubjb)}(hhh]jg)}(h1Returns the dapm context associated to a kcontrolh]h1Returns the dapm context associated to a kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMRhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMYubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrol **Note** This function must only be used on kcontrols that are known to have been registered for a CODEC. Otherwise the behaviour is undefined.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVhjubj)}(hhh]j)}(h/``struct snd_kcontrol *kcontrol`` The kcontrol h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMThj ubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hMThj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hMThj ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Note**h]j)}(hjMh]hNote}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVhjubjg)}(hThis function must only be used on kcontrols that are known to have been registered for a CODEC. Otherwise the behaviour is undefined.h]hThis function must only be used on kcontrols that are known to have been registered for a CODEC. Otherwise the behaviour is undefined.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_bias_level (C function)c.snd_soc_dapm_force_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_force_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(hcint snd_soc_dapm_force_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_force_bias_levelh]j%)}(hsnd_soc_dapm_force_bias_levelh]hsnd_soc_dapm_force_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_force_bias_levelasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum snd_soc_bias_level levelh](jL)}(hj'h]henum}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j c.snd_soc_dapm_force_bias_levelasbuh1hhj=ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hlevelh]hlevel}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hSets the DAPM bias levelh]hSets the DAPM bias level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXg**Parameters** ``struct snd_soc_dapm_context *dapm`` The DAPM context for which to set the level ``enum snd_soc_bias_level level`` The level to set **Description** Forces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered. Note that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(hR``struct snd_soc_dapm_context *dapm`` The DAPM context for which to set the level h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h+The DAPM context for which to set the levelh]h+The DAPM context for which to set the level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h3``enum snd_soc_bias_level level`` The level to set h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hj/h]henum snd_soc_bias_level level}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj)ubj)}(hhh]jg)}(hThe level to seth]hThe level to set}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjjh]h Description}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hXdForces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered.h]hXdForces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.h]hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_set_bias_level (C function)c.snd_soc_dapm_set_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hbint snd_soc_dapm_set_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(haint snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_set_bias_levelh]j%)}(hsnd_soc_dapm_set_bias_levelh]hsnd_soc_dapm_set_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_set_bias_levelasbuh1hhjubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum snd_soc_bias_level levelh](jL)}(hj'h]henum}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j5c.snd_soc_dapm_set_bias_levelasbuh1hhjiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj%)}(hlevelh]hlevel}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h!set the bias level for the systemh]h!set the bias level for the system}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``enum snd_soc_bias_level level`` level to configure **Description** Configure the bias (power) levels for the SoC audio device. Returns 0 for success else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj"h]h!struct snd_soc_dapm_context *dapm}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubj)}(h5``enum snd_soc_bias_level level`` level to configure h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hj[h]henum snd_soc_bias_level level}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjUubj)}(hhh]jg)}(hlevel to configureh]hlevel to configure}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h;Configure the bias (power) levels for the SoC audio device.h]h;Configure the bias (power) levels for the SoC audio device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_dai_get_connected_widgets (C function)(c.snd_soc_dapm_dai_get_connected_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_soc_dapm_dai_get_connected_widgets (struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction))h]h)}(hint snd_soc_dapm_dai_get_connected_widgets(struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction))h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h&snd_soc_dapm_dai_get_connected_widgetsh]j%)}(h&snd_soc_dapm_dai_get_connected_widgetsh]h&snd_soc_dapm_dai_get_connected_widgets}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction))h](jF)}(hstruct snd_soc_dai *daih](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sb(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&struct snd_soc_dapm_widget_list **listh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_widget_listh]hsnd_soc_dapm_widget_list}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]ja(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlisth]hlist}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hWbool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction)h](h)}(hjԜh]hbool}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h(}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hcustom_stop_conditionh]hcustom_stop_condition}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]ja(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hjZh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubjL)}(hj'h]henum}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hsnd_soc_dapm_directionh]hsnd_soc_dapm_direction}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]ja(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjGubj)}(hjh]h)}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h"query audio path and it's widgets.h]h$query audio path and it’s widgets.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjnhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXv**Parameters** ``struct snd_soc_dai *dai`` the soc DAI. ``int stream`` stream direction. ``struct snd_soc_dapm_widget_list **list`` list of active widgets for this stream. ``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)`` (optional) a function meant to stop the widget graph walk based on custom logic. **Description** Queries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets. Optionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise. Returns the number of valid paths or negative error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h)``struct snd_soc_dai *dai`` the soc DAI. h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjh]hstruct snd_soc_dai *dai}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h the soc DAI.h]h the soc DAI.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h!``int stream`` stream direction. h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(hstream direction.h]hstream direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hS``struct snd_soc_dapm_widget_list **list`` list of active widgets for this stream. h](j)}(h*``struct snd_soc_dapm_widget_list **list``h]j)}(hj$h]h&struct snd_soc_dapm_widget_list **list}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h'list of active widgets for this stream.h]h'list of active widgets for this stream.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjubj)}(h``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)`` (optional) a function meant to stop the widget graph walk based on custom logic. h](j)}(h\``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)``h]j)}(hj]h]hXbool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjWubj)}(hhh]jg)}(hP(optional) a function meant to stop the widget graph walk based on custom logic.h]hP(optional) a function meant to stop the widget graph walk based on custom logic.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.h]hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hOptionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise.h]hOptionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h4Returns the number of valid paths or negative error.h]h4Returns the number of valid paths or negative error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_free_widget (C function)c.snd_soc_dapm_free_widgethNtauh1hhjhhhNhNubh)}(hhh](h)}(h=void snd_soc_dapm_free_widget (struct snd_soc_dapm_widget *w)h]h)}(huh1jhjhhhj hM ubj@)}(h(struct snd_soc_dapm_widget *w)h]jF)}(hstruct snd_soc_dapm_widget *wh](jL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_free_widgetasbuh1hhj5ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hjh]hw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM hjhhubjb)}(hhh]jg)}(hFree specified widgeth]hFree specified widget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_widget *w`` widget to free **Description** Removes widget from all paths and frees memory occupied by it.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]j)}(h1``struct snd_soc_dapm_widget *w`` widget to free h](j)}(h!``struct snd_soc_dapm_widget *w``h]j)}(hjh]hstruct snd_soc_dapm_widget *w}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hwidget to freeh]hwidget to free}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj7h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(h>Removes widget from all paths and frees memory occupied by it.h]h>Removes widget from all paths and frees memory occupied by it.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_dapm_sync_unlocked (C function)c.snd_soc_dapm_sync_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hBint snd_soc_dapm_sync_unlocked (struct snd_soc_dapm_context *dapm)h]h)}(hAint snd_soc_dapm_sync_unlocked(struct snd_soc_dapm_context *dapm)h](h)}(hinth]hint}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMz ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhjhMz ubj)}(hsnd_soc_dapm_sync_unlockedh]j%)}(hsnd_soc_dapm_sync_unlockedh]hsnd_soc_dapm_sync_unlocked}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhjhMz ubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_sync_unlockedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhjhMz ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjthhhjhMz ubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMz hjqhhubjb)}(hhh]jg)}(hscan and power dapm pathsh]hscan and power dapm paths}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMp hj9hhubah}(h]h ]h"]h$]h&]uh1jahjqhhhjhMz ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Walks all dapm audio paths and powers widgets according to their stream or path usage. Requires external locking. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMt hjXubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj}h]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMq hjwubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMq hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMq hjtubah}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMs hjXubjg)}(hVWalks all dapm audio paths and powers widgets according to their stream or path usage.h]hVWalks all dapm audio paths and powers widgets according to their stream or path usage.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMs hjXubjg)}(hRequires external locking.h]hRequires external locking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv hjXubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMx hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_sync (C function)c.snd_soc_dapm_synchNtauh1hhjhhhNhNubh)}(hhh](h)}(h9int snd_soc_dapm_sync (struct snd_soc_dapm_context *dapm)h]h)}(h8int snd_soc_dapm_sync(struct snd_soc_dapm_context *dapm)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj)hM ubj)}(hsnd_soc_dapm_synch]j%)}(hsnd_soc_dapm_synch]hsnd_soc_dapm_sync}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj)hM ubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jj>sbc.snd_soc_dapm_syncasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj)hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj)hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)hM hjhhubjb)}(hhh]jg)}(hscan and power dapm pathsh]hscan and power dapm paths}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj)hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Walks all dapm audio paths and powers widgets according to their stream or path usage. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hM hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjWh]h Description}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hVWalks all dapm audio paths and powers widgets according to their stream or path usage.h]hVWalks all dapm audio paths and powers widgets according to their stream or path usage.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_add_routes (C function)c.snd_soc_dapm_add_routeshNtauh1hhjhhhNhNubh)}(hhh](h)}(hpint snd_soc_dapm_add_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hoint snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMc ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMc ubj)}(hsnd_soc_dapm_add_routesh]j%)}(hsnd_soc_dapm_add_routesh]hsnd_soc_dapm_add_routes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMc ubj@)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_add_routesasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&const struct snd_soc_dapm_route *routeh](jL)}(hj\h]hconst}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubjL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j"c.snd_soc_dapm_add_routesasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hrouteh]hroute}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint numh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMc ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMc ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMc hjhhubjb)}(hhh]jg)}(hAdd routes between DAPM widgetsh]hAdd routes between DAPM widgets}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMW hj(hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMc ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** Connects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal. Returns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().h](jg)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM[ hjGubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjlh]h!struct snd_soc_dapm_context *dapm}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMX hjfubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMX hjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMX hjcubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hjh]h&const struct snd_soc_dapm_route *route}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMY hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMY hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMY hjcubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjh]hint num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMZ hjubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMZ hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZ hjcubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM\ hjGubjg)}(hConnects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal.h]hConnects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM\ hjGubjg)}(hiReturns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().h]hiReturns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM` hjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_del_routes (C function)c.snd_soc_dapm_del_routeshNtauh1hhjhhhNhNubh)}(hhh](h)}(hpint snd_soc_dapm_del_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hoint snd_soc_dapm_del_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM} ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhj{hM} ubj)}(hsnd_soc_dapm_del_routesh]j%)}(hsnd_soc_dapm_del_routesh]hsnd_soc_dapm_del_routes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhj{hM} ubj@)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_del_routesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&const struct snd_soc_dapm_route *routeh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jc.snd_soc_dapm_del_routesasbuh1hhjubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint numh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhj{hM} ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhj{hM} ubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj{hM} hjbhhubjb)}(hhh]jg)}(h"Remove routes between DAPM widgetsh]h"Remove routes between DAPM widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv hjhhubah}(h]h ]h"]h$]h&]uh1jahjbhhhj{hM} ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** Removes routes from the DAPM context.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMz hj ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj.h]h!struct snd_soc_dapm_context *dapm}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMw hj(ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMw hjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMw hj%ubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hjgh]h&const struct snd_soc_dapm_route *route}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMx hjaubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMx hj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMx hj%ubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjh]hint num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMy hjubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMy hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMy hj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM{ hj ubjg)}(h%Removes routes from the DAPM context.h]h%Removes routes from the DAPM context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM{ hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_weak_routes (C function)c.snd_soc_dapm_weak_routeshNtauh1hhjhhhNhNubh)}(hhh](h)}(hqint snd_soc_dapm_weak_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hpint snd_soc_dapm_weak_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj.hM ubj)}(hsnd_soc_dapm_weak_routesh]j%)}(hsnd_soc_dapm_weak_routesh]hsnd_soc_dapm_weak_routes}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj.hM ubj@)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.snd_soc_dapm_weak_routesasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(h&const struct snd_soc_dapm_route *routeh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_soc_dapm_weak_routesasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(hint numh](h)}(hinth]hint}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj%)}(hnumh]hnum}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj.hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj.hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.hM hjhhubjb)}(hhh]jg)}(h(Mark routes between DAPM widgets as weakh]h(Mark routes between DAPM widgets as weak}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj.hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** Mark existing routes matching those specified in the passed array as being weak, meaning that they are ignored for the purpose of power decisions. The main intended use case is for sidetone paths which couple audio between other independent paths if they are both active in order to make the combination work better at the user level but which aren't intended to be "used". Note that CODEC drivers should not use this as sidetone type paths can frequently also be used as bypass paths.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hjh]h&const struct snd_soc_dapm_route *route}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hM hj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hM hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjSh]hint num}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjMubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hXvMark existing routes matching those specified in the passed array as being weak, meaning that they are ignored for the purpose of power decisions. The main intended use case is for sidetone paths which couple audio between other independent paths if they are both active in order to make the combination work better at the user level but which aren't intended to be "used".h]hX|Mark existing routes matching those specified in the passed array as being weak, meaning that they are ignored for the purpose of power decisions. The main intended use case is for sidetone paths which couple audio between other independent paths if they are both active in order to make the combination work better at the user level but which aren’t intended to be “used”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hoNote that CODEC drivers should not use this as sidetone type paths can frequently also be used as bypass paths.h]hoNote that CODEC drivers should not use this as sidetone type paths can frequently also be used as bypass paths.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_widgets (C function)c.snd_soc_dapm_new_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(h8int snd_soc_dapm_new_widgets (struct snd_soc_card *card)h]h)}(h7int snd_soc_dapm_new_widgets(struct snd_soc_card *card)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_new_widgetsh]j%)}(hsnd_soc_dapm_new_widgetsh]hsnd_soc_dapm_new_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_new_widgetsasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hadd new dapm widgetsh]hadd new dapm widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_card *card`` card to be checked for new dapm widgets **Description** Checks the codec for any new dapm widgets and creates them if found. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]j)}(hF``struct snd_soc_card *card`` card to be checked for new dapm widgets h](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h'card to be checked for new dapm widgetsh]h'card to be checked for new dapm widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hDChecks the codec for any new dapm widgets and creates them if found.h]hDChecks the codec for any new dapm widgets and creates them if found.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_get_volsw (C function)c.snd_soc_dapm_get_volswhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h^int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM/ ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnhhhjhM/ ubj)}(hsnd_soc_dapm_get_volswh]j%)}(hsnd_soc_dapm_get_volswh]hsnd_soc_dapm_get_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjnhhhjhM/ ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_get_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_volswasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjnhhhjhM/ ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjhM/ ubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM/ hjghhubjb)}(hhh]jg)}(hdapm mixer get callbackh]hdapm mixer get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM' hjhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjhM/ ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a dapm mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM+ hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM( hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM( hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM( hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM) hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hM) hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM) hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjWh]h Description}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM+ hjubjg)}(h2Callback to get the value of a dapm mixer control.h]h2Callback to get the value of a dapm mixer control.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM+ hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM- hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_put_volsw (C function)c.snd_soc_dapm_put_volswhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h^int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMi ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMi ubj)}(hsnd_soc_dapm_put_volswh]j%)}(hsnd_soc_dapm_put_volswh]hsnd_soc_dapm_put_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMi ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_volswasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j"c.snd_soc_dapm_put_volswasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMi ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMi ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMi hjhhubjb)}(hhh]jg)}(hdapm mixer set callbackh]hdapm mixer set callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMa hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMi ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMe hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMb hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMb hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hMb hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjUh]h#struct snd_ctl_elem_value *ucontrol}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMc hjOubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhMc hjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhMc hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMe hjubjg)}(h2Callback to set the value of a dapm mixer control.h]h2Callback to set the value of a dapm mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMe hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMg hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_get_enum_double (C function)c.snd_soc_dapm_get_enum_doublehNtauh1hhjhhhNhNubh)}(hhh](h)}(heint snd_soc_dapm_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hdint snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_get_enum_doubleh]j%)}(hsnd_soc_dapm_get_enum_doubleh]hsnd_soc_dapm_get_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_get_enum_doubleasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j[c.snd_soc_dapm_get_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h)dapm enumerated double mixer get callbackh]h)dapm enumerated double mixer get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a dapm enumerated double mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj0ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjUh]hstruct snd_kcontrol *kcontrol}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjOubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhM hjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhM hjLubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjLubeh}(h]h ]h"]h$]h&]uh1jhj0ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj0ubjg)}(hDCallback to get the value of a dapm enumerated double mixer control.h]hDCallback to get the value of a dapm enumerated double mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj0ubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_put_enum_double (C function)c.snd_soc_dapm_put_enum_doublehNtauh1hhjhhhNhNubh)}(hhh](h)}(heint snd_soc_dapm_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hdint snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj, hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj+ hM ubj)}(hsnd_soc_dapm_put_enum_doubleh]j%)}(hsnd_soc_dapm_put_enum_doubleh]hsnd_soc_dapm_put_enum_double}(hj> hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj: ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj+ hM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjZ hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjV ubj)}(h h]h }(hjg hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjx hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjz modnameN classnameNjj)}j]j)}jj@ sbc.snd_soc_dapm_put_enum_doubleasbuh1hhjV ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV ubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjR ubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.snd_soc_dapm_put_enum_doubleasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hucontrolh]hucontrol}(hj# hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjR ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj+ hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj+ hM ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj+ hM hj hhubjb)}(hhh]jg)}(h)dapm enumerated double mixer set callbackh]h)dapm enumerated double mixer set callback}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjJ hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj+ hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjje jje jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm enumerated double mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjo h]h Parameters}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hji ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj h]hstruct snd_kcontrol *kcontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM hj ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj h]h#struct snd_ctl_elem_value *ucontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM hj ubeh}(h]h ]h"]h$]h&]uh1jhji ubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hji ubjg)}(hDCallback to set the value of a dapm enumerated double mixer control.h]hDCallback to set the value of a dapm enumerated double mixer control.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hji ubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hji ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_info_pin_switch (C function)c.snd_soc_dapm_info_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(haint snd_soc_dapm_info_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h`int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjV hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjR hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM!ubj)}(h h]h }(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjR hhhjd hM!ubj)}(hsnd_soc_dapm_info_pin_switchh]j%)}(hsnd_soc_dapm_info_pin_switchh]hsnd_soc_dapm_info_pin_switch}(hjw hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjR hhhjd hM!ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjy sbc.snd_soc_dapm_info_pin_switchasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj# hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj% modnameN classnameNjj)}j]j c.snd_soc_dapm_info_pin_switchasbuh1hhj ubj)}(h h]h }(hjA hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(huinfoh]huinfo}(hj\ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjR hhhjd hM!ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjN hhhjd hM!ubah}(h]jI ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjd hM!hjK hhubjb)}(hhh]jg)}(hInfo for a pin switchh]hInfo for a pin switch}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahjK hhhjd hM!ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information about a pin switch control.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj h]hstruct snd_kcontrol *kcontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj h]hstruct snd_ctl_elem_info *uinfo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj; h]h Description}(hj= hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9 ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubjg)}(h;Callback to provide information about a pin switch control.h]h;Callback to provide information about a pin switch control.}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_switch (C function)c.snd_soc_dapm_get_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_get_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hcint snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj| hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM3ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj| hhhj hM3ubj)}(hsnd_soc_dapm_get_pin_switchh]j%)}(hsnd_soc_dapm_get_pin_switchh]hsnd_soc_dapm_get_pin_switch}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj| hhhj hM3ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_soc_dapm_get_pin_switchasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j c.snd_soc_dapm_get_pin_switchasbuh1hhj+ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj| hhhj hM3ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjx hhhj hM3ubah}(h]js ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM3hju hhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM.hjhhubah}(h]h ]h"]h$]h&]uh1jahju hhhj hM3ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hr**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Valueh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM0hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM0hjubj)}(h-``struct snd_ctl_elem_value *ucontrol`` Valueh](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj*h]h#struct snd_ctl_elem_value *ucontrol}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2hj$ubj)}(hhh]jg)}(hValueh]hValue}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM1hj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hM2hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_put_pin_switch (C function)c.snd_soc_dapm_put_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_put_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hcint snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMJubj)}(hsnd_soc_dapm_put_pin_switchh]j%)}(hsnd_soc_dapm_put_pin_switchh]hsnd_soc_dapm_put_pin_switch}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMJubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_pin_switchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jc.snd_soc_dapm_put_pin_switchasbuh1hhj/ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhMJubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMJhjyhhubjb)}(hhh]jg)}(h Set information for a pin switchh]h Set information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMEhjhhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhMJubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hr**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Valueh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMIhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMGhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMGhjubj)}(h-``struct snd_ctl_elem_value *ucontrol`` Valueh](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj.h]h#struct snd_ctl_elem_value *ucontrol}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMIhj(ubj)}(hhh]jg)}(hValueh]hValue}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMHhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMIhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_control (C function)c.snd_soc_dapm_new_controlhNtauh1hhjhhhNhNubh)}(hhh](h)}(hstruct snd_soc_dapm_widget * snd_soc_dapm_new_control (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h]h)}(hstruct snd_soc_dapm_widget *snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_new_controlsbc.snd_soc_dapm_new_controlasbuh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hsnd_soc_dapm_new_controlh]j%)}(hjh]hsnd_soc_dapm_new_control}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hM(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h(const struct snd_soc_dapm_widget *widgeth](jL)}(hj\h]hconst}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hwidgeth]hwidget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j{ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj}hhubjb)}(hhh]jg)}(hcreate new dapm controlh]hcreate new dapm control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahj}hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjhNhNubj)}(hX **Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_widget *widget`` widget template **Description** Creates new DAPM control based upon a template. Returns a widget pointer on success or an error pointer on failureh](jg)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj*ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjOh]h!struct snd_soc_dapm_context *dapm}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjIubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjFubj)}(h=``const struct snd_soc_dapm_widget *widget`` widget template h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hjh]h(const struct snd_soc_dapm_widget *widget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(hwidget templateh]hwidget template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjFubeh}(h]h ]h"]h$]h&]uh1jhj*ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj*ubjg)}(h/Creates new DAPM control based upon a template.h]h/Creates new DAPM control based upon a template.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj*ubjg)}(hBReturns a widget pointer on success or an error pointer on failureh]hBReturns a widget pointer on success or an error pointer on failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_new_controls (C function)c.snd_soc_dapm_new_controlshNtauh1hhjhhhNhNubh)}(hhh](h)}(h}int snd_soc_dapm_new_controls (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h]h)}(h|int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj%hM ubj)}(hsnd_soc_dapm_new_controlsh]j%)}(hsnd_soc_dapm_new_controlsh]hsnd_soc_dapm_new_controls}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj%hM ubj@)}(h_(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jj:sbc.snd_soc_dapm_new_controlsasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(h(const struct snd_soc_dapm_widget *widgeth](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hwidgeth]hwidget}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(hunsigned int numh](h)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj%hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj%hM ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%hM hj hhubjb)}(hhh]jg)}(hcreate new dapm controlsh]hcreate new dapm controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj%hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_widget *widget`` widget array ``unsigned int num`` number of widgets **Description** Creates new DAPM controls based upon the templates. Returns 0 for success else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h:``const struct snd_soc_dapm_widget *widget`` widget array h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hj-h]h(const struct snd_soc_dapm_widget *widget}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj'ubj)}(hhh]jg)}(h widget arrayh]h widget array}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjubj)}(h'``unsigned int num`` number of widgets h](j)}(h``unsigned int num``h]j)}(hjfh]hunsigned int num}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj`ubj)}(hhh]jg)}(hnumber of widgetsh]hnumber of widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h3Creates new DAPM controls based upon the templates.h]h3Creates new DAPM controls based upon the templates.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_new_dai_widgets (C function)c.snd_soc_dapm_new_dai_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(h]int snd_soc_dapm_new_dai_widgets (struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h]h)}(h\int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_new_dai_widgetsh]j%)}(hsnd_soc_dapm_new_dai_widgetsh]hsnd_soc_dapm_new_dai_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h<(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_new_dai_widgetsasbuh1hhj.ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*ubjF)}(hstruct snd_soc_dai *daih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jlc.snd_soc_dapm_new_dai_widgetsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hCreate new DAPM widgetsh]hCreate new DAPM widgets}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj"hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``struct snd_soc_dai *dai`` parent DAI **Description** Returns 0 on success, error code otherwise.h](jg)}(h**Parameters**h]j)}(hjGh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjAubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjfh]h!struct snd_soc_dapm_context *dapm}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj`ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj]ubj)}(h'``struct snd_soc_dai *dai`` parent DAI h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjh]hstruct snd_soc_dai *dai}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h parent DAIh]h parent DAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj]ubeh}(h]h ]h"]h$]h&]uh1jhjAubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjAubjg)}(h+Returns 0 on success, error code otherwise.h]h+Returns 0 on success, error code otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_stream_event (C function)c.snd_soc_dapm_stream_eventhNtauh1hhjhhhNhNubh)}(hhh](h)}(hWvoid snd_soc_dapm_stream_event (struct snd_soc_pcm_runtime *rtd, int stream, int event)h]h)}(hVvoid snd_soc_dapm_stream_event(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj-hMubj)}(hsnd_soc_dapm_stream_eventh]j%)}(hsnd_soc_dapm_stream_eventh]hsnd_soc_dapm_stream_event}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj-hMubj@)}(h8(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}jjBsbc.snd_soc_dapm_stream_eventasbuh1hhjXubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubjF)}(h int eventh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(heventh]hevent}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj-hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj-hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj-hMhjhhubjb)}(hhh]jg)}(h$send a stream event to the dapm coreh]h$send a stream event to the dapm core}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjFhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj-hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjajjajjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` PCM runtime data ``int stream`` stream name ``int event`` stream event **Description** Sends a stream event to the dapm core. The core then makes any necessary widget power changes. Returns 0 for success else error.h](jg)}(h**Parameters**h]j)}(hjkh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjeubj)}(hhh](j)}(h5``struct snd_soc_pcm_runtime *rtd`` PCM runtime data h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(hPCM runtime datah]hPCM runtime data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int stream`` stream name h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h stream nameh]h stream name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int event`` stream event h](j)}(h ``int event``h]j)}(hjh]h int event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h stream eventh]h stream event}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjeubjg)}(h**Description**h]j)}(hj7h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjeubjg)}(h^Sends a stream event to the dapm core. The core then makes any necessary widget power changes.h]h^Sends a stream event to the dapm core. The core then makes any necessary widget power changes.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjeubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_dapm_enable_pin_unlocked (C function)"c.snd_soc_dapm_enable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hYint snd_soc_dapm_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hXint snd_soc_dapm_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h snd_soc_dapm_enable_pin_unlockedh]j%)}(h snd_soc_dapm_enable_pin_unlockedh]h snd_soc_dapm_enable_pin_unlocked}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb"c.snd_soc_dapm_enable_pin_unlockedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hcharh]hchar}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hpinh]hpin}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h enable pin.h]h enable pin.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXq**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj"h]hconst char *pin}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(hpin nameh]hpin name}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj]h]h Description}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.h]hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hRequires external locking.h]hRequires external locking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h**NOTE**h]j)}(hjh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_enable_pin (C function)c.snd_soc_dapm_enable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hPint snd_soc_dapm_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hOint snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_enable_pinh]j%)}(hsnd_soc_dapm_enable_pinh]hsnd_soc_dapm_enable_pin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_enable_pinasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpinh]hpin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h enable pin.h]h enable pin.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hXU**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj6h]h!struct snd_soc_dapm_context *dapm}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjoh]hconst char *pin}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjiubj)}(hhh]jg)}(hpin nameh]hpin name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.h]hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h**NOTE**h]j)}(hjh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_force_enable_pin_unlocked (C function)(c.snd_soc_dapm_force_enable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_force_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(h^int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj% hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj$ hMubj)}(h&snd_soc_dapm_force_enable_pin_unlockedh]j%)}(h&snd_soc_dapm_force_enable_pin_unlockedh]h&snd_soc_dapm_force_enable_pin_unlocked}(hj7 hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3 ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj$ hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjS hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjO ubj)}(h h]h }(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjq hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjn ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjs modnameN classnameNjj)}j]j)}jj9 sb(c.snd_soc_dapm_force_enable_pin_unlockedasbuh1hhjO ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO ubj%)}(hdapmh]hdapm}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjK ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hpinh]hpin}(hj !hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjK ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj$ hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj$ hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$ hMhj hhubjb)}(hhh]jg)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj3!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0!hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj$ hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjK!jjK!jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hjU!h]h Parameters}(hjW!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS!ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjO!ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjt!h]h!struct snd_soc_dapm_context *dapm}(hjv!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr!ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjn!ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hM hj!ubah}(h]h ]h"]h$]h&]uh1jhjn!ubeh}(h]h ]h"]h$]h&]uh1jhj!hM hjk!ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj!h]hconst char *pin}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj!ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hM hj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hM hjk!ubeh}(h]h ]h"]h$]h&]uh1jhjO!ubjg)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjO!ubjg)}(hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.h]hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjO!ubjg)}(hRequires external locking.h]hRequires external locking.}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjO!ubjg)}(h**NOTE**h]j)}(hj"h]hNOTE}(hj "hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjO!ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj4"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjO!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_enable_pin (C function)c.snd_soc_dapm_force_enable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hVint snd_soc_dapm_force_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hUint snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjc"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_"hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM<ubj)}(h h]h }(hjr"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_"hhhjq"hM<ubj)}(hsnd_soc_dapm_force_enable_pinh]j%)}(hsnd_soc_dapm_force_enable_pinh]hsnd_soc_dapm_force_enable_pin}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_"hhhjq"hM<ubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jj"sbc.snd_soc_dapm_force_enable_pinasbuh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(hdapmh]hdapm}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hcharh]hchar}(hj-#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#ubj)}(h h]h }(hj;#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjI#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(hpinh]hpin}(hjV#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj_"hhhjq"hM<ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj["hhhjq"hM<ubah}(h]jV"ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjq"hM<hjX"hhubjb)}(hhh]jg)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM1hj}#hhubah}(h]h ]h"]h$]h&]uh1jahjX"hhhjq"hM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhjhNhNubj)}(hXq**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM5hj#ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj#h]h!struct snd_soc_dapm_context *dapm}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2hj#ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hM2hj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hM2hj#ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj#h]hconst char *pin}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM3hj#ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hM3hj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj$hM3hj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubjg)}(h**Description**h]j)}(hj5$h]h Description}(hj7$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3$ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM5hj#ubjg)}(hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.h]hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.}(hjK$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM5hj#ubjg)}(h**NOTE**h]j)}(hj\$h]hNOTE}(hj^$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ$ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hj#ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hjr$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_soc_dapm_disable_pin_unlocked (C function)#c.snd_soc_dapm_disable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hZint snd_soc_dapm_disable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hYint snd_soc_dapm_disable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMWubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj$hMWubj)}(h!snd_soc_dapm_disable_pin_unlockedh]j%)}(h!snd_soc_dapm_disable_pin_unlockedh]h!snd_soc_dapm_disable_pin_unlocked}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj$hhhj$hMWubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jj$sb#c.snd_soc_dapm_disable_pin_unlockedasbuh1hhj$ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hj*%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hdapmh]hdapm}(hj7%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hjP%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjL%ubj)}(h h]h }(hj]%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjL%ubh)}(hcharh]hchar}(hjk%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjL%ubj)}(h h]h }(hjy%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjL%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL%ubj%)}(hpinh]hpin}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj$hhhj$hMWubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj$hMWubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hMWhj$hhubjb)}(hhh]jg)}(h disable pin.h]h disable pin.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMLhj%hhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj$hMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhjhNhNubj)}(hX9**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Disables input/output pin and its parents or children widgets. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMPhj%ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj%h]h!struct snd_soc_dapm_context *dapm}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMMhj%ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hMMhj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj&hMMhj%ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj8&h]hconst char *pin}(hj:&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6&ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMNhj2&ubj)}(hhh]jg)}(hpin nameh]hpin name}(hjQ&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjM&hMNhjN&ubah}(h]h ]h"]h$]h&]uh1jhj2&ubeh}(h]h ]h"]h$]h&]uh1jhjM&hMNhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubjg)}(h**Description**h]j)}(hjs&h]h Description}(hju&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq&ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMPhj%ubjg)}(h>Disables input/output pin and its parents or children widgets.h]h>Disables input/output pin and its parents or children widgets.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMPhj%ubjg)}(hRequires external locking.h]hRequires external locking.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMRhj%ubjg)}(h**NOTE**h]j)}(hj&h]hNOTE}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMThj%ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMThj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_disable_pin (C function)c.snd_soc_dapm_disable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hQint snd_soc_dapm_disable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hPint snd_soc_dapm_disable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj&hMhubj)}(hsnd_soc_dapm_disable_pinh]j%)}(hsnd_soc_dapm_disable_pinh]hsnd_soc_dapm_disable_pin}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 'ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj&hMhubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj+'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj''ubj)}(h h]h }(hj8'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj''ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjI'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjK'modnameN classnameNjj)}j]j)}jj'sbc.snd_soc_dapm_disable_pinasbuh1hhj''ubj)}(h h]h }(hji'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj''ubj)}(hjh]h*}(hjw'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj''ubj%)}(hdapmh]hdapm}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj''ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#'ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubh)}(hcharh]hchar}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hpinh]hpin}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj#'ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&hhhj&hMhubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&hhhj&hMhubah}(h]j&ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj&hMhhj&hhubjb)}(hhh]jg)}(h disable pin.h]h disable pin.}(hj (hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM_hj(hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj&hMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#(jj#(jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Disables input/output pin and its parents or children widgets. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj-(h]h Parameters}(hj/(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+(ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMchj'(ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjL(h]h!struct snd_soc_dapm_context *dapm}(hjN(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ(ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM`hjF(ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hje(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhja(hM`hjb(ubah}(h]h ]h"]h$]h&]uh1jhjF(ubeh}(h]h ]h"]h$]h&]uh1jhja(hM`hjC(ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj(h]hconst char *pin}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMahj(ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(hMahj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hMahjC(ubeh}(h]h ]h"]h$]h&]uh1jhj'(ubjg)}(h**Description**h]j)}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMchj'(ubjg)}(h>Disables input/output pin and its parents or children widgets.h]h>Disables input/output pin and its parents or children widgets.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMchj'(ubjg)}(h**NOTE**h]j)}(hj(h]hNOTE}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMehj'(ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMehj'(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_nc_pin_unlocked (C function)c.snd_soc_dapm_nc_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hUint snd_soc_dapm_nc_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hTint snd_soc_dapm_nc_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj,)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj()hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj;)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj()hhhj:)hMubj)}(hsnd_soc_dapm_nc_pin_unlockedh]j%)}(hsnd_soc_dapm_nc_pin_unlockedh]hsnd_soc_dapm_nc_pin_unlocked}(hjM)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjI)ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj()hhhj:)hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hji)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhje)ubj)}(h h]h }(hjv)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje)ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jjO)sbc.snd_soc_dapm_nc_pin_unlockedasbuh1hhje)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje)ubj%)}(hdapmh]hdapm}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hje)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhja)ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubh)}(hcharh]hchar}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hpinh]hpin}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhja)ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj()hhhj:)hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$)hhhj:)hMubah}(h]j)ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:)hMhj!)hhubjb)}(hhh]jg)}(hpermanently disable pin.h]hpermanently disable pin.}(hjI*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMxhjF*hhubah}(h]h ]h"]h$]h&]uh1jahj!)hhhj:)hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjja*jja*jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Marks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hjk*h]h Parameters}(hjm*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji*ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM|hje*ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj*h]h!struct snd_soc_dapm_context *dapm}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMyhj*ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMyhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMyhj*ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj*h]hconst char *pin}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMzhj*ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMzhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMzhj*ubeh}(h]h ]h"]h$]h&]uh1jhje*ubjg)}(h**Description**h]j)}(hj*h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM|hje*ubjg)}(hXMarks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin.h]hXMarks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM|hje*ubjg)}(hRequires external locking.h]hRequires external locking.}(hj#+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhje*ubjg)}(h**NOTE**h]j)}(hj4+h]hNOTE}(hj6+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2+ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhje*ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hjJ+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhje*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_soc_dapm_nc_pin (C function)c.snd_soc_dapm_nc_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hLint snd_soc_dapm_nc_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hKint snd_soc_dapm_nc_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjy+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhju+hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hju+hhhj+hMubj)}(hsnd_soc_dapm_nc_pinh]j%)}(hsnd_soc_dapm_nc_pinh]hsnd_soc_dapm_nc_pin}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhju+hhhj+hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jj+sbc.snd_soc_dapm_nc_pinasbuh1hhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(hdapmh]hdapm}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj(,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$,ubj)}(h h]h }(hj5,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$,ubh)}(hcharh]hchar}(hjC,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$,ubj)}(h h]h }(hjQ,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$,ubj)}(hjh]h*}(hj_,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$,ubj%)}(hpinh]hpin}(hjl,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hju+hhhj+hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjq+hhhj+hMubah}(h]jl+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj+hMhjn+hhubjb)}(hhh]jg)}(hpermanently disable pin.h]hpermanently disable pin.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,hhubah}(h]h ]h"]h$]h&]uh1jahjn+hhhj+hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Marks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj,h]h!struct snd_soc_dapm_context *dapm}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMhj,ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj-h]hconst char *pin}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj -ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj)-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%-hMhj&-ubah}(h]h ]h"]h$]h&]uh1jhj -ubeh}(h]h ]h"]h$]h&]uh1jhj%-hMhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,ubjg)}(h**Description**h]j)}(hjK-h]h Description}(hjM-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI-ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubjg)}(hXMarks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin.h]hXMarks the specified pin as being not connected, disabling it along any parent or child widgets. At present this is identical to snd_soc_dapm_disable_pin() but in future it will be extended to do additional things such as disabling controls which only affect paths through the pin.}(hja-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubjg)}(h**NOTE**h]j)}(hjr-h]hNOTE}(hjt-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp-ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_status (C function)c.snd_soc_dapm_get_pin_statushNtauh1hhjhhhNhNubh)}(hhh](h)}(hTint snd_soc_dapm_get_pin_status (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hSint snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj-hMubj)}(hsnd_soc_dapm_get_pin_statush]j%)}(hsnd_soc_dapm_get_pin_statush]hsnd_soc_dapm_get_pin_status}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj-hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj-hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj-ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jj-sbc.snd_soc_dapm_get_pin_statusasbuh1hhj-ubj)}(h h]h }(hj2.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj@.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hdapmh]hdapm}(hjM.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hjf.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjb.ubj)}(h h]h }(hjs.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb.ubh)}(hcharh]hchar}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjb.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb.ubj%)}(hpinh]hpin}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj-hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-hhhj-hMubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj-hMhj-hhubjb)}(hhh]jg)}(hget audio pin statush]hget audio pin status}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.hhubah}(h]h ]h"]h$]h&]uh1jahj-hhhj-hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` audio signal pin endpoint (or start point) **Description** Get audio pin status - connected or disconnected. Returns 1 for connected otherwise 0.h](jg)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj/h]h!struct snd_soc_dapm_context *dapm}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj/ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj./hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*/hMhj+/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj*/hMhj /ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hjN/h]hconst char *pin}(hjP/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL/ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjH/ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hjg/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjc/hMhjd/ubah}(h]h ]h"]h$]h&]uh1jhjH/ubeh}(h]h ]h"]h$]h&]uh1jhjc/hMhj /ubeh}(h]h ]h"]h$]h&]uh1jhj.ubjg)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubjg)}(h1Get audio pin status - connected or disconnected.h]h1Get audio pin status - connected or disconnected.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubjg)}(h$Returns 1 for connected otherwise 0.h]h$Returns 1 for connected otherwise 0.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_ignore_suspend (C function)c.snd_soc_dapm_ignore_suspendhNtauh1hhjhhhNhNubh)}(hhh](h)}(hTint snd_soc_dapm_ignore_suspend (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hSint snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhj/hMubj)}(hsnd_soc_dapm_ignore_suspendh]j%)}(hsnd_soc_dapm_ignore_suspendh]hsnd_soc_dapm_ignore_suspend}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhj/hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj'0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj80hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj50ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:0modnameN classnameNjj)}j]j)}jj0sbc.snd_soc_dapm_ignore_suspendasbuh1hhj0ubj)}(h h]h }(hjX0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hjf0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hdapmh]hdapm}(hjs0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hcharh]hchar}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hpinh]hpin}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj/hhhj/hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhj/hMubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj/hMhj/hhubjb)}(hhh]jg)}(h'ignore suspend status for DAPM endpointh]h'ignore suspend status for DAPM endpoint}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` audio signal pin endpoint (or start point) **Description** Mark the given endpoint or pin as ignoring suspend. When the system is disabled a path between two endpoints flagged as ignoring suspend will not be disabled. The path must already be enabled via normal means at suspend time, it will not be turned on if it was not already enabled.h](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj1ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj;1h]h!struct snd_soc_dapm_context *dapm}(hj=1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj91ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj51ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjT1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjP1hMhjQ1ubah}(h]h ]h"]h$]h&]uh1jhj51ubeh}(h]h ]h"]h$]h&]uh1jhjP1hMhj21ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hjt1h]hconst char *pin}(hjv1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr1ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjn1ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjn1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMhj21ubeh}(h]h ]h"]h$]h&]uh1jhj1ubjg)}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj1ubjg)}(hXMark the given endpoint or pin as ignoring suspend. When the system is disabled a path between two endpoints flagged as ignoring suspend will not be disabled. The path must already be enabled via normal means at suspend time, it will not be turned on if it was not already enabled.h]hXMark the given endpoint or pin as ignoring suspend. When the system is disabled a path between two endpoints flagged as ignoring suspend will not be disabled. The path must already be enabled via normal means at suspend time, it will not be turned on if it was not already enabled.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_free (C function)c.snd_soc_dapm_freehNtauh1hhjhhhNhNubh)}(hhh](h)}(h:void snd_soc_dapm_free (struct snd_soc_dapm_context *dapm)h]h)}(h9void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm)h](h)}(hvoidh]hvoid}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1hhhj2hMubj)}(hsnd_soc_dapm_freeh]j%)}(hsnd_soc_dapm_freeh]hsnd_soc_dapm_free}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj1hhhj2hMubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj12hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj-2ubj)}(h h]h }(hj>2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-2ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjO2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ2modnameN classnameNjj)}j]j)}jj2sbc.snd_soc_dapm_freeasbuh1hhj-2ubj)}(h h]h }(hjo2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-2ubj)}(hjh]h*}(hj}2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-2ubj%)}(hdapmh]hdapm}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)2ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj1hhhj2hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhj2hMubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2hMhj1hhubjb)}(hhh]jg)}(hfree dapm resourcesh]hfree dapm resources}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2hhubah}(h]h ]h"]h$]h&]uh1jahj1hhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjhNhNubj)}(h{**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Free all dapm widgets and resources.h](jg)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj2h]h!struct snd_soc_dapm_context *dapm}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj 3hMhj 3ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj 3hMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubjg)}(h**Description**h]j)}(hj03h]h Description}(hj23hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.3ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubjg)}(h$Free all dapm widgets and resources.h]h$Free all dapm widgets and resources.}(hjF3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] asoc-dapm-apiah ]h"] asoc dapm apiah$]h&]uh1hhjphhhhhKlubh)}(hhh](h)}(hASoC DMA Engine APIh]hASoC DMA Engine API}(hjg3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd3hhhhhKpubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_dmaengine_pcm_prepare_slave_config (C function)(c.snd_dmaengine_pcm_prepare_slave_confighNtauh1hhjd3hhhNhNubh)}(hhh](h)}(hint snd_dmaengine_pcm_prepare_slave_config (struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h]h)}(hint snd_dmaengine_pcm_prepare_slave_config(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](h)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK2ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hK2ubj)}(h&snd_dmaengine_pcm_prepare_slave_configh]j%)}(h&snd_dmaengine_pcm_prepare_slave_configh]h&snd_dmaengine_pcm_prepare_slave_config}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj3hK2ubj@)}(hn(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj3sb(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj3ubj)}(h h]h }(hj 4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(h substreamh]h substream}(hj$4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj=4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj94ubj)}(h h]h }(hjJ4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj94ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj[4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjX4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]4modnameN classnameNjj)}j]j4(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj94ubj)}(h h]h }(hjy4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj94ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj94ubj%)}(hparamsh]hparams}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj94ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j4(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(h slave_configh]h slave_config}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhj3hK2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj3hK2ubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hK2hj3hhubjb)}(hhh]jg)}(h%Generic prepare_slave_config callbackh]h%Generic prepare_slave_config callback}(hj.5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&hj+5hhubah}(h]h ]h"]h$]h&]uh1jahj3hhhj3hK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjF5jjF5jjjuh1hhhhjd3hNhNubj)}(hXf**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``struct snd_pcm_hw_params *params`` hw_params ``struct dma_slave_config *slave_config`` DMA slave config to prepare **Description** This function can be used as a generic prepare_slave_config callback for platforms which make use of the snd_dmaengine_dai_dma_data struct for their DAI DMA data. Internally the function will first call snd_hwparams_to_dma_slave_config to fill in the slave config based on the hw_params, followed by snd_dmaengine_pcm_set_config_from_dai_data to fill in the remaining fields based on the DAI DMA data.h](jg)}(h**Parameters**h]j)}(hjP5h]h Parameters}(hjR5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN5ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hjJ5ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjo5h]h#struct snd_pcm_substream *substream}(hjq5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm5ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK'hji5ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK'hj5ubah}(h]h ]h"]h$]h&]uh1jhji5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK'hjf5ubj)}(h/``struct snd_pcm_hw_params *params`` hw_params h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hj5h]h struct snd_pcm_hw_params *params}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK(hj5ubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK(hj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK(hjf5ubj)}(hF``struct dma_slave_config *slave_config`` DMA slave config to prepare h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj5h]h%struct dma_slave_config *slave_config}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK)hj5ubj)}(hhh]jg)}(hDMA slave config to prepareh]hDMA slave config to prepare}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK)hj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK)hjf5ubeh}(h]h ]h"]h$]h&]uh1jhjJ5ubjg)}(h**Description**h]j)}(hj6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK+hjJ5ubjg)}(hXThis function can be used as a generic prepare_slave_config callback for platforms which make use of the snd_dmaengine_dai_dma_data struct for their DAI DMA data. Internally the function will first call snd_hwparams_to_dma_slave_config to fill in the slave config based on the hw_params, followed by snd_dmaengine_pcm_set_config_from_dai_data to fill in the remaining fields based on the DAI DMA data.h]hXThis function can be used as a generic prepare_slave_config callback for platforms which make use of the snd_dmaengine_dai_dma_data struct for their DAI DMA data. Internally the function will first call snd_hwparams_to_dma_slave_config to fill in the slave config based on the hw_params, followed by snd_dmaengine_pcm_set_config_from_dai_data to fill in the remaining fields based on the DAI DMA data.}(hj26hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK+hjJ5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjd3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_dmaengine_pcm_register (C function)c.snd_dmaengine_pcm_registerhNtauh1hhjd3hhhNhNubh)}(hhh](h)}(hvint snd_dmaengine_pcm_register (struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h]h)}(huint snd_dmaengine_pcm_register(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](h)}(hinth]hint}(hja6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]6hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj)}(h h]h }(hjp6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]6hhhjo6hMubj)}(hsnd_dmaengine_pcm_registerh]j%)}(hsnd_dmaengine_pcm_registerh]hsnd_dmaengine_pcm_register}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]6hhhjo6hMubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jj6sbc.snd_dmaengine_pcm_registerasbuh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hdevh]hdev}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(h-const struct snd_dmaengine_pcm_config *configh](jL)}(hj\h]hconst}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj 7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 7ubjL)}(hjOh]hstruct}(hj+7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj 7ubj)}(h h]h }(hj87hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 7ubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hjI7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjK7modnameN classnameNjj)}j]j6c.snd_dmaengine_pcm_registerasbuh1hhj 7ubj)}(h h]h }(hjg7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 7ubj)}(hjh]h*}(hju7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 7ubj%)}(hconfigh]hconfig}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hflagsh]hflags}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj]6hhhjo6hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjY6hhhjo6hMubah}(h]jT6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjo6hMhjV6hhubjb)}(hhh]jg)}(h%Register a dmaengine based PCM deviceh]h%Register a dmaengine based PCM device}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj7hhubah}(h]h ]h"]h$]h&]uh1jahjV6hhhjo6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhjd3hNhNubj)}(h**Parameters** ``struct device *dev`` The parent device for the PCM device ``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration ``unsigned int flags`` Platform specific quirksh](jg)}(h**Parameters**h]j)}(hj8h]h Parameters}(hj!8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj8ubj)}(hhh](j)}(h<``struct device *dev`` The parent device for the PCM device h](j)}(h``struct device *dev``h]j)}(hj>8h]hstruct device *dev}(hj@8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<8ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj88ubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hjW8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjS8hMhjT8ubah}(h]h ]h"]h$]h&]uh1jhj88ubeh}(h]h ]h"]h$]h&]uh1jhjS8hMhj58ubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjw8h]h-const struct snd_dmaengine_pcm_config *config}(hjy8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju8ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhjq8ubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjq8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj58ubj)}(h/``unsigned int flags`` Platform specific quirksh](j)}(h``unsigned int flags``h]j)}(hj8h]hunsigned int flags}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj8ubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj58ubeh}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjd3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_dmaengine_pcm_unregister (C function)c.snd_dmaengine_pcm_unregisterhNtauh1hhjd3hhhNhNubh)}(hhh](h)}(h6void snd_dmaengine_pcm_unregister (struct device *dev)h]h)}(h5void snd_dmaengine_pcm_unregister(struct device *dev)h](h)}(hvoidh]hvoid}(hj 9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9hhhj9hMubj)}(hsnd_dmaengine_pcm_unregisterh]j%)}(hsnd_dmaengine_pcm_unregisterh]hsnd_dmaengine_pcm_unregister}(hj+9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9hhhj9hMubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjG9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjC9ubj)}(h h]h }(hjT9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC9ubh)}(hhh]j%)}(hdeviceh]hdevice}(hje9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjg9modnameN classnameNjj)}j]j)}jj-9sbc.snd_dmaengine_pcm_unregisterasbuh1hhjC9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC9ubj%)}(hdevh]hdev}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?9ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj9hhhj9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhj9hMubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hMhj8hhubjb)}(hhh]jg)}(h$Removes a dmaengine based PCM deviceh]h$Removes a dmaengine based PCM device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj9hhubah}(h]h ]h"]h$]h&]uh1jahj8hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhjd3hNhNubj)}(h**Parameters** ``struct device *dev`` Parent device the PCM was register with **Description** Removes a dmaengine based PCM device previously registered with snd_dmaengine_pcm_register.h](jg)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj9ubj)}(hhh]j)}(h?``struct device *dev`` Parent device the PCM was register with h](j)}(h``struct device *dev``h]j)}(hj :h]hstruct device *dev}(hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj :ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj:ubj)}(hhh]jg)}(h'Parent device the PCM was register withh]h'Parent device the PCM was register with}(hj$:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj :hMhj!:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj :hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(h**Description**h]j)}(hjF:h]h Description}(hjH:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD:ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj9ubjg)}(h[Removes a dmaengine based PCM device previously registered with snd_dmaengine_pcm_register.h]h[Removes a dmaengine based PCM device previously registered with snd_dmaengine_pcm_register.}(hj\:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjd3hhhNhNubeh}(h]asoc-dma-engine-apiah ]h"]asoc dma engine apiah$]h&]uh1hhjphhhhhKpubeh}(h]asocah ]h"]asocah$]h&]uh1hhhhhhhhK_ubh)}(hhh](h)}(hMiscellaneous Functionsh]hMiscellaneous Functions}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hhhhhKtubh)}(hhh](h)}(hHardware-Dependent Devices APIh]hHardware-Dependent Devices API}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hhhhhKwubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_hwdep_new (C function)c.snd_hwdep_newhNtauh1hhj:hhhNhNubh)}(hhh](h)}(hZint snd_hwdep_new (struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h]h)}(hYint snd_hwdep_new(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](h)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMkubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhj:hMkubj)}(h snd_hwdep_newh]j%)}(h snd_hwdep_newh]h snd_hwdep_new}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhj:hMkubj@)}(hH(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jj:sbc.snd_hwdep_newasbuh1hhj:ubj)}(h h]h }(hj8;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hjF;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hcardh]hcard}(hjS;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hchar *idh](h)}(hcharh]hchar}(hjl;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjh;ubj)}(h h]h }(hjz;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjh;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh;ubj%)}(hidh]hid}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjh;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(h int deviceh](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj%)}(hdeviceh]hdevice}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hstruct snd_hwdep **rhwdeph](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubh)}(hhh]j%)}(h snd_hwdeph]h snd_hwdep}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j4;c.snd_hwdep_newasbuh1hhj;ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hj-<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hjh]h*}(hj:<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(hrhwdeph]hrhwdep}(hjG<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj:hhhj:hMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:hhhj:hMkubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hMkhj:hhubjb)}(hhh]jg)}(hcreate a new hwdep instanceh]hcreate a new hwdep instance}(hjq<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_hjn<hhubah}(h]h ]h"]h$]h&]uh1jahj:hhhj:hMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhj:hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``char *id`` the id string ``int device`` the device index (zero-based) ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance **Description** Creates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchj<ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj<h]hstruct snd_card *card}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM`hj<ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj<hM`hj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hM`hj<ubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hj<h]hchar *id}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMahj<ubj)}(hhh]jg)}(h the id stringh]h the id string}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hMahj=ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj=hMahj<ubj)}(h-``int device`` the device index (zero-based) h](j)}(h``int device``h]j)}(hj$=h]h int device}(hj&=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMbhj=ubj)}(hhh]jg)}(hthe device index (zero-based)h]hthe device index (zero-based)}(hj==hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9=hMbhj:=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj9=hMbhj<ubj)}(hJ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance h](j)}(h``struct snd_hwdep **rhwdep``h]j)}(hj]=h]hstruct snd_hwdep **rhwdep}(hj_=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjW=ubj)}(hhh]jg)}(h+the pointer to store the new hwdep instanceh]h+the pointer to store the new hwdep instance}(hjv=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjr=hMchjs=ubah}(h]h ]h"]h$]h&]uh1jhjW=ubeh}(h]h ]h"]h$]h&]uh1jhjr=hMchj<ubeh}(h]h ]h"]h$]h&]uh1jhj<ubjg)}(h**Description**h]j)}(hj=h]h Description}(hj=9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMehj<ubjg)}(hCreates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller.h]hCreates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMehj<ubjg)}(h **Return**h]j)}(hj=h]hReturn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihj<ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj:hhhNhNubeh}(h]hardware-dependent-devices-apiah ]h"]hardware-dependent devices apiah$]h&]uh1hhj:hhhhhKwubh)}(hhh](h)}(hJack Abstraction Layer APIh]hJack Abstraction Layer API}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hhhhhK{ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_types (C enum)c.snd_jack_typeshNtauh1hhj=hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhNubh)}(hhh](h)}(hsnd_jack_typesh]h)}(henum snd_jack_typesh](jL)}(hj'h]henum}(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKubj)}(h h]h }(hj,>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhj+>hKubj)}(hsnd_jack_typesh]j%)}(hj>h]hsnd_jack_types}(hj>>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhj+>hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhj+>hKubah}(h]j>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj+>hKhj>hhubjb)}(hhh]jg)}(h Jack types which can be reportedh]h Jack types which can be reported}(hj`>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj]>hhubah}(h]h ]h"]h$]h&]uh1jahj>hhhj+>hKubeh}(h]h ](jenumeh"]h$]h&]jjjjx>jjx>jjjuh1hhhhj=hj>hNubj)}(hX**Constants** ``SND_JACK_HEADPHONE`` Headphone ``SND_JACK_MICROPHONE`` Microphone ``SND_JACK_HEADSET`` Headset ``SND_JACK_LINEOUT`` Line out ``SND_JACK_MECHANICAL`` Mechanical switch ``SND_JACK_VIDEOOUT`` Video out ``SND_JACK_AVOUT`` AV (Audio Video) out ``SND_JACK_LINEIN`` Line in ``SND_JACK_BTN_0`` Button 0 ``SND_JACK_BTN_1`` Button 1 ``SND_JACK_BTN_2`` Button 2 ``SND_JACK_BTN_3`` Button 3 ``SND_JACK_BTN_4`` Button 4 ``SND_JACK_BTN_5`` Button 5h](jg)}(h **Constants**h]j)}(hj>h]h Constants}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj|>ubj)}(hhh](j)}(h!``SND_JACK_HEADPHONE`` Headphone h](j)}(h``SND_JACK_HEADPHONE``h]j)}(hj>h]hSND_JACK_HEADPHONE}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj>ubj)}(hhh]jg)}(h Headphoneh]h Headphone}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubj)}(h#``SND_JACK_MICROPHONE`` Microphone h](j)}(h``SND_JACK_MICROPHONE``h]j)}(hj>h]hSND_JACK_MICROPHONE}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj>ubj)}(hhh]jg)}(h Microphoneh]h Microphone}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubj)}(h``SND_JACK_HEADSET`` Headset h](j)}(h``SND_JACK_HEADSET``h]j)}(hj?h]hSND_JACK_HEADSET}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj ?ubj)}(hhh]jg)}(hHeadseth]hHeadset}(hj,?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(?hKhj)?ubah}(h]h ]h"]h$]h&]uh1jhj ?ubeh}(h]h ]h"]h$]h&]uh1jhj(?hKhj>ubj)}(h``SND_JACK_LINEOUT`` Line out h](j)}(h``SND_JACK_LINEOUT``h]j)}(hjL?h]hSND_JACK_LINEOUT}(hjN?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hjF?ubj)}(hhh]jg)}(hLine outh]hLine out}(hje?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhja?hK hjb?ubah}(h]h ]h"]h$]h&]uh1jhjF?ubeh}(h]h ]h"]h$]h&]uh1jhja?hK hj>ubj)}(h*``SND_JACK_MECHANICAL`` Mechanical switch h](j)}(h``SND_JACK_MECHANICAL``h]j)}(hj?h]hSND_JACK_MECHANICAL}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK#hj?ubj)}(hhh]jg)}(hMechanical switchh]hMechanical switch}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hK#hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hK#hj>ubj)}(h ``SND_JACK_VIDEOOUT`` Video out h](j)}(h``SND_JACK_VIDEOOUT``h]j)}(hj?h]hSND_JACK_VIDEOOUT}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK&hj?ubj)}(hhh]jg)}(h Video outh]h Video out}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hK&hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hK&hj>ubj)}(h(``SND_JACK_AVOUT`` AV (Audio Video) out h](j)}(h``SND_JACK_AVOUT``h]j)}(hj?h]hSND_JACK_AVOUT}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK)hj?ubj)}(hhh]jg)}(hAV (Audio Video) outh]hAV (Audio Video) out}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj @hK)hj @ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj @hK)hj>ubj)}(h``SND_JACK_LINEIN`` Line in h](j)}(h``SND_JACK_LINEIN``h]j)}(hj0@h]hSND_JACK_LINEIN}(hj2@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK,hj*@ubj)}(hhh]jg)}(hLine inh]hLine in}(hjI@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE@hK,hjF@ubah}(h]h ]h"]h$]h&]uh1jhj*@ubeh}(h]h ]h"]h$]h&]uh1jhjE@hK,hj>ubj)}(h``SND_JACK_BTN_0`` Button 0 h](j)}(h``SND_JACK_BTN_0``h]j)}(hji@h]hSND_JACK_BTN_0}(hjk@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK/hjc@ubj)}(hhh]jg)}(hButton 0h]hButton 0}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~@hK/hj@ubah}(h]h ]h"]h$]h&]uh1jhjc@ubeh}(h]h ]h"]h$]h&]uh1jhj~@hK/hj>ubj)}(h``SND_JACK_BTN_1`` Button 1 h](j)}(h``SND_JACK_BTN_1``h]j)}(hj@h]hSND_JACK_BTN_1}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK2hj@ubj)}(hhh]jg)}(hButton 1h]hButton 1}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hK2hj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hK2hj>ubj)}(h``SND_JACK_BTN_2`` Button 2 h](j)}(h``SND_JACK_BTN_2``h]j)}(hj@h]hSND_JACK_BTN_2}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK5hj@ubj)}(hhh]jg)}(hButton 2h]hButton 2}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hK5hj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hK5hj>ubj)}(h``SND_JACK_BTN_3`` Button 3 h](j)}(h``SND_JACK_BTN_3``h]j)}(hjAh]hSND_JACK_BTN_3}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK8hjAubj)}(hhh]jg)}(hButton 3h]hButton 3}(hj-AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)AhK8hj*Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj)AhK8hj>ubj)}(h``SND_JACK_BTN_4`` Button 4 h](j)}(h``SND_JACK_BTN_4``h]j)}(hjMAh]hSND_JACK_BTN_4}(hjOAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK;hjGAubj)}(hhh]jg)}(hButton 4h]hButton 4}(hjfAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbAhK;hjcAubah}(h]h ]h"]h$]h&]uh1jhjGAubeh}(h]h ]h"]h$]h&]uh1jhjbAhK;hj>ubj)}(h``SND_JACK_BTN_5`` Button 5h](j)}(h``SND_JACK_BTN_5``h]j)}(hjAh]hSND_JACK_BTN_5}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK=hjAubj)}(hhh]jg)}(hButton 5h]hButton 5}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK>hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK=hj>ubeh}(h]h ]h"]h$]h&]uh1jhj|>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhj>hNubjg)}(h**Description**h]j)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKAhj=hhubjg)}(h#These values are used as a bitmask.h]h#These values are used as a bitmask.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hj=hhubjg)}(hONote that this must be kept in sync with the lookup table in sound/core/jack.c.h]hONote that this must be kept in sync with the lookup table in sound/core/jack.c.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK"hj=hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_jack_add_new_kctl (C function)c.snd_jack_add_new_kctlhNtauh1hhj=hhhNhNubh)}(hhh](h)}(hNint snd_jack_add_new_kctl (struct snd_jack *jack, const char * name, int mask)h]h)}(hLint snd_jack_add_new_kctl(struct snd_jack *jack, const char *name, int mask)h](h)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hj%BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhj$BhMubj)}(hsnd_jack_add_new_kctlh]j%)}(hsnd_jack_add_new_kctlh]hsnd_jack_add_new_kctl}(hj7BhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3Bubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhj$BhMubj@)}(h3(struct snd_jack *jack, const char *name, int mask)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjSBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOBubj)}(h h]h }(hj`BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOBubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjqBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsBmodnameN classnameNjj)}j]j)}jj9Bsbc.snd_jack_add_new_kctlasbuh1hhjOBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOBubj%)}(hjackh]hjack}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKBubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hcharh]hchar}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(hnameh]hname}(hj ChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKBubjF)}(hint maskh](h)}(hinth]hint}(hj"ChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjCubj)}(h h]h }(hj0ChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(hmaskh]hmask}(hj>ChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhj$BhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhj$BhMubah}(h]j Bah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$BhMhj Bhhubjb)}(hhh]jg)}(h-Create a new snd_jack_kctl and add it to jackh]h-Create a new snd_jack_kctl and add it to jack}(hjhChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjeChhubah}(h]h ]h"]h$]h&]uh1jahj Bhhhj$BhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_jack *jack`` the jack instance which the kctl will attaching to ``const char * name`` the name for the snd_kcontrol object ``int mask`` a bitmask of enum snd_jack_type values that can be detected by this snd_jack_kctl object. **Description** Creates a new snd_kcontrol object and adds it to the jack kctl_list. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubj)}(hhh](j)}(hM``struct snd_jack *jack`` the jack instance which the kctl will attaching to h](j)}(h``struct snd_jack *jack``h]j)}(hjCh]hstruct snd_jack *jack}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubj)}(hhh]jg)}(h2the jack instance which the kctl will attaching toh]h2the jack instance which the kctl will attaching to}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(h;``const char * name`` the name for the snd_kcontrol object h](j)}(h``const char * name``h]j)}(hjCh]hconst char * name}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubj)}(hhh]jg)}(h$the name for the snd_kcontrol objecth]h$the name for the snd_kcontrol object}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(hg``int mask`` a bitmask of enum snd_jack_type values that can be detected by this snd_jack_kctl object. h](j)}(h ``int mask``h]j)}(hjDh]hint mask}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjDubj)}(hhh]jg)}(hYa bitmask of enum snd_jack_type values that can be detected by this snd_jack_kctl object.h]hYa bitmask of enum snd_jack_type values that can be detected by this snd_jack_kctl object.}(hj4DhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj1Dubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj0DhMhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubjg)}(h**Description**h]j)}(hjWDh]h Description}(hjYDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUDubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubjg)}(hDCreates a new snd_kcontrol object and adds it to the jack kctl_list.h]hDCreates a new snd_kcontrol object and adds it to the jack kctl_list.}(hjmDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubjg)}(h **Return**h]j)}(hj~Dh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Dubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_new (C function)c.snd_jack_newhNtauh1hhj=hhhNhNubh)}(hhh](h)}(hint snd_jack_new (struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h]h)}(hint snd_jack_new(struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h](h)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDhhhjDhMubj)}(h snd_jack_newh]j%)}(h snd_jack_newh]h snd_jack_new}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjDhhhjDhMubj@)}(hp(struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjEhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hj EhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj EmodnameN classnameNjj)}j]j)}jjDsbc.snd_jack_newasbuh1hhjDubj)}(h h]h }(hj>EhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(hjh]h*}(hjLEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj%)}(hcardh]hcard}(hjYEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjrEhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnEubh)}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnEubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnEubj%)}(hidh]hid}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hint typeh](h)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(htypeh]htype}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hstruct snd_jack **jjackh](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hj"FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$FmodnameN classnameNjj)}j]j:Ec.snd_jack_newasbuh1hhjFubj)}(h h]h }(hj@FhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjNFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj)}(hjh]h*}(hj[FhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hjjackh]hjjack}(hjhFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hbool initial_kctlh](h)}(hjԜh]hbool}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}Fubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}Fubj%)}(h initial_kctlh]h initial_kctl}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}Fubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hbool phantom_jackh](h)}(hjԜh]hbool}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(h phantom_jackh]h phantom_jack}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjDhhhjDhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjDhMubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhMhjDhhubjb)}(hhh]jg)}(hCreate a new jackh]hCreate a new jack}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjFhhubah}(h]h ]h"]h$]h&]uh1jahjDhhhjDhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhj=hNhNubj)}(hX`**Parameters** ``struct snd_card *card`` the card instance ``const char *id`` an identifying string for this jack ``int type`` a bitmask of enum snd_jack_type values that can be detected by this jack ``struct snd_jack **jjack`` Used to provide the allocated jack object to the caller. ``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. ``bool phantom_jack`` Don't create a input device for phantom jacks. **Description** Creates a new jack object. **Return** Zero if successful, or a negative error code on failure. On success **jjack** will be initialised.h](jg)}(h**Parameters**h]j)}(hjGh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj;Gh]hstruct snd_card *card}(hj=GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Gubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj5Gubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjTGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPGhMhjQGubah}(h]h ]h"]h$]h&]uh1jhj5Gubeh}(h]h ]h"]h$]h&]uh1jhjPGhMhj2Gubj)}(h7``const char *id`` an identifying string for this jack h](j)}(h``const char *id``h]j)}(hjtGh]hconst char *id}(hjvGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjnGubj)}(hhh]jg)}(h#an identifying string for this jackh]h#an identifying string for this jack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjnGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj2Gubj)}(hV``int type`` a bitmask of enum snd_jack_type values that can be detected by this jack h](j)}(h ``int type``h]j)}(hjGh]hint type}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(hhh]jg)}(hHa bitmask of enum snd_jack_type values that can be detected by this jackh]hHa bitmask of enum snd_jack_type values that can be detected by this jack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj2Gubj)}(hU``struct snd_jack **jjack`` Used to provide the allocated jack object to the caller. h](j)}(h``struct snd_jack **jjack``h]j)}(hjGh]hstruct snd_jack **jjack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(hhh]jg)}(h8Used to provide the allocated jack object to the caller.h]h8Used to provide the allocated jack object to the caller.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj2Gubj)}(hN``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. h](j)}(h``bool initial_kctl``h]j)}(hj Hh]hbool initial_kctl}(hj"HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjHubj)}(hhh]jg)}(h7if true, create a kcontrol and add it to the jack list.h]h7if true, create a kcontrol and add it to the jack list.}(hj9HhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5HhMhj6Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj5HhMhj2Gubj)}(hE``bool phantom_jack`` Don't create a input device for phantom jacks. h](j)}(h``bool phantom_jack``h]j)}(hjYHh]hbool phantom_jack}(hj[HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWHubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjSHubj)}(hhh]jg)}(h.Don't create a input device for phantom jacks.h]h0Don’t create a input device for phantom jacks.}(hjrHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnHhMhjoHubah}(h]h ]h"]h$]h&]uh1jhjSHubeh}(h]h ]h"]h$]h&]uh1jhjnHhMhj2Gubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjHh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubjg)}(hCreates a new jack object.h]hCreates a new jack object.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubjg)}(h **Return**h]j)}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubjg)}(hbZero if successful, or a negative error code on failure. On success **jjack** will be initialised.h](hDZero if successful, or a negative error code on failure. On success }(hjHhhhNhNubj)}(h **jjack**h]hjjack}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh will be initialised.}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_jack_set_parent (C function)c.snd_jack_set_parenthNtauh1hhj=hhhNhNubh)}(hhh](h)}(hGvoid snd_jack_set_parent (struct snd_jack *jack, struct device *parent)h]h)}(hFvoid snd_jack_set_parent(struct snd_jack *jack, struct device *parent)h](h)}(hvoidh]hvoid}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMKubj)}(h h]h }(hj!IhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhj IhMKubj)}(hsnd_jack_set_parenth]j%)}(hsnd_jack_set_parenth]hsnd_jack_set_parent}(hj3IhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/Iubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhj IhMKubj@)}(h.(struct snd_jack *jack, struct device *parent)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjOIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKIubj)}(h h]h }(hj\IhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKIubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjmIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjoImodnameN classnameNjj)}j]j)}jj5Isbc.snd_jack_set_parentasbuh1hhjKIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKIubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKIubj%)}(hjackh]hjack}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGIubjF)}(hstruct device *parenth](jL)}(hjOh]hstruct}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hdeviceh]hdevice}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]jIc.snd_jack_set_parentasbuh1hhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hj JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hparenth]hparent}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGIubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhj IhMKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj Ihhhj IhMKubah}(h]jIah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj IhMKhjIhhubjb)}(hhh]jg)}(h Set the parent device for a jackh]h Set the parent device for a jack}(hjBJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMBhj?Jhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhj IhMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZJjjZJjjjuh1hhhhj=hNhNubj)}(hX]**Parameters** ``struct snd_jack *jack`` The jack to configure ``struct device *parent`` The device to set as parent for the jack. **Description** Set the parent for the jack devices in the device tree. This function is only valid prior to registration of the jack. If no parent is configured then the parent device will be the sound card.h](jg)}(h**Parameters**h]j)}(hjdJh]h Parameters}(hjfJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbJubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMFhj^Jubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure h](j)}(h``struct snd_jack *jack``h]j)}(hjJh]hstruct snd_jack *jack}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDhj}Jubj)}(hhh]jg)}(hThe jack to configureh]hThe jack to configure}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMDhjJubah}(h]h ]h"]h$]h&]uh1jhj}Jubeh}(h]h ]h"]h$]h&]uh1jhjJhMDhjzJubj)}(hD``struct device *parent`` The device to set as parent for the jack. h](j)}(h``struct device *parent``h]j)}(hjJh]hstruct device *parent}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMEhjJubj)}(hhh]jg)}(h)The device to set as parent for the jack.h]h)The device to set as parent for the jack.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMEhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMEhjzJubeh}(h]h ]h"]h$]h&]uh1jhj^Jubjg)}(h**Description**h]j)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMGhj^Jubjg)}(hSet the parent for the jack devices in the device tree. This function is only valid prior to registration of the jack. If no parent is configured then the parent device will be the sound card.h]hSet the parent for the jack devices in the device tree. This function is only valid prior to registration of the jack. If no parent is configured then the parent device will be the sound card.}(hj KhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMGhj^Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_set_key (C function)c.snd_jack_set_keyhNtauh1hhj=hhhNhNubh)}(hhh](h)}(hSint snd_jack_set_key (struct snd_jack *jack, enum snd_jack_types type, int keytype)h]h)}(hRint snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](h)}(hinth]hint}(hjuh1jhj8KhhhjJKhMmubj@)}(h>(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjyKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuKubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jj_Ksbc.snd_jack_set_keyasbuh1hhjuKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuKubj%)}(hjackh]hjack}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqKubjF)}(henum snd_jack_types typeh](jL)}(hj'h]henum}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hsnd_jack_typesh]hsnd_jack_types}(hj LhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj LmodnameN classnameNjj)}j]jKc.snd_jack_set_keyasbuh1hhjKubj)}(h h]h }(hj'LhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(htypeh]htype}(hj5LhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqKubjF)}(h int keytypeh](h)}(hinth]hint}(hjNLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJLubj)}(h h]h }(hj\LhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJLubj%)}(hkeytypeh]hkeytype}(hjjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqKubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8KhhhjJKhMmubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4KhhhjJKhMmubah}(h]j/Kah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJKhMmhj1Khhubjb)}(hhh]jg)}(hSet a key mapping on a jackh]hSet a key mapping on a jack}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMUhjLhhubah}(h]h ]h"]h$]h&]uh1jahj1KhhhjJKhMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_jack *jack`` The jack to configure ``enum snd_jack_types type`` Jack report type for this key ``int keytype`` Input layer key type to be reported **Description** Map a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported. If jacks are not reporting via the input API this call will have no effect. Note that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction. This function may only be called prior to registration of the jack. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMYhjLubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure h](j)}(h``struct snd_jack *jack``h]j)}(hjLh]hstruct snd_jack *jack}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMWhjLubj)}(hhh]jg)}(hThe jack to configureh]hThe jack to configure}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhMWhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMWhjLubj)}(h;``enum snd_jack_types type`` Jack report type for this key h](j)}(h``enum snd_jack_types type``h]j)}(hjMh]henum snd_jack_types type}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Mubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMXhjMubj)}(hhh]jg)}(hJack report type for this keyh]hJack report type for this key}(hj'MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#MhMXhj$Mubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhj#MhMXhjLubj)}(h4``int keytype`` Input layer key type to be reported h](j)}(h``int keytype``h]j)}(hjGMh]h int keytype}(hjIMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEMubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMYhjAMubj)}(hhh]jg)}(h#Input layer key type to be reportedh]h#Input layer key type to be reported}(hj`MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\MhMYhj]Mubah}(h]h ]h"]h$]h&]uh1jhjAMubeh}(h]h ]h"]h$]h&]uh1jhj\MhMYhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubjg)}(h**Description**h]j)}(hjMh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chM[hjLubjg)}(hMap a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported.h]hMap a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chM[hjLubjg)}(hKIf jacks are not reporting via the input API this call will have no effect.h]hKIf jacks are not reporting via the input API this call will have no effect.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chM`hjLubjg)}(hXNote that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction.h]hXNote that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMchjLubjg)}(hCThis function may only be called prior to registration of the jack.h]hCThis function may only be called prior to registration of the jack.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMihjLubjg)}(h **Return**h]j)}(hjMh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMkhjLubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMkhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_report (C function)c.snd_jack_reporthNtauh1hhj=hhhNhNubh)}(hhh](h)}(h8void snd_jack_report (struct snd_jack *jack, int status)h]h)}(h7void snd_jack_report(struct snd_jack *jack, int status)h](h)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hj*NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj)NhMubj)}(hsnd_jack_reporth]j%)}(hsnd_jack_reporth]hsnd_jack_report}(hjuh1jhjNhhhj)NhMubj@)}(h#(struct snd_jack *jack, int status)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjXNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTNubj)}(h h]h }(hjeNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTNubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjvNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxNmodnameN classnameNjj)}j]j)}jj>Nsbc.snd_jack_reportasbuh1hhjTNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTNubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTNubj%)}(hjackh]hjack}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPNubjF)}(h int statush](h)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hstatush]hstatus}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPNubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjNhhhj)NhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNhhhj)NhMubah}(h]jNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)NhMhjNhhubjb)}(hhh]jg)}(h#Report the current status of a jackh]h#Report the current status of a jack}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj Ohhubah}(h]h ]h"]h$]h&]uh1jahjNhhhj)NhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(Ojj(Ojjjuh1hhhhj=hNhNubj)}(h**Parameters** ``struct snd_jack *jack`` The jack to report status for ``int status`` The current status of the jack **Note** This function uses mutexes and should be called from a context which can sleep (such as a workqueue).h](jg)}(h**Parameters**h]j)}(hj2Oh]h Parameters}(hj4OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Oubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj,Oubj)}(hhh](j)}(h8``struct snd_jack *jack`` The jack to report status for h](j)}(h``struct snd_jack *jack``h]j)}(hjQOh]hstruct snd_jack *jack}(hjSOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOOubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKOubj)}(hhh]jg)}(hThe jack to report status forh]hThe jack to report status for}(hjjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfOhMhjgOubah}(h]h ]h"]h$]h&]uh1jhjKOubeh}(h]h ]h"]h$]h&]uh1jhjfOhMhjHOubj)}(h.``int status`` The current status of the jack h](j)}(h``int status``h]j)}(hjOh]h int status}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjOubj)}(hhh]jg)}(hThe current status of the jackh]hThe current status of the jack}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhMhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMhjHOubeh}(h]h ]h"]h$]h&]uh1jhj,Oubjg)}(h**Note**h]j)}(hjOh]hNote}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj,Oubjg)}(heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).h]heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj,Oubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_soc_jack_report (C function)c.snd_soc_jack_reporthNtauh1hhj=hhhNhNubh)}(hhh](h)}(hJvoid snd_soc_jack_report (struct snd_soc_jack *jack, int status, int mask)h]h)}(hIvoid snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)h](h)}(hvoidh]hvoid}(hj PhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK!ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhK!ubj)}(hsnd_soc_jack_reporth]j%)}(hsnd_soc_jack_reporth]hsnd_soc_jack_report}(hj+PhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'Pubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjPhK!ubj@)}(h1(struct snd_soc_jack *jack, int status, int mask)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjGPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCPubj)}(h h]h }(hjTPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCPubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjePhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgPmodnameN classnameNjj)}j]j)}jj-Psbc.snd_soc_jack_reportasbuh1hhjCPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCPubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCPubj%)}(hjackh]hjack}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?PubjF)}(h int statush](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hstatush]hstatus}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?PubjF)}(hint maskh](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hmaskh]hmask}(hj QhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?Pubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjPhK!ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjPhK!ubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhK!hjOhhubjb)}(hhh]jg)}(h$Report the current status for a jackh]h$Report the current status for a jack}(hj4QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj1Qhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjPhK!ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLQjjLQjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` the jack ``int status`` a bitmask of enum snd_jack_type values that are currently detected. ``int mask`` a bitmask of enum snd_jack_type values that being reported. **Description** If configured using snd_soc_jack_add_pins() then the associated DAPM pins will be enabled or disabled as appropriate and DAPM synchronised. **Note** This function uses mutexes and should be called from a context which can sleep (such as a workqueue).h](jg)}(h**Parameters**h]j)}(hjVQh]h Parameters}(hjXQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPQubj)}(hhh](j)}(h'``struct snd_soc_jack *jack`` the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjuQh]hstruct snd_soc_jack *jack}(hjwQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjoQubj)}(hhh]jg)}(hthe jackh]hthe jack}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjoQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjlQubj)}(hS``int status`` a bitmask of enum snd_jack_type values that are currently detected. h](j)}(h``int status``h]j)}(hjQh]h int status}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQubj)}(hhh]jg)}(hCa bitmask of enum snd_jack_type values that are currently detected.h]hCa bitmask of enum snd_jack_type values that are currently detected.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjlQubj)}(hI``int mask`` a bitmask of enum snd_jack_type values that being reported. h](j)}(h ``int mask``h]j)}(hjQh]hint mask}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQubj)}(hhh]jg)}(h;a bitmask of enum snd_jack_type values that being reported.h]h;a bitmask of enum snd_jack_type values that being reported.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjlQubeh}(h]h ]h"]h$]h&]uh1jhjPQubjg)}(h**Description**h]j)}(hj"Rh]h Description}(hj$RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Rubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPQubjg)}(hIf configured using snd_soc_jack_add_pins() then the associated DAPM pins will be enabled or disabled as appropriate and DAPM synchronised.h]hIf configured using snd_soc_jack_add_pins() then the associated DAPM pins will be enabled or disabled as appropriate and DAPM synchronised.}(hj8RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPQubjg)}(h**Note**h]j)}(hjIRh]hNote}(hjKRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPQubjg)}(heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).h]heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).}(hj_RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_zones (C function)c.snd_soc_jack_add_zoneshNtauh1hhj=hhhNhNubh)}(hhh](h)}(hbint snd_soc_jack_add_zones (struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h]h)}(haint snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](h)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKYubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhjRhKYubj)}(hsnd_soc_jack_add_zonesh]j%)}(hsnd_soc_jack_add_zonesh]hsnd_soc_jack_add_zones}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjRhhhjRhKYubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjRsbc.snd_soc_jack_add_zonesasbuh1hhjRubj)}(h h]h }(hj ShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hjackh]hjack}(hj$ShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(h int counth](h)}(hinth]hint}(hj=ShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9Subj)}(h h]h }(hjKShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9Subj%)}(hcounth]hcount}(hjYShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9Subeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hstruct snd_soc_jack_zone *zonesh](jL)}(hjOh]hstruct}(hjrShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnSubh)}(hhh]j%)}(hsnd_soc_jack_zoneh]hsnd_soc_jack_zone}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jSc.snd_soc_jack_add_zonesasbuh1hhjnSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnSubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnSubj%)}(hzonesh]hzones}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjRhhhjRhKYubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjRhKYubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhKYhjRhhubjb)}(hhh]jg)}(h!Associate voltage zones with jackh]h!Associate voltage zones with jack}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPhjShhubah}(h]h ]h"]h$]h&]uh1jahjRhhhjRhKYubeh}(h]h ](jfunctioneh"]h$]h&]jjjj Tjj Tjjjuh1hhhhj=hNhNubj)}(hX **Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` Number of zones ``struct snd_soc_jack_zone *zones`` Array of zones **Description** After this function has been called the zones specified in the array will be associated with the jack.h](jg)}(h**Parameters**h]j)}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjTubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj4Th]hstruct snd_soc_jack *jack}(hj6ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Tubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKRhj.Tubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjMThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIThKRhjJTubah}(h]h ]h"]h$]h&]uh1jhj.Tubeh}(h]h ]h"]h$]h&]uh1jhjIThKRhj+Tubj)}(h``int count`` Number of zones h](j)}(h ``int count``h]j)}(hjmTh]h int count}(hjoThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKShjgTubj)}(hhh]jg)}(hNumber of zonesh]hNumber of zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKShjTubah}(h]h ]h"]h$]h&]uh1jhjgTubeh}(h]h ]h"]h$]h&]uh1jhjThKShj+Tubj)}(h3``struct snd_soc_jack_zone *zones`` Array of zones h](j)}(h#``struct snd_soc_jack_zone *zones``h]j)}(hjTh]hstruct snd_soc_jack_zone *zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjTubj)}(hhh]jg)}(hArray of zonesh]hArray of zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKThjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKThj+Tubeh}(h]h ]h"]h$]h&]uh1jhjTubjg)}(h**Description**h]j)}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKVhjTubjg)}(hfAfter this function has been called the zones specified in the array will be associated with the jack.h]hfAfter this function has been called the zones specified in the array will be associated with the jack.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKVhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_get_type (C function)c.snd_soc_jack_get_typehNtauh1hhj=hhhNhNubh)}(hhh](h)}(hJint snd_soc_jack_get_type (struct snd_soc_jack *jack, int micbias_voltage)h]h)}(hIint snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage)h](h)}(hinth]hint}(hj&UhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"Uhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKpubj)}(h h]h }(hj5UhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"Uhhhj4UhKpubj)}(hsnd_soc_jack_get_typeh]j%)}(hsnd_soc_jack_get_typeh]hsnd_soc_jack_get_type}(hjGUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"Uhhhj4UhKpubj@)}(h0(struct snd_soc_jack *jack, int micbias_voltage)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjcUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj_Uubj)}(h h]h }(hjpUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_Uubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~Uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjIUsbc.snd_soc_jack_get_typeasbuh1hhj_Uubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_Uubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_Uubj%)}(hjackh]hjack}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_Uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[UubjF)}(hint micbias_voltageh](h)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj%)}(hmicbias_voltageh]hmicbias_voltage}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[Uubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj"Uhhhj4UhKpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhj4UhKpubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4UhKphjUhhubjb)}(hhh]jg)}(hlBased on the mic bias value, this function returns the type of jack from the zones declared in the jack typeh]hlBased on the mic bias value, this function returns the type of jack from the zones declared in the jack type}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKghjVhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhj4UhKpubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3Vjj3Vjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in **Description** Based on the mic bias value passed, this function helps identify the type of jack from the already declared jack zonesh](jg)}(h**Parameters**h]j)}(hj=Vh]h Parameters}(hj?VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Vubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhj7Vubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj\Vh]hstruct snd_soc_jack *jack}(hj^VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKjhjVVubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjuVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqVhKjhjrVubah}(h]h ]h"]h$]h&]uh1jhjVVubeh}(h]h ]h"]h$]h&]uh1jhjqVhKjhjSVubj)}(hP``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in h](j)}(h``int micbias_voltage``h]j)}(hjVh]hint micbias_voltage}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhjVubj)}(hhh]jg)}(h7mic bias voltage at adc channel when jack is plugged inh]h7mic bias voltage at adc channel when jack is plugged in}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhKkhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKkhjSVubeh}(h]h ]h"]h$]h&]uh1jhj7Vubjg)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhj7Vubjg)}(hvBased on the mic bias value passed, this function helps identify the type of jack from the already declared jack zonesh]hvBased on the mic bias value passed, this function helps identify the type of jack from the already declared jack zones}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhj7Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_add_pins (C function)c.snd_soc_jack_add_pinshNtauh1hhj=hhhNhNubh)}(hhh](h)}(h_int snd_soc_jack_add_pins (struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h]h)}(h^int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hj$WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWhhhj#WhKubj)}(hsnd_soc_jack_add_pinsh]j%)}(hsnd_soc_jack_add_pinsh]hsnd_soc_jack_add_pins}(hj6WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2Wubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjWhhhj#WhKubj@)}(hE(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjRWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNWubj)}(h h]h }(hj_WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNWubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjpWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrWmodnameN classnameNjj)}j]j)}jj8Wsbc.snd_soc_jack_add_pinsasbuh1hhjNWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNWubj%)}(hjackh]hjack}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJWubjF)}(h int counth](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hcounth]hcount}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJWubjF)}(hstruct snd_soc_jack_pin *pinsh](jL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(hsnd_soc_jack_pinh]hsnd_soc_jack_pin}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_soc_jack_add_pinsasbuh1hhjWubj)}(h h]h }(hj5XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hjCXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hpinsh]hpins}(hjPXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjWhhhj#WhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj Whhhj#WhKubah}(h]jWah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj#WhKhj Whhubjb)}(hhh]jg)}(h%Associate DAPM pins with an ASoC jackh]h%Associate DAPM pins with an ASoC jack}(hjzXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~hjwXhhubah}(h]h ]h"]h$]h&]uh1jahj Whhhj#WhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack created with snd_soc_card_jack_new_pins() ``int count`` Number of pins ``struct snd_soc_jack_pin *pins`` Array of pins **Description** After this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.h](jg)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh](j)}(hR``struct snd_soc_jack *jack`` ASoC jack created with snd_soc_card_jack_new_pins() h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjXh]hstruct snd_soc_jack *jack}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh]jg)}(h3ASoC jack created with snd_soc_card_jack_new_pins()h]h3ASoC jack created with snd_soc_card_jack_new_pins()}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhKhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjXubj)}(h``int count`` Number of pins h](j)}(h ``int count``h]j)}(hjXh]h int count}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh]jg)}(hNumber of pinsh]hNumber of pins}(hj YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj YhKhj Yubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhj YhKhjXubj)}(h0``struct snd_soc_jack_pin *pins`` Array of pins h](j)}(h!``struct snd_soc_jack_pin *pins``h]j)}(hj-Yh]hstruct snd_soc_jack_pin *pins}(hj/YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Yubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj'Yubj)}(hhh]jg)}(h Array of pinsh]h Array of pins}(hjFYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBYhKhjCYubah}(h]h ]h"]h$]h&]uh1jhj'Yubeh}(h]h ]h"]h$]h&]uh1jhjBYhKhjXubeh}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hjhYh]h Description}(hjjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfYubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubjg)}(hAfter this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.h]hAfter this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.}(hj~YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_jack_notifier_register (C function) c.snd_soc_jack_notifier_registerhNtauh1hhj=hhhNhNubh)}(hhh](h)}(hZvoid snd_soc_jack_notifier_register (struct snd_soc_jack *jack, struct notifier_block *nb)h]h)}(hYvoid snd_soc_jack_notifier_register(struct snd_soc_jack *jack, struct notifier_block *nb)h](h)}(hvoidh]hvoid}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhKubj)}(hsnd_soc_jack_notifier_registerh]j%)}(hsnd_soc_jack_notifier_registerh]hsnd_soc_jack_notifier_register}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjYhKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj ZmodnameN classnameNjj)}j]j)}jjYsb c.snd_soc_jack_notifier_registerasbuh1hhjYubj)}(h h]h }(hj(ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hj6ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hjackh]hjack}(hjCZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hj\ZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXZubj)}(h h]h }(hjiZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXZubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hjzZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|ZmodnameN classnameNjj)}j]j$Z c.snd_soc_jack_notifier_registerasbuh1hhjXZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXZubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXZubj%)}(hnbh]hnb}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjYhhhjYhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjYhKubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhKhjYhhubjb)}(hhh]jg)}(h#Register a notifier for jack statush]h#Register a notifier for jack status}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZhhubah}(h]h ]h"]h$]h&]uh1jahjYhhhjYhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``struct notifier_block *nb`` Notifier block to register **Description** Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.h](jg)}(h**Parameters**h]j)}(hjZh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj[h]hstruct snd_soc_jack *jack}(hj [hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj[ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj7[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3[hKhj4[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj3[hKhj[ubj)}(h9``struct notifier_block *nb`` Notifier block to register h](j)}(h``struct notifier_block *nb``h]j)}(hjW[h]hstruct notifier_block *nb}(hjY[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU[ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQ[ubj)}(hhh]jg)}(hNotifier block to registerh]hNotifier block to register}(hjp[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjl[hKhjm[ubah}(h]h ]h"]h$]h&]uh1jhjQ[ubeh}(h]h ]h"]h$]h&]uh1jhjl[hKhj[ubeh}(h]h ]h"]h$]h&]uh1jhjZubjg)}(h**Description**h]j)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubjg)}(hX"Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.h]hX"Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_jack_notifier_unregister (C function)"c.snd_soc_jack_notifier_unregisterhNtauh1hhj=hhhNhNubh)}(hhh](h)}(h\void snd_soc_jack_notifier_unregister (struct snd_soc_jack *jack, struct notifier_block *nb)h]h)}(h[void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack, struct notifier_block *nb)h](h)}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhj[hKubj)}(h snd_soc_jack_notifier_unregisterh]j%)}(h snd_soc_jack_notifier_unregisterh]h snd_soc_jack_notifier_unregister}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhj[hKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hj!\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj2\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4\modnameN classnameNjj)}j]j)}jj[sb"c.snd_soc_jack_notifier_unregisterasbuh1hhj\ubj)}(h h]h }(hjR\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hj`\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hjackh]hjack}(hjm\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj \ubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]jN\"c.snd_soc_jack_notifier_unregisterasbuh1hhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hnbh]hnb}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj \ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj[hhhj[hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[hhhj[hKubah}(h]j[ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hKhj[hhubjb)}(hhh]jg)}(h%Unregister a notifier for jack statush]h%Unregister a notifier for jack status}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj]hhubah}(h]h ]h"]h$]h&]uh1jahj[hhhj[hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhj=hNhNubj)}(h**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``struct notifier_block *nb`` Notifier block to unregister **Description** Stop notifying for status changes.h](jg)}(h**Parameters**h]j)}(hj)]h]h Parameters}(hj+]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj']ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#]ubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjH]h]hstruct snd_soc_jack *jack}(hjJ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjB]ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hja]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]]hKhj^]ubah}(h]h ]h"]h$]h&]uh1jhjB]ubeh}(h]h ]h"]h$]h&]uh1jhj]]hKhj?]ubj)}(h;``struct notifier_block *nb`` Notifier block to unregister h](j)}(h``struct notifier_block *nb``h]j)}(hj]h]hstruct notifier_block *nb}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj{]ubj)}(hhh]jg)}(hNotifier block to unregisterh]hNotifier block to unregister}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1jhj{]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhj?]ubeh}(h]h ]h"]h$]h&]uh1jhj#]ubjg)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#]ubjg)}(h"Stop notifying for status changes.h]h"Stop notifying for status changes.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_gpios (C function)c.snd_soc_jack_add_gpioshNtauh1hhj=hhhNhNubh)}(hhh](h)}(hbint snd_soc_jack_add_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(haint snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM6ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhj^hM6ubj)}(hsnd_soc_jack_add_gpiosh]j%)}(hsnd_soc_jack_add_gpiosh]hsnd_soc_jack_add_gpios}(hj"^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhj^hM6ubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj>^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:^ubj)}(h h]h }(hjK^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:^ubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj\^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjY^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^^modnameN classnameNjj)}j]j)}jj$^sbc.snd_soc_jack_add_gpiosasbuh1hhj:^ubj)}(h h]h }(hj|^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:^ubj%)}(hjackh]hjack}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6^ubjF)}(h int counth](h)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj%)}(hcounth]hcount}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6^ubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hj^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jx^c.snd_soc_jack_add_gpiosasbuh1hhj^ubj)}(h h]h }(hj!_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hj/_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hgpiosh]hgpios}(hj<_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6^ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj]hhhj^hM6ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj]hhhj^hM6ubah}(h]j]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hM6hj]hhubjb)}(hhh]jg)}(h%Associate GPIO pins with an ASoC jackh]h%Associate GPIO pins with an ASoC jack}(hjf_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-hjc_hhubah}(h]h ]h"]h$]h&]uh1jahj]hhhj^hM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~_jj~_jjjuh1hhhhj=hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** This function will request gpio, set data direction and request irq for each gpio in the array.h](jg)}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hj_ubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj_h]hstruct snd_soc_jack *jack}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM/hj_ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hM/hj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hM/hj_ubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hj_h]h int count}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM0hj_ubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hM0hj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hM0hj_ubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hj`h]hstruct snd_soc_jack_gpio *gpios}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hj`ubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hj2`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.`hM1hj/`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj.`hM1hj_ubeh}(h]h ]h"]h$]h&]uh1jhj_ubjg)}(h**Description**h]j)}(hjT`h]h Description}(hjV`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR`ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hj_ubjg)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hjj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_add_gpiods (C function)c.snd_soc_jack_add_gpiodshNtauh1hhj=hhhNhNubh)}(hhh](h)}(h}int snd_soc_jack_add_gpiods (struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(h|int snd_soc_jack_add_gpiods(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhj`hMubj)}(hsnd_soc_jack_add_gpiodsh]j%)}(hsnd_soc_jack_add_gpiodsh]hsnd_soc_jack_add_gpiods}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhj`hMubj@)}(ha(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct device *gpiod_devh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj`sbc.snd_soc_jack_add_gpiodsasbuh1hhj`ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubj)}(hjh]h*}(hj"ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj%)}(h gpiod_devh]h gpiod_dev}(hj/ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjHahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDaubj)}(h h]h }(hjUahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDaubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjfahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhamodnameN classnameNjj)}j]jac.snd_soc_jack_add_gpiodsasbuh1hhjDaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDaubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDaubj%)}(hjackh]hjack}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(h int counth](h)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hcounth]hcount}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hj bhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj bmodnameN classnameNjj)}j]jac.snd_soc_jack_add_gpiodsasbuh1hhjaubj)}(h h]h }(hj)bhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj)}(hjh]h*}(hj7bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj%)}(hgpiosh]hgpios}(hjDbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj`hhhj`hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`hhhj`hMubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj`hMhj`hhubjb)}(hhh]jg)}(h0Associate GPIO descriptor pins with an ASoC jackh]h0Associate GPIO descriptor pins with an ASoC jack}(hjnbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjkbhhubah}(h]h ]h"]h$]h&]uh1jahj`hhhj`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhj=hNhNubj)}(hX:**Parameters** ``struct device *gpiod_dev`` GPIO consumer device ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** This function will request gpio, set data direction and request irq for each gpio in the array.h](jg)}(h**Parameters**h]j)}(hjbh]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh](j)}(h2``struct device *gpiod_dev`` GPIO consumer device h](j)}(h``struct device *gpiod_dev``h]j)}(hjbh]hstruct device *gpiod_dev}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh]jg)}(hGPIO consumer deviceh]hGPIO consumer device}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjbubj)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjbh]hstruct snd_soc_jack *jack}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjbubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hj!ch]h int count}(hj#chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjcubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hj:chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6chMhj7cubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj6chMhjbubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjZch]hstruct snd_soc_jack_gpio *gpios}(hj\chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXcubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjTcubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hjschhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjochMhjpcubah}(h]h ]h"]h$]h&]uh1jhjTcubeh}(h]h ]h"]h$]h&]uh1jhjochMhjbubeh}(h]h ]h"]h$]h&]uh1jhjbubjg)}(h**Description**h]j)}(hjch]h Description}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubjg)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_free_gpios (C function)c.snd_soc_jack_free_gpioshNtauh1hhj=hhhNhNubh)}(hhh](h)}(hdvoid snd_soc_jack_free_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(hcvoid snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hvoidh]hvoid}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjchMubj)}(hsnd_soc_jack_free_gpiosh]j%)}(hsnd_soc_jack_free_gpiosh]hsnd_soc_jack_free_gpios}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjchhhjchMubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hj$dhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj5dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7dmodnameN classnameNjj)}j]j)}jjcsbc.snd_soc_jack_free_gpiosasbuh1hhjdubj)}(h h]h }(hjUdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjcdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hjackh]hjack}(hjpdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubjF)}(h int counth](h)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hcounth]hcount}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jQdc.snd_soc_jack_free_gpiosasbuh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hgpiosh]hgpios}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjchhhjchMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjchMubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchMhjchhubjb)}(hhh]jg)}(h,Release GPIO pins' resources of an ASoC jackh]h.Release GPIO pins’ resources of an ASoC jack}(hj?ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjuh1jhjfhhhjfhKubj@)}(hO(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hlongh]hlong}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(hdmah]hdma}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned long addrh](h)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hj'ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hlongh]hlong}(hj5ghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjCghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(haddrh]haddr}(hjQghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfgubj)}(h h]h }(hjxghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfgubh)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfgubj%)}(hsizeh]hsize}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned short modeh](h)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hshorth]hshort}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(hmodeh]hmode}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjfhhhjfhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhjfhKubah}(h]j~fah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhKhjfhhubjb)}(hhh]jg)}(hprogram an ISA DMA transferh]hprogram an ISA DMA transfer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhhhubah}(h]h ]h"]h$]h&]uh1jahjfhhhjfhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5hjj5hjjjuh1hhhhjafhNhNubj)}(hX&**Parameters** ``unsigned long dma`` the dma number ``unsigned long addr`` the physical address of the buffer ``unsigned int size`` the DMA transfer size ``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX **Description** Programs an ISA DMA transfer for the given buffer.h](jg)}(h**Parameters**h]j)}(hj?hh]h Parameters}(hjAhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=hubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj9hubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj^hh]hunsigned long dma}(hj`hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\hubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjXhubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjwhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshhKhjthubah}(h]h ]h"]h$]h&]uh1jhjXhubeh}(h]h ]h"]h$]h&]uh1jhjshhKhjUhubj)}(h:``unsigned long addr`` the physical address of the buffer h](j)}(h``unsigned long addr``h]j)}(hjhh]hunsigned long addr}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhubj)}(hhh]jg)}(h"the physical address of the bufferh]h"the physical address of the buffer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjUhubj)}(h,``unsigned int size`` the DMA transfer size h](j)}(h``unsigned int size``h]j)}(hjhh]hunsigned int size}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhubj)}(hhh]jg)}(hthe DMA transfer sizeh]hthe DMA transfer size}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjUhubj)}(h<``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX h](j)}(h``unsigned short mode``h]j)}(hj ih]hunsigned short mode}(hj ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjiubj)}(hhh]jg)}(h#the DMA transfer mode, DMA_MODE_XXXh]h#the DMA transfer mode, DMA_MODE_XXX}(hj"ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihKhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihKhjUhubeh}(h]h ]h"]h$]h&]uh1jhj9hubjg)}(h**Description**h]j)}(hjDih]h Description}(hjFihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBiubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj9hubjg)}(h2Programs an ISA DMA transfer for the given buffer.h]h2Programs an ISA DMA transfer for the given buffer.}(hjZihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj9hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjafhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_disable (C function)c.snd_dma_disablehNtauh1hhjafhhhNhNubh)}(hhh](h)}(h(void snd_dma_disable (unsigned long dma)h]h)}(h'void snd_dma_disable(unsigned long dma)h](h)}(hvoidh]hvoid}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK3ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihK3ubj)}(hsnd_dma_disableh]j%)}(hsnd_dma_disableh]hsnd_dma_disable}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihK3ubj@)}(h(unsigned long dma)h]jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hlongh]hlong}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj%)}(hdmah]hdma}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubah}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhjihK3ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihK3ubah}(h]j|iah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihK3hj~ihhubjb)}(hhh]jg)}(hstop the ISA DMA transferh]hstop the ISA DMA transfer}(hj(jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.hj%jhhubah}(h]h ]h"]h$]h&]uh1jahj~ihhhjihK3ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jjj@jjjjuh1hhhhjafhNhNubj)}(hd**Parameters** ``unsigned long dma`` the dma number **Description** Stops the ISA DMA transfer.h](jg)}(h**Parameters**h]j)}(hjJjh]h Parameters}(hjLjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK2hjDjubj)}(hhh]j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hjijh]hunsigned long dma}(hjkjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK/hjcjubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~jhK/hjjubah}(h]h ]h"]h$]h&]uh1jhjcjubeh}(h]h ]h"]h$]h&]uh1jhj~jhK/hj`jubah}(h]h ]h"]h$]h&]uh1jhjDjubjg)}(h**Description**h]j)}(hjjh]h Description}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hjDjubjg)}(hStops the ISA DMA transfer.h]hStops the ISA DMA transfer.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hjDjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjafhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_pointer (C function)c.snd_dma_pointerhNtauh1hhjafhhhNhNubh)}(hhh](h)}(hCunsigned int snd_dma_pointer (unsigned long dma, unsigned int size)h]h)}(hBunsigned int snd_dma_pointer(unsigned long dma, unsigned int size)h](h)}(hunsignedh]hunsigned}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKEubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjhhhjjhKEubh)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhjjhKEubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjhhhjjhKEubj)}(hsnd_dma_pointerh]j%)}(hsnd_dma_pointerh]hsnd_dma_pointer}(hj&khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"kubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjjhhhjjhKEubj@)}(h&(unsigned long dma, unsigned int size)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjBkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>kubj)}(h h]h }(hjPkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>kubh)}(hlongh]hlong}(hj^khhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>kubj)}(h h]h }(hjlkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>kubj%)}(hdmah]hdma}(hjzkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>kubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:kubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hsizeh]hsize}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:kubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhjjhKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjjhKEubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhKEhjjhhubjb)}(hhh]jg)}(h:return the current pointer to DMA transfer buffer in bytesh]h:return the current pointer to DMA transfer buffer in bytes}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?hjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjjhKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjj ljj ljjjuh1hhhhjafhNhNubj)}(h**Parameters** ``unsigned long dma`` the dma number ``unsigned int size`` the dma transfer size **Return** The current pointer in DMA transfer buffer in bytes.h](jg)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChjlubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj6lh]hunsigned long dma}(hj8lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4lubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK@hj0lubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjOlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKlhK@hjLlubah}(h]h ]h"]h$]h&]uh1jhj0lubeh}(h]h ]h"]h$]h&]uh1jhjKlhK@hj-lubj)}(h,``unsigned int size`` the dma transfer size h](j)}(h``unsigned int size``h]j)}(hjolh]hunsigned int size}(hjqlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmlubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKAhjilubj)}(hhh]jg)}(hthe dma transfer sizeh]hthe dma transfer size}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhKAhjlubah}(h]h ]h"]h$]h&]uh1jhjilubeh}(h]h ]h"]h$]h&]uh1jhjlhKAhj-lubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h **Return**h]j)}(hjlh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChjlubjg)}(h4The current pointer in DMA transfer buffer in bytes.h]h4The current pointer in DMA transfer buffer in bytes.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjafhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_devm_request_dma (C function)c.snd_devm_request_dmahNtauh1hhjafhhhNhNubh)}(hhh](h)}(hHint snd_devm_request_dma (struct device *dev, int dma, const char *name)h]h)}(hGint snd_devm_request_dma(struct device *dev, int dma, const char *name)h](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK{ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhK{ubj)}(hsnd_devm_request_dmah]j%)}(hsnd_devm_request_dmah]hsnd_devm_request_dma}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj mubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhK{ubj@)}(h/(struct device *dev, int dma, const char *name)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj,mhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(mubj)}(h h]h }(hj9mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(mubh)}(hhh]j%)}(hdeviceh]hdevice}(hjJmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmmodnameN classnameNjj)}j]j)}jjmsbc.snd_devm_request_dmaasbuh1hhj(mubj)}(h h]h }(hjjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(mubj)}(hjh]h*}(hjxmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(mubj%)}(hdevh]hdev}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(mubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$mubjF)}(hint dmah](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(hdmah]hdma}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$mubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hcharh]hchar}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hj nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hnameh]hname}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$mubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhK{ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhK{ubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhK{hjlhhubjb)}(hhh]jg)}(h$the managed version of request_dma()h]h$the managed version of request_dma()}(hjAnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrhj>nhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhK{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYnjjYnjjjuh1hhhhjafhNhNubj)}(hX%**Parameters** ``struct device *dev`` the device pointer ``int dma`` the dma number ``const char *name`` the name string of the requester **Description** The requested DMA will be automatically released at unbinding via devres. **Return** zero on success, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjcnh]h Parameters}(hjenhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjanubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhj]nubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjnh]hstruct device *dev}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKshj|nubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhKshjnubah}(h]h ]h"]h$]h&]uh1jhj|nubeh}(h]h ]h"]h$]h&]uh1jhjnhKshjynubj)}(h``int dma`` the dma number h](j)}(h ``int dma``h]j)}(hjnh]hint dma}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKthjnubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhKthjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhKthjynubj)}(h6``const char *name`` the name string of the requester h](j)}(h``const char *name``h]j)}(hjnh]hconst char *name}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKuhjnubj)}(hhh]jg)}(h the name string of the requesterh]h the name string of the requester}(hj ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ohKuhj oubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhj ohKuhjynubeh}(h]h ]h"]h$]h&]uh1jhj]nubjg)}(h**Description**h]j)}(hj/oh]h Description}(hj1ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-oubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhj]nubjg)}(hIThe requested DMA will be automatically released at unbinding via devres.h]hIThe requested DMA will be automatically released at unbinding via devres.}(hjEohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhj]nubjg)}(h **Return**h]j)}(hjVoh]hReturn}(hjXohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjToubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhj]nubjg)}(h)zero on success, or a negative error codeh]h)zero on success, or a negative error code}(hjlohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhj]nubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjafhhhNhNubeh}(h]isa-dma-helpersah ]h"]isa dma helpersah$]h&]uh1hhj:hhhhhKubh)}(hhh](h)}(hOther Helper Macrosh]hOther Helper Macros}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_ref (C function)c.snd_power_refhNtauh1hhjohhhNhNubh)}(hhh](h)}(h*void snd_power_ref (struct snd_card *card)h]h)}(h)void snd_power_ref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjohKubj)}(h snd_power_refh]j%)}(h snd_power_refh]h snd_power_ref}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjohKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj pubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jjosbc.snd_power_refasbuh1hhjoubj)}(h h]h }(hj/phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hj=phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hcardh]hcard}(hjJphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubah}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjohKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjohKubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohKhjohhubjb)}(hhh]jg)}(h*Take the reference count for power controlh]h*Take the reference count for power control}(hjtphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjqphhubah}(h]h ]h"]h$]h&]uh1jahjohhhjohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjohNhNubj)}(hX&**Parameters** ``struct snd_card *card`` sound card object **Description** The power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.h](jg)}(h**Parameters**h]j)}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjph]hstruct snd_card *card}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphKhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphKhjpubah}(h]h ]h"]h$]h&]uh1jhjpubjg)}(h**Description**h]j)}(hjph]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubjg)}(hThe power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.h]hThe power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_unref (C function)c.snd_power_unrefhNtauh1hhjohhhNhNubh)}(hhh](h)}(h,void snd_power_unref (struct snd_card *card)h]h)}(h+void snd_power_unref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hj5qhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1qhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjDqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1qhhhjCqhKubj)}(hsnd_power_unrefh]j%)}(hsnd_power_unrefh]hsnd_power_unref}(hjVqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj1qhhhjCqhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjrqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnqubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjXqsbc.snd_power_unrefasbuh1hhjnqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnqubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnqubj%)}(hcardh]hcard}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjqubah}(h]h ]h"]h$]h&]j=j>uh1j?hj1qhhhjCqhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-qhhhjCqhKubah}(h]j(qah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjCqhKhj*qhhubjb)}(hhh]jg)}(h-Release the reference count for power controlh]h-Release the reference count for power control}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjqhhubah}(h]h ]h"]h$]h&]uh1jahj*qhhhjCqhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj rjj rjjjuh1hhhhjohNhNubj)}(h=**Parameters** ``struct snd_card *card`` sound card objecth](jg)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjrubj)}(hhh]j)}(h+``struct snd_card *card`` sound card objecth](j)}(h``struct snd_card *card``h]j)}(hj6rh]hstruct snd_card *card}(hj8rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4rubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj0rubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjOrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjLrubah}(h]h ]h"]h$]h&]uh1jhj0rubeh}(h]h ]h"]h$]h&]uh1jhjKrhKhj-rubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_sync_ref (C function)c.snd_power_sync_refhNtauh1hhjohhhNhNubh)}(hhh](h)}(h/void snd_power_sync_ref (struct snd_card *card)h]h)}(h.void snd_power_sync_ref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjrhKubj)}(hsnd_power_sync_refh]j%)}(hsnd_power_sync_refh]hsnd_power_sync_ref}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrhhhjrhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jjrsbc.snd_power_sync_refasbuh1hhjrubj)}(h h]h }(hj shhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hcardh]hcard}(hj&shhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubah}(h]h ]h"]h$]h&]j=j>uh1j?hjrhhhjrhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrhhhjrhKubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhKhjrhhubjb)}(hhh]jg)}(h&wait until the card power_ref is freedh]h&wait until the card power_ref is freed}(hjPshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjMshhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjrhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhsjjhsjjjuh1hhhhjohNhNubj)}(h**Parameters** ``struct snd_card *card`` sound card object **Description** This function is used to synchronize with the pending power_ref being released.h](jg)}(h**Parameters**h]j)}(hjrsh]h Parameters}(hjtshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjlsubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjsh]hstruct snd_card *card}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjsubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjlsubjg)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjlsubjg)}(hOThis function is used to synchronize with the pending power_ref being released.h]hOThis function is used to synchronize with the pending power_ref being released.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjlsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_unref (C function)c.snd_card_unrefhNtauh1hhjohhhNhNubh)}(hhh](h)}(h+void snd_card_unref (struct snd_card *card)h]h)}(h*void snd_card_unref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM8ubj)}(h h]h }(hj thhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj thhhjthM8ubj)}(hsnd_card_unrefh]j%)}(hsnd_card_unrefh]hsnd_card_unref}(hj2thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj thhhjthM8ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjNthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJtubj)}(h h]h }(hj[thhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJtubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjlthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjitubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjntmodnameN classnameNjj)}j]j)}jj4tsbc.snd_card_unrefasbuh1hhjJtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJtubj%)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFtubah}(h]h ]h"]h$]h&]j=j>uh1j?hj thhhjthM8ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj thhhjthM8ubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthM8hjthhubjb)}(hhh]jg)}(hUnreference the card objecth]hUnreference the card object}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2hjthhubah}(h]h ]h"]h$]h&]uh1jahjthhhjthM8ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhjohNhNubj)}(h**Parameters** ``struct snd_card *card`` the card object to unreference **Description** Call this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().h](jg)}(h**Parameters**h]j)}(hjth]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM6hjtubj)}(hhh]j)}(h9``struct snd_card *card`` the card object to unreference h](j)}(h``struct snd_card *card``h]j)}(hjuh]hstruct snd_card *card}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM3hj uubj)}(hhh]jg)}(hthe card object to unreferenceh]hthe card object to unreference}(hj+uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'uhM3hj(uubah}(h]h ]h"]h$]h&]uh1jhj uubeh}(h]h ]h"]h$]h&]uh1jhj'uhM3hj uubah}(h]h ]h"]h$]h&]uh1jhjtubjg)}(h**Description**h]j)}(hjMuh]h Description}(hjOuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5hjtubjg)}(hgCall this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().h]hgCall this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().}(hjcuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5hjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG (C macro) c.snd_BUGhNtauh1hhjohhhNhNubh)}(hhh](h)}(hsnd_BUGh]h)}(hsnd_BUGh]j)}(hsnd_BUGh]j%)}(hjuh]hsnd_BUG}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMcubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjuhMcubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhMchjuhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjuhhhjuhMcubeh}(h]h ](jmacroeh"]h$]h&]jjjjujjujjjuh1hhhhjohNhNubjg)}(h``snd_BUG ()``h]j)}(hjuh]h snd_BUG ()}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMehjohhubj)}(h give a BUG warning message and stack trace **Description** Calls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set. h](j)}(h+give a BUG warning message and stack trace h]jg)}(h*give a BUG warning message and stack traceh]h*give a BUG warning message and stack trace}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM^hjuubah}(h]h ]h"]h$]h&]uh1jhjuhM^hjuubjg)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM`hjuubjg)}(hRCalls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set.h]hRCalls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM_hjuubeh}(h]h ]h"]h$]h&]uh1jhjuhM^hjohhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG_ON (C macro) c.snd_BUG_ONhNtauh1hhjohhhNhNubh)}(hhh](h)}(h snd_BUG_ONh]h)}(h snd_BUG_ONh]j)}(h snd_BUG_ONh]j%)}(hj;vh]h snd_BUG_ON}(hjEvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj=vhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMlubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9vhhhjXvhMlubah}(h]j4vah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjXvhMlhj6vhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj6vhhhjXvhMlubeh}(h]h ](jmacroeh"]h$]h&]jjjjqvjjqvjjjuh1hhhhjohNhNubjg)}(h``snd_BUG_ON (cond)``h]j)}(hjwvh]hsnd_BUG_ON (cond)}(hjyvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMnhjohhubj)}(hdebugging check macro h]jg)}(hdebugging check macroh]hdebugging check macro}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMfhjvubah}(h]h ]h"]h$]h&]uh1jhjvhMfhjohhubj)}(h**Parameters** ``cond`` condition to evaluate **Description** Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.h](jg)}(h**Parameters**h]j)}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMjhjvubj)}(hhh]j)}(h``cond`` condition to evaluate h](j)}(h``cond``h]j)}(hjvh]hcond}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMghjvubj)}(hhh]jg)}(hcondition to evaluateh]hcondition to evaluate}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMghjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhMghjvubah}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h**Description**h]j)}(hjwh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMihjvubjg)}(h~Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.h]h~Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMihjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*register_sound_special_device (C function)c.register_sound_special_devicehNtauh1hhjohhhNhNubh)}(hhh](h)}(hdint register_sound_special_device (const struct file_operations *fops, int unit, struct device *dev)h]h)}(hcint register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev)h](h)}(hinth]hint}(hjKwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGwhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMZubj)}(h h]h }(hjZwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGwhhhjYwhMZubj)}(hregister_sound_special_deviceh]j%)}(hregister_sound_special_deviceh]hregister_sound_special_device}(hjlwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjGwhhhjYwhMZubj@)}(hB(const struct file_operations *fops, int unit, struct device *dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubjL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jjnwsbc.register_sound_special_deviceasbuh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hfopsh]hfops}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hint unith](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxubj)}(h h]h }(hj#xhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj%)}(hunith]hunit}(hj1xhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjJxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFxubj)}(h h]h }(hjWxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFxubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjexubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjxmodnameN classnameNjj)}j]jwc.register_sound_special_deviceasbuh1hhjFxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFxubj%)}(hdevh]hdev}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjGwhhhjYwhMZubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjCwhhhjYwhMZubah}(h]j>wah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYwhMZhj@whhubjb)}(hhh]jg)}(hregister a special sound nodeh]hregister a special sound node}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOhjxhhubah}(h]h ]h"]h$]h&]uh1jahj@whhhjYwhMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxjjxjjjuh1hhhhjohNhNubj)}(hXe**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int unit`` Unit number to allocate ``struct device *dev`` device pointer Allocate a special sound device by minor number from the sound subsystem. **Return** The allocated number is returned on success. On failure, a negative error code is returned.h](jg)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMShjxubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj yh]h"const struct file_operations *fops}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj yubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMPhjyubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj%yhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!yhMPhj"yubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhj!yhMPhjyubj)}(h%``int unit`` Unit number to allocate h](j)}(h ``int unit``h]j)}(hjEyh]hint unit}(hjGyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCyubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMQhj?yubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hj^yhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZyhMQhj[yubah}(h]h ]h"]h$]h&]uh1jhj?yubeh}(h]h ]h"]h$]h&]uh1jhjZyhMQhjyubj)}(hq``struct device *dev`` device pointer Allocate a special sound device by minor number from the sound subsystem. h](j)}(h``struct device *dev``h]j)}(hj~yh]hstruct device *dev}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|yubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMUhjxyubj)}(hhh](jg)}(hdevice pointerh]hdevice pointer}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMRhjyubjg)}(hIAllocate a special sound device by minor number from the sound subsystem.h]hIAllocate a special sound device by minor number from the sound subsystem.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMThjyubeh}(h]h ]h"]h$]h&]uh1jhjxyubeh}(h]h ]h"]h$]h&]uh1jhjyhMUhjyubeh}(h]h ]h"]h$]h&]uh1jhjxubjg)}(h **Return**h]j)}(hjyh]hReturn}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMWhjxubj)}(hhh]j)}(h[The allocated number is returned on success. On failure, a negative error code is returned.h](j)}(h8The allocated number is returned on success. On failure,h]h8The allocated number is returned on success. On failure,}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMWhjyubj)}(hhh]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMXhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMWhjyubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!register_sound_mixer (C function)c.register_sound_mixerhNtauh1hhjohhhNhNubh)}(hhh](h)}(hFint register_sound_mixer (const struct file_operations *fops, int dev)h]h)}(hEint register_sound_mixer(const struct file_operations *fops, int dev)h](h)}(hinth]hint}(hj9zhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5zhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjHzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5zhhhjGzhMubj)}(hregister_sound_mixerh]j%)}(hregister_sound_mixerh]hregister_sound_mixer}(hjZzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5zhhhjGzhMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjvzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrzubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrzubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj\zsbc.register_sound_mixerasbuh1hhjrzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrzubj%)}(hfopsh]hfops}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnzubjF)}(hint devh](h)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj%)}(hdevh]hdev}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnzubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj5zhhhjGzhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1zhhhjGzhMubah}(h]j,zah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGzhMhj.zhhubjb)}(hhh]jg)}(hregister a mixer deviceh]hregister a mixer device}(hjI{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjF{hhubah}(h]h ]h"]h$]h&]uh1jahj.zhhhjGzhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjja{jja{jjjuh1hhhhjohNhNubj)}(hXc**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int dev`` Unit number to allocate Allocate a mixer device. Unit is the number of the mixer requested. Pass -1 to request the next free mixer unit. **Return** On success, the allocated number is returned. On failure, a negative error code is returned.h](jg)}(h**Parameters**h]j)}(hjk{h]h Parameters}(hjm{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji{ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhje{ubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj{h]h"const struct file_operations *fops}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{ubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj{ubj)}(h``int dev`` Unit number to allocate Allocate a mixer device. Unit is the number of the mixer requested. Pass -1 to request the next free mixer unit. h](j)}(h ``int dev``h]j)}(hj{h]hint dev}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{ubj)}(hhh](jg)}(hUnit number to allocateh]hUnit number to allocate}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{ubjg)}(hpAllocate a mixer device. Unit is the number of the mixer requested. Pass -1 to request the next free mixer unit.h]hpAllocate a mixer device. Unit is the number of the mixer requested. Pass -1 to request the next free mixer unit.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj{ubeh}(h]h ]h"]h$]h&]uh1jhje{ubjg)}(h **Return**h]j)}(hj|h]hReturn}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj |ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhje{ubj)}(hhh]j)}(h\On success, the allocated number is returned. On failure, a negative error code is returned.h](j)}(h9On success, the allocated number is returned. On failure,h]h9On success, the allocated number is returned. On failure,}(hj+|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj'|ubj)}(hhh]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hj=|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj:|ubah}(h]h ]h"]h$]h&]uh1jhj'|ubeh}(h]h ]h"]h$]h&]uh1jhj9|hMhj$|ubah}(h]h ]h"]h$]h&]uh1jhje{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hregister_sound_dsp (C function)c.register_sound_dsphNtauh1hhjohhhNhNubh)}(hhh](h)}(hDint register_sound_dsp (const struct file_operations *fops, int dev)h]h)}(hCint register_sound_dsp(const struct file_operations *fops, int dev)h](h)}(hinth]hint}(hj~|hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjz|hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz|hhhj|hMubj)}(hregister_sound_dsph]j%)}(hregister_sound_dsph]hregister_sound_dsp}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjz|hhhj|hMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubjL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}jj|sbc.register_sound_dspasbuh1hhj|ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hj"}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hfopsh]hfops}(hj/}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hint devh](h)}(hinth]hint}(hjH}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjD}ubj)}(h h]h }(hjV}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjD}ubj%)}(hdevh]hdev}(hjd}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjD}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjz|hhhj|hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjv|hhhj|hMubah}(h]jq|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hMhjs|hhubjb)}(hhh]jg)}(hregister a DSP deviceh]hregister a DSP device}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}hhubah}(h]h ]h"]h$]h&]uh1jahjs|hhhj|hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjohNhNubj)}(hX**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int dev`` Unit number to allocate Allocate a DSP device. Unit is the number of the DSP requested. Pass -1 to request the next free DSP unit. This function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3 **Return** On success, the allocated number is returned. On failure, a negative error code is returned.h](jg)}(h**Parameters**h]j)}(hj}h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj}h]h"const struct file_operations *fops}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hMhj}ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj}hMhj}ubj)}(hX``int dev`` Unit number to allocate Allocate a DSP device. Unit is the number of the DSP requested. Pass -1 to request the next free DSP unit. This function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3 h](j)}(h ``int dev``h]j)}(hj~h]hint dev}(hj ~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~ubj)}(hhh](jg)}(hUnit number to allocateh]hUnit number to allocate}(hj!~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~ubjg)}(hjAllocate a DSP device. Unit is the number of the DSP requested. Pass -1 to request the next free DSP unit.h]hjAllocate a DSP device. Unit is the number of the DSP requested. Pass -1 to request the next free DSP unit.}(hj0~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~ubjg)}(hThis function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3h]hThis function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3}(hj?~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhj}ubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h **Return**h]j)}(hjb~h]hReturn}(hjd~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`~ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh]j)}(h\On success, the allocated number is returned. On failure, a negative error code is returned.h](j)}(h9On success, the allocated number is returned. On failure,h]h9On success, the allocated number is returned. On failure,}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{~ubj)}(hhhL]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~ubah}(h]h ]h"]h$]h&]uh1jhj{~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhjx~ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%unregister_sound_special (C function)c.unregister_sound_specialhNtauh1hhjohhhNhNubh)}(hhh](h)}(h(void unregister_sound_special (int unit)h]h)}(h'void unregister_sound_special(int unit)h](h)}(hvoidh]hvoid}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhj~hMubj)}(hunregister_sound_specialh]j%)}(hunregister_sound_specialh]hunregister_sound_special}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhj~hMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hunith]hunit}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj~hhhj~hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhj~hMubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hMhj~hhubjb)}(hhh]jg)}(h!unregister a special sound deviceh]h!unregister a special sound device}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjRhhubah}(h]h ]h"]h$]h&]uh1jahj~hhhj~hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhjohNhNubj)}(h**Parameters** ``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.h](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjqubj)}(hhh]j)}(h``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.h](j)}(h ``int unit``h]j)}(hjh]hint unit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh](jg)}(hunit number to allocateh]hunit number to allocate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubjg)}(hRelease a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.h]hRelease a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#unregister_sound_mixer (C function)c.unregister_sound_mixerhNtauh1hhjohhhNhNubh)}(hhh](h)}(h&void unregister_sound_mixer (int unit)h]h)}(h%void unregister_sound_mixer(int unit)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hunregister_sound_mixerh]j%)}(hunregister_sound_mixerh]hunregister_sound_mixer}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj%)}(hunith]hunit}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(hunregister a mixerh]hunregister a mixer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjohNhNubj)}(h**Parameters** ``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_mixer(). The unit passed is the return value from the register function.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh]j)}(h``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_mixer(). The unit passed is the return value from the register function.h](j)}(h ``int unit``h]j)}(hjÀh]hint unit}(hjŀhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh](jg)}(hunit number to allocateh]hunit number to allocate}(hj܀hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjـubjg)}(hRelease a sound device that was allocated with register_sound_mixer(). The unit passed is the return value from the register function.h]hRelease a sound device that was allocated with register_sound_mixer(). The unit passed is the return value from the register function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj؀hMhjـubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj؀hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!unregister_sound_dsp (C function)c.unregister_sound_dsphNtauh1hhjohhhNhNubh)}(hhh](h)}(h$void unregister_sound_dsp (int unit)h]h)}(h#void unregister_sound_dsp(int unit)h](h)}(hvoidh]hvoid}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'hhhj9hMubj)}(hunregister_sound_dsph]j%)}(hunregister_sound_dsph]hunregister_sound_dsp}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'hhhj9hMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hunith]hunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj'hhhj9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#hhhj9hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hMhj hhubjb)}(hhh]jg)}(hunregister a DSP deviceh]hunregister a DSP device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjƁjjƁjjjuh1hhhhjohNhNubj)}(hX**Parameters** ``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_dsp(). The unit passed is the return value from the register function. Both of the allocated units are released together automatically.h](jg)}(h**Parameters**h]j)}(hjЁh]h Parameters}(hjҁhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj΁ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjʁubj)}(hhh]j)}(h``int unit`` unit number to allocate Release a sound device that was allocated with register_sound_dsp(). The unit passed is the return value from the register function. Both of the allocated units are released together automatically.h](j)}(h ``int unit``h]j)}(hjh]hint unit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh](jg)}(hunit number to allocateh]hunit number to allocate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubjg)}(hRelease a sound device that was allocated with register_sound_dsp(). The unit passed is the return value from the register function.h]hRelease a sound device that was allocated with register_sound_dsp(). The unit passed is the return value from the register function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubjg)}(h@Both of the allocated units are released together automatically.h]h@Both of the allocated units are released together automatically.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjʁubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubeh}(h]other-helper-macrosah ]h"]other helper macrosah$]h&]uh1hhj:hhhhhKubeh}(h]miscellaneous-functionsah ]h"]miscellaneous functionsah$]h&]uh1hhhhhhhhKtubeh}(h]the-alsa-driver-apiah ]h"]the alsa driver apiah$]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_handlerjerror_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}(jcj`jU_jR_j&j&j3j3j<j<jM_jJ_jojljg;jd;j TjTjijijgjdjjjjjTjQjjjX%jU%jjjP%jM%j9j9j9j9jpjpj pjpj:j|:jjja3j^3jw:jt:j[jXj=j=j^fj[fjojojSjPu nametypes}(jcjU_j&j3j<jM_jojg;j TjijgjjjTjjX%jjP%j9j9jpj pj:jja3jw:j[j=j^fjojSuh}(j`hjR_hj&hhhjijnjjjv j{ jjj4j9jjjjj?jDjjjjj:j?jjjjj,!j1!jf#jk#j%j"%j3j&j&j&jq*jv*j,j,j.j.j0j0j<j3j43j93jx4j}4j6j6j;j ;jJ_j<j<j<j?j?j}BjBjMEjREjHjHjKjKj2Oj7OjPjPj0Tj5TjZVj_VjQXjVXjfZjkZj\j\jljX_jd;ji_j_j_jaj ajcjcjgjgj%lj*lj;nj@njpjpjtjtjvjvjzj zj}j}j@jEj<jAj8j=jjj$j)jYj^jjjjj֛jۛjjjjjjjPjUjjjjjjjjjjjjjjjjj+j0jjjKjPjjjujzjjjwj|jjjyj~jjjjjvj{jjjGjLjjjjjjjjjjj4j9jjjjj=jBjjj7j<j9j>jNjSjcjhjxj}jjjjj#j(jjjrjwj-j2jjjUjZj j j j jM jR jjjjjjjjjDjIjjjjjijnj j%jjj!j !j"j"j$j$j&j&j*j *jF-jK-jd/ji/j2j2j3j3j/5j45j6j6j9j#9j:j:jTjj;j;j;j<j<j9>j>>j?j?j@j@jDBjIBjCjCjDjDjFjFjHjHjKjKjLjLj;Nj@NjOjOjQjQjij Tj*Tj/TjUjUj,Wj1WjZjZj2^j7^jhbjmbj)fj.fjRhjWhjdjijjjjjCmjHmjLpjQpjbrjgrjtj"tjujujxjxj_zjdzj}j}j~j~j,j1jσjՃjjjpjujjrjjjjjTjYjjj:j?jŗjʗjFjKjjjtjyjjj7j<jjjGjLj_jdj.j3jjjjjj j]jbjjjjj{jjjj}jjοjӿjj$jQjjjjjjjjkjpj'j,jmjrjjj`jejjj jjjj jjjjjjjj jjjjjWjtjyj\jajj j:j?j:j?jUjZjjjpjujU%jjjjjj j jK jP jj jj"jjjKjPjnjsjM%jj:j?jUjZjp ju j9j[%j9jl%j%j%j(j(j*j*j-j-j&1j+1j2j2jO4jT4jpj9jpj :j*:j/:jb<jg<j>j>j(Bj-BjjCjoCjDjDjFjFjHjHjJjJj)Lj.Lj?MjDMjNjNjPjPj/Rj4RjUTj[TjzVjVjXj!XjYjYj\j\jiajnajdjdjijijTljYljmjmj|:jpjj&pjCpjHpjqjrjsjtj'vj,vjxxj}xjzjzjv|j{|jjj҂jׂjjj8j=jjjjjjj@jEjőjʑjjj?jDjjjŚjʚjjjjjjjjj*j/jjjjjvj{jjj۳jjjjjj,j1jrjwjjj^jcjjj/j4jhjmjjjjjjjLjQjjjjjjj|jjjjjj'j,j`jejjj^3jj3j8jjjjjjjjjjjojtjjjjj`jejjjjjejjjjjjj j jI jN js jx jwj|j{jj jjjjjj~jjjj j jV"j["j$j$j&j&j)j$)jl+jq+j-j-j/j/j1j1jt:jd3j3j3jT6jY6j8j9jXj:j=j:j:j:j[fj=j>j>j BjBjDjDjIj Ij/Kj4KjNjNjOjPjRjRjUjUjWj WjYjYj[j[j]j]j`j`jcjcjojafj~fjfj|ijijjjjjljljPjojojoj(qj-qjrjrjtj tjujuj4vj9vj>wjCwj,zj1zjq|jv|j~j~jjjj#u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.