@sphinx.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.chKyubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hhhhhj hKyubh 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 hKyubhdesc_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 hKyubeh}(h]h ]h"]h$]h&]j=j> add_permalinkuh1hsphinx_line_type declaratorhhhhhj hKyubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj hKyhhhhubh 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 hKyubeh}(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.chKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKubj)}(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 hKubj@)}(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 hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{ hhhj hKubah}(h]jv ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hKhjx 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 hKubeh}(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.chMxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMxubh)}(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_refasbuh1hhjhhhjhMxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMxubj)}(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>uh1jhjhhhjhMxubj@)}(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?hjhhhjhMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMxubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMxhjhhubjb)}(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&]uh1jahjhhhjhMxubeh}(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.chM1ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hM1ubj)}(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>uh1jhjhhhj1hM1ubj@)}(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?hjhhhj1hM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hM1ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hM1hjhhubjb)}(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&]uh1jahjhhhj1hM1ubeh}(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.chMZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMZubj)}(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>uh1jhjhhhjhMZubj@)}(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?hjhhhjhMZubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMZubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMZhjhhubjb)}(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&]uh1jahjhhhjhMZubeh}(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.chMpubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhMpubj)}(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>uh1jhjHhhhjZhMpubj@)}(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?hjHhhhjZhMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjZhMpubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhMphjAhhubjb)}(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&]uh1jahjAhhhjZhMpubeh}(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.chM@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM@ubj)}(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>uh1jhjhhhjhM@ubj@)}(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?hjhhhjhM@ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM@ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM@hjhhubjb)}(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&]uh1jahjhhhjhM@ubeh}(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.chM^ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjUhM^ubj)}(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>uh1jhjChhhjUhM^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)}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?hjChhhjUhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjUhM^ubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhM^hj<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<hhhjUhM^ubeh}(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.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(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 hMubj@)}(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 hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(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 hMubeh}(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.chM;ubj)}(h h]h }(hjH!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5!hhhjG!hM;ubj)}(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!hM;ubj@)}(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!hM;ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1!hhhjG!hM;ubah}(h]j,!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjG!hM;hj.!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!hM;ubeh}(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.chMfubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjo#hhhj#hMfubj)}(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#hMfubj@)}(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#hMfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjk#hhhj#hMfubah}(h]jf#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj#hMfhjh#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#hMfubeh}(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.chK^ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz*hhhj*hK^ubj)}(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*hK^ubj@)}(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*hK^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjv*hhhj*hK^ubah}(h]jq*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hK^hjs*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*hK^ubeh}(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.chKzubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhj,hKzubj)}(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,hKzubj@)}(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,hKzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,hhhj,hKzubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj,hKzhj,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,hKzubeh}(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&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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_request_card (C function)c.snd_request_cardhNtauh1hhj0hhhNhNubh)}(hhh](h)}(h void snd_request_card (int card)h]h)}(hvoid snd_request_card(int card)h](h)}(hvoidh]hvoid}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0hhhj0hK6ubj)}(hsnd_request_cardh]j%)}(hsnd_request_cardh]hsnd_request_card}(hj 1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0hhhj0hK6ubj@)}(h (int card)h]jF)}(hint cardh](h)}(hinth]hint}(hj%1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!1ubj)}(h h]h }(hj31hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!1ubj%)}(hcardh]hcard}(hjA1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj0hhhj0hK6ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhj0hK6ubah}(h]j0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hK6hj0hhubjb)}(hhh]jg)}(htry to load the card moduleh]htry to load the card module}(hjk1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6hjh1hhubah}(h]h ]h"]h$]h&]uh1jahj0hhhj0hK6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhj0hNhNubj)}(h**Parameters** ``int card`` the card number **Description** Tries to load the module "snd-card-X" for the given card number via request_module. Returns immediately if already loaded.h](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK:hj1ubj)}(hhh]j)}(h``int card`` the card number h](j)}(h ``int card``h]j)}(hj1h]hint card}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK7hj1ubj)}(hhh]jg)}(hthe card numberh]hthe card number}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hK7hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hK7hj1ubah}(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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hj1ubjg)}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj0hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_lookup_minor_data (C function)c.snd_lookup_minor_datahNtauh1hhj0hhhNhNubh)}(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}(hj,2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(2hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUubj)}(h h]h }(hj;2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(2hhhj:2hKUubj)}(hjh]h*}(hjI2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(2hhhj:2hKUubj)}(hsnd_lookup_minor_datah]j%)}(hsnd_lookup_minor_datah]hsnd_lookup_minor_data}(hjZ2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(2hhhj:2hKUubj@)}(h(unsigned int minor, int type)h](jF)}(hunsigned int minorh](h)}(hunsignedh]hunsigned}(hjv2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr2ubh)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr2ubj%)}(hminorh]hminor}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjn2ubjF)}(hint typeh](h)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj%)}(htypeh]htype}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjn2ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(2hhhj:2hKUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$2hhhj:2hKUubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:2hKUhj!2hhubjb)}(hhh]jg)}(h$get user data of a registered deviceh]h$get user data of a registered device}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUhj 3hhubah}(h]h ]h"]h$]h&]uh1jahj!2hhhj:2hKUubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%3jj%3jjjuh1hhhhj0hNhNubj)}(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)}(hj/3h]h Parameters}(hj13hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-3ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj)3ubj)}(hhh](j)}(h(``unsigned int minor`` the minor number h](j)}(h``unsigned int minor``h]j)}(hjN3h]hunsigned int minor}(hjP3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL3ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKVhjH3ubj)}(hhh]jg)}(hthe minor numberh]hthe minor number}(hjg3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjc3hKVhjd3ubah}(h]h ]h"]h$]h&]uh1jhjH3ubeh}(h]h ]h"]h$]h&]uh1jhjc3hKVhjE3ubj)}(h1``int type`` device type (SNDRV_DEVICE_TYPE_XXX) h](j)}(h ``int type``h]j)}(hj3h]hint type}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKWhj3ubj)}(hhh]jg)}(h#device type (SNDRV_DEVICE_TYPE_XXX)h]h#device type (SNDRV_DEVICE_TYPE_XXX)}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3hKWhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hKWhjE3ubeh}(h]h ]h"]h$]h&]uh1jhj)3ubjg)}(h**Description**h]j)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj)3ubjg)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj)3ubjg)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK\hj)3ubjg)}(h **Return**h]j)}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK`hj)3ubjg)}(hKThe user data pointer if the specified device is found. ``NULL`` otherwise.h](h8The user data pointer if the specified device is found. }(hj4hhhNhNubj)}(h``NULL``h]hNULL}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh otherwise.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK`hj)3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj0hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_register_device (C function)c.snd_register_devicehNtauh1hhj0hhhNhNubh)}(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}(hjO4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjK4hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKubj)}(h h]h }(hj^4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjK4hhhj]4hKubj)}(hsnd_register_deviceh]j%)}(hsnd_register_deviceh]hsnd_register_device}(hjp4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjK4hhhj]4hKubj@)}(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}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(htypeh]htype}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(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)}jjr4sbc.snd_register_deviceasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hj 5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(hcardh]hcard}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hint devh](h)}(hinth]hint}(hj35hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/5ubj)}(h h]h }(hjA5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/5ubj%)}(hdevh]hdev}(hjO5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(h#const struct file_operations *f_opsh](jL)}(hj\h]hconst}(hjh5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjd5ubj)}(h h]h }(hju5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd5ubjL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjd5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd5ubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j4c.snd_register_deviceasbuh1hhjd5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd5ubj%)}(hf_opsh]hf_ops}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(h private_datah]h private_data}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hj56hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj16ubj)}(h h]h }(hjB6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj16ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjS6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjP6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjU6modnameN classnameNjj)}j]j4c.snd_register_deviceasbuh1hhj16ubj)}(h h]h }(hjq6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj16ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj16ubj%)}(hdeviceh]hdevice}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj16ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjK4hhhj]4hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjG4hhhj]4hKubah}(h]jB4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]4hKhjD4hhubjb)}(hhh]jg)}(h*Register the ALSA device file for the cardh]h*Register the ALSA device file for the card}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6hhubah}(h]h ]h"]h$]h&]uh1jahjD4hhhj]4hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj0hNhNubj)}(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)}(hj6h]h Parameters}(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.chKhj6ubj)}(hhh](j)}(h4``int type`` the device type, SNDRV_DEVICE_TYPE_XXX h](j)}(h ``int type``h]j)}(hj6h]hint type}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6ubj)}(hhh]jg)}(h&the device type, SNDRV_DEVICE_TYPE_XXXh]h&the device type, SNDRV_DEVICE_TYPE_XXX}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj 7hKhj 7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj 7hKhj6ubj)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj07h]hstruct snd_card *card}(hj27hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.7ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj*7ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjI7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE7hKhjF7ubah}(h]h ]h"]h$]h&]uh1jhj*7ubeh}(h]h ]h"]h$]h&]uh1jhjE7hKhj6ubj)}(h``int dev`` the device index h](j)}(h ``int dev``h]j)}(hji7h]hint dev}(hjk7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg7ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhjc7ubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~7hKhj7ubah}(h]h ]h"]h$]h&]uh1jhjc7ubeh}(h]h ]h"]h$]h&]uh1jhj~7hKhj6ubj)}(h<``const struct file_operations *f_ops`` the file operations h](j)}(h'``const struct file_operations *f_ops``h]j)}(hj7h]h#const struct file_operations *f_ops}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj)}(hhh]jg)}(hthe file operationsh]hthe file operations}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hKhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hKhj6ubj)}(h6``void *private_data`` user pointer for f_ops->open() h](j)}(h``void *private_data``h]j)}(hj7h]hvoid *private_data}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj)}(hhh]jg)}(huser pointer for f_ops->open()h]huser pointer for f_ops->open()}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hKhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hKhj6ubj)}(h1``struct device *device`` the device to register h](j)}(h``struct device *device``h]j)}(hj8h]hstruct device *device}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj8ubj)}(hhh]jg)}(hthe device to registerh]hthe device to register}(hj-8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)8hKhj*8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj)8hKhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hjO8h]h Description}(hjQ8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM8ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6ubjg)}(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.}(hje8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6ubjg)}(h **Return**h]j)}(hjv8h]hReturn}(hjx8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt8ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj0hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_unregister_device (C function)c.snd_unregister_devicehNtauh1hhj0hhhNhNubh)}(hhh](h)}(h.int snd_unregister_device (struct device *dev)h]h)}(h-int snd_unregister_device(struct device *dev)h](h)}(hinth]hint}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM#ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhj8hM#ubj)}(hsnd_unregister_deviceh]j%)}(hsnd_unregister_deviceh]hsnd_unregister_device}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhj8hM#ubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]j)}jj8sbc.snd_unregister_deviceasbuh1hhj8ubj)}(h h]h }(hj69hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjD9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hdevh]hdev}(hjQ9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhj8hM#ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhj8hM#ubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hM#hj8hhubjb)}(hhh]jg)}(h'unregister the device on the given cardh]h'unregister the device on the given card}(hj{9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM#hjx9hhubah}(h]h ]h"]h$]h&]uh1jahj8hhhj8hM#ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhj0hNhNubj)}(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)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM'hj9ubj)}(hhh]j)}(h+``struct device *dev`` the device instance h](j)}(h``struct device *dev``h]j)}(hj9h]hstruct device *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.chM$hj9ubj)}(hhh]jg)}(hthe device instanceh]hthe device instance}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hM$hj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hM$hj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(h**Description**h]j)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM&hj9ubjg)}(hIUnregisters the device file already registered via snd_register_device().h]hIUnregisters the device file already registered via snd_register_device().}(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&hj9ubjg)}(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.chM)hj9ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj4:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM)hj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj0hhhNhNubeh}(h]'module-requests-and-device-file-entriesah ]h"]'module requests and device file entriesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMemory Management Helpersh]hMemory Management Helpers}(hjU:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR:hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_user_fromio (C function)c.copy_to_user_fromiohNtauh1hhjR: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&]uh1hhjx: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 hjx: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>uh1jhjx: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 }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hdsth]hdst}(hj: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}(hj ;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ;ubjL)}(hj\h]hconst}(hj);hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ;ubj)}(h h]h }(hj6;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ;ubh)}(hvoidh]hvoid}(hjD;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ;ubj)}(h h]h }(hjR;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ;ubh__iomem}(hj ;hhhNhNubj)}(h h]h }(hjd;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ;ubj)}(hjh]h*}(hjr;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)}(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?hjx:hhhj:hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjt:hhhj:hKubah}(h]jo:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hKhjq:hhubjb)}(hhh]jg)}(h'copy data from mmio-space to user-spaceh]h'copy data from mmio-space to user-space}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj;hhubah}(h]h ]h"]h$]h&]uh1jahjq:hhhj:hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj <jj <jjjuh1hhhhjR: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)}(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:22: ./sound/core/memory.chKhj<ubj)}(hhh](j)}(h;``void __user *dst`` the destination pointer on user-space h](j)}(h``void __user *dst``h]j)}(hj4<h]hvoid __user *dst}(hj6<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2<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}(hjM<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI<hKhjJ<ubah}(h]h ]h"]h$]h&]uh1jhj.<ubeh}(h]h ]h"]h$]h&]uh1jhjI<hKhj+<ubj)}(h@``const volatile void __iomem *src`` the source pointer on mmio h](j)}(h$``const volatile void __iomem *src``h]j)}(hjm<h]h const volatile void __iomem *src}(hjo<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk<ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjg<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&]uh1jhjg<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&]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:22: ./sound/core/memory.chKhj<ubjg)}(h.Copies the data from mmio-space to user-space.h]h.Copies the data from mmio-space to user-space.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj<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:22: ./sound/core/memory.chKhj<ubjg)}(h+Zero if successful, or non-zero on failure.h]h+Zero if successful, or non-zero on failure.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_iter_fromio (C function)c.copy_to_iter_fromiohNtauh1hhjR: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}(hjP=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjM=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjR=modnameN classnameNjj)}j]j)}jcopy_to_iter_fromiosbc.copy_to_iter_fromioasbuh1hhjI=hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%ubj)}(h h]h }(hjr=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI=hhhjq=hK%ubj)}(hcopy_to_iter_fromioh]j%)}(hjn=h]hcopy_to_iter_fromio}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjI=hhhjq=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 }(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)}(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]jl=c.copy_to_iter_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=ubjF)}(hstruct iov_iter *dsth](jL)}(hjOh]hstruct}(hjV>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjR>ubj)}(h h]h }(hjc>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjR>ubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hjt>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjq>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv>modnameN classnameNjj)}j]jl=c.copy_to_iter_fromioasbuh1hhjR>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%)}(hdsth]hdst}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjR>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj=ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjI=hhhjq=hK%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjE=hhhjq=hK%ubah}(h]j@=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjq=hK%hjB=hhubjb)}(hhh]jg)}(h%copy data from mmio-space to iov_iterh]h%copy data from mmio-space to iov_iter}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%hj>hhubah}(h]h ]h"]h$]h&]uh1jahjB=hhhjq=hK%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhjR: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)}(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:22: ./sound/core/memory.chK)hj>ubj)}(hhh](j)}(h7``const void __iomem *src`` the source pointer on mmio h](j)}(h``const void __iomem *src``h]j)}(hj?h]hconst 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.chK&hj?ubj)}(hhh]jg)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hj1?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)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjQ?h]h size_t count}(hjS?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO?ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK'hjK?ubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjf?hK'hjg?ubah}(h]h ]h"]h$]h&]uh1jhjK?ubeh}(h]h ]h"]h$]h&]uh1jhjf?hK'hj?ubj)}(h2``struct iov_iter *dst`` the destination iov_iter h](j)}(h``struct iov_iter *dst``h]j)}(hj?h]hstruct iov_iter *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.chK(hj?ubj)}(hhh]jg)}(hthe destination iov_iterh]hthe destination iov_iter}(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)}(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:22: ./sound/core/memory.chK*hj>ubjg)}(h,Copies the data from mmio-space to iov_iter.h]+h,Copies the data from mmio-space to iov_iter.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK*hj>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:22: ./sound/core/memory.chK,hj>ubjg)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK,hj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_user_toio (C function)c.copy_from_user_toiohNtauh1hhjR: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}(hj1@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-@hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHubj)}(h h]h }(hj@@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-@hhhj?@hKHubj)}(hcopy_from_user_toioh]j%)}(hcopy_from_user_toioh]hcopy_from_user_toio}(hjR@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjN@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-@hhhj?@hKHubj@)}(hB(volatile void __iomem *dst, const void __user *src, size_t count)h](jF)}(hvolatile void __iomem *dsth](jL)}(hj;h]hvolatile}(hjn@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjj@ubj)}(h h]h }(hj{@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjj@ubh)}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjj@ubh__iomem}(hjj@hhhNhNubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjj@ubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj@ubj%)}(hdsth]hdst}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjf@ubjF)}(hconst void __user *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 }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh__user}(hj@hhhNhNubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hj&AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hsrch]hsrc}(hj3AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjf@ubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjOAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQAmodnameN classnameNjj)}j]j)}jjT@sbc.copy_from_user_toioasbuh1hhjHAubj)}(h h]h }(hjoAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHAubj%)}(hcounth]hcount}(hj}AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjf@ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-@hhhj?@hKHubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj)@hhhj?@hKHubah}(h]j$@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?@hKHhj&@hhubjb)}(hhh]jg)}(h'copy data from user-space to mmio-spaceh]h'copy data from user-space to mmio-space}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHhjAhhubah}(h]h ]h"]h$]h&]uh1jahj&@hhhj?@hKHubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhjR: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)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKLhjAubj)}(hhh](j)}(hE``volatile void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``volatile void __iomem *dst``h]j)}(hjAh]hvolatile void __iomem *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.chKIhjAubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKIhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKIhjAubj)}(h<``const void __user *src`` the source pointer on user-space h](j)}(h``const void __user *src``h]j)}(hj!Bh]hconst void __user *src}(hj#BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKJhjBubj)}(hhh]jg)}(h the source pointer on user-spaceh]h the source pointer on user-space}(hj:BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6BhKJhj7Bubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj6BhKJhjAubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjZBh]h size_t count}(hj\BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXBubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKKhjTBubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjsBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjoBhKKhjpBubah}(h]h ]h"]h$]h&]uh1jhjTBubeh}(h]h ]h"]h$]h&]uh1jhjoBhKKhjAubeh}(h]h ]h"]h$]h&]uh1jhjAubjg)}(h**Description**h]j)}(hjBh]h Description}(hjBhhhNhNubah}(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.chKMhjAubjg)}(h.Copies the data from user-space to mmio-space.h]h.Copies the data from user-space to mmio-space.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKMhjAubjg)}(h **Return**h]j)}(hjBh]hReturn}(hjBhhhNhNubah}(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.chKOhjAubjg)}(h+Zero if successful, or non-zero on failure.h]h+Zero if successful, or non-zero on failure.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKOhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_iter_toio (C function)c.copy_from_iter_toiohNtauh1hhjR: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}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jcopy_from_iter_toiosbc.copy_from_iter_toioasbuh1hhjBhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^ubj)}(h h]h }(hj&ChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhj%ChK^ubj)}(hcopy_from_iter_toioh]j%)}(hj"Ch]hcopy_from_iter_toio}(hj8ChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4Cubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhj%ChK^ubj@)}(h7(void __iomem *dst, size_t count, struct iov_iter *src)h](jF)}(hvoid __iomem *dsth](h)}(hvoidh]hvoid}(hjSChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOCubj)}(h h]h }(hjaChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOCubh__iomem}(hjOChhhNhNubj)}(h h]h }(hjsChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOCubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOCubj%)}(hdsth]hdst}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKCubjF)}(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 Cc.copy_from_iter_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>uh1jEhjKCubjF)}(hstruct iov_iter *srch](jL)}(hjOh]hstruct}(hjChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hj DhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j Cc.copy_from_iter_toioasbuh1hhjCubj)}(h h]h }(hj+DhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj)}(hjh]h*}(hj9DhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj%)}(hsrch]hsrc}(hjFDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKCubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhj%ChK^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhj%ChK^ubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%ChK^hjBhhubjb)}(hhh]jg)}(h%copy data from iov_iter to mmio-spaceh]h%copy data from iov_iter to mmio-space}(hjpDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^hjmDhhubah}(h]h ]h"]h$]h&]uh1jahjBhhhj%ChK^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDjjDjjjuh1hhhhjR: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)}(hjDh]h Parameters}(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.chKbhjDubj)}(hhh](j)}(h<``void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``void __iomem *dst``h]j)}(hjDh]hvoid __iomem *dst}(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.chK_hjDubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhK_hjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhK_hjDubj)}(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.chK`hjDubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhK`hjEubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhK`hjDubj)}(h-``struct iov_iter *src`` the source iov_iter h](j)}(h``struct iov_iter *src``h]j)}(hj#Eh]hstruct iov_iter *src}(hj%EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Eubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKahjEubj)}(hhh]jg)}(hthe source iov_iterh]hthe source iov_iter}(hjuh1jhjEhhhjEhK1ubj@)}(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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(htypeh]htype}(hj#FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hjuh1jEhjEubjF)}(henum dma_data_direction dirh](jL)}(hj'h]henum}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]jvFc.snd_dma_alloc_dir_pagesasbuh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(hdirh]hdir}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jvFc.snd_dma_alloc_dir_pagesasbuh1hhj Gubj)}(h h]h }(hj2GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Gubj%)}(hsizeh]hsize}(hj@GhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjYGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUGubj)}(h h]h }(hjfGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUGubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjwGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjyGmodnameN classnameNjj)}j]jvFc.snd_dma_alloc_dir_pagesasbuh1hhjUGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUGubj%)}(hdmabh]hdmab}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjEhhhjEhK1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhjEhK1ubah}(h]jEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhK1hjEhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type and directionh]hBallocate the buffer area according to the given type and direction}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1hjGhhubah}(h]h ]h"]h$]h&]uh1jahjEhhhjEhK1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhjR: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)}(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:23: ./sound/core/memalloc.chK5hjGubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjHh]hint type}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK3hjHubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hj4HhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0HhK3hj1Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj0HhK3hjHubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hjTHh]hstruct device *device}(hjVHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK4hjNHubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjmHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjiHhK4hjjHubah}(h]h ]h"]h$]h&]uh1jhjNHubeh}(h]h ]h"]h$]h&]uh1jhjiHhK4hjHubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjHh]henum dma_data_direction dir}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK5hjHubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhK5hjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhK5hjHubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjHh]h size_t size}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK6hjHubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhK6hjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhK6hjHubj)}(hU``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjHh]hstruct snd_dma_buffer *dmab}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK7hjHubj)}(hhh]jg)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhK7hjIubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjIhK7hjHubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hj:Ih]h Description}(hjuh1jhjIhhhjIhKXubj@)}(hK(int type, struct device *device, size_t size, struct snd_dma_buffer *dmab)h](jF)}(hint typeh](h)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj%)}(htypeh]htype}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hj%JhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hhh]j%)}(hdeviceh]hdevice}(hj6JhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3Jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8JmodnameN classnameNjj)}j]j)}jjIsbc.snd_dma_alloc_pages_fallbackasbuh1hhjJubj)}(h h]h }(hjVJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjdJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hdeviceh]hdevice}(hjqJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jRJc.snd_dma_alloc_pages_fallbackasbuh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hsizeh]hsize}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jRJc.snd_dma_alloc_pages_fallbackasbuh1hhjJubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hdmabh]hdmab}(hj)KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhjIhKXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhjIhKXubah}(h]jIah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjIhKXhjIhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type with fallbackh]hBallocate the buffer area according to the given type with fallback}(hjSKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKXhjPKhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjIhKXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkKjjkKjjjuh1hhhhjR: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)}(hjuKh]h Parameters}(hjwKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK\hjoKubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjKh]hint type}(hjKhhhNhNubah}(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.chKYhjKubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKYhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKYhjKubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hjKh]hstruct device *device}(hjKhhhNhNubah}(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.chKZhjKubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKZhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKZhjKubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjLh]h size_t size}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK[hjLubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhK[hjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhK[hjKubj)}(hU``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hj?Lh]hstruct snd_dma_buffer *dmab}(hjALhhhNhNubah}(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:23: ./sound/core/memalloc.chK\hj9Lubj)}(hhh]jg)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjXLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjTLhK\hjULubah}(h]h ]h"]h$]h&]uh1jhj9Lubeh}(h]h ]h"]h$]h&]uh1jhjTLhK\hjKubeh}(h]h ]h"]h$]h&]uh1jhjoKubjg)}(h**Description**h]j)}(hjzLh]h Description}(hj|LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK^hjoKubjg)}(hCalls 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.h]hCalls 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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK^hjoKubjg)}(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:23: ./sound/core/memalloc.chKchjoKubjg)}(hfZero if the buffer with the given size is allocated successfully, otherwise a negative value on error.h]hfZero if the buffer with the given size is allocated successfully, otherwise a negative value on error.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKchjoKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_free_pages (C function)c.snd_dma_free_pageshNtauh1hhjR:hhhNhNubh)}(hhh](h)}(h5void snd_dma_free_pages (struct snd_dma_buffer *dmab)h]h)}(h4void snd_dma_free_pages(struct snd_dma_buffer *dmab)h](h)}(hvoidh]hvoid}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKzubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhhhjLhKzubj)}(hsnd_dma_free_pagesh]j%)}(hsnd_dma_free_pagesh]hsnd_dma_free_pages}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhjLhKzubj@)}(h(struct snd_dma_buffer *dmab)h]jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj#MhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj0MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjAMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCMmodnameN classnameNjj)}j]j)}jj Msbc.snd_dma_free_pagesasbuh1hhjMubj)}(h h]h }(hjaMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjoMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(hdmabh]hdmab}(hj|MhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhjLhKzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjLhKzubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhKzhjLhhubjb)}(hhh]jg)}(hrelease the allocated bufferh]hrelease the allocated buffer}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKzhjMhhubah}(h]h ]h"]h$]h&]uh1jahjLhhhjLhKzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhjR: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)}(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)}(hH``struct snd_dma_buffer *dmab`` the buffer allocation record to release h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjMh]hstruct snd_dma_buffer *dmab}(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.chK{hjMubj)}(hhh]jg)}(h'the buffer allocation record to releaseh]h'the buffer allocation record to release}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhK{hjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhK{hjMubah}(h]h ]h"]h$]h&]uh1jhjMubjg)}(h**Description**h]j)}(hj"Nh]h Description}(hj$NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Nubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK}hjMubjg)}(h8Releases the allocated buffer via snd_dma_alloc_pages().h]h8Releases the allocated buffer via snd_dma_alloc_pages().}(hj8NhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK}hjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_devm_alloc_dir_pages (C function)c.snd_devm_alloc_dir_pageshNtauh1hhjR: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}(hjgNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcNhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjuNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcNhhhjtNhKubh)}(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]j)}jsnd_devm_alloc_dir_pagessbc.snd_devm_alloc_dir_pagesasbuh1hhjcNhhhjtNhKubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcNhhhjtNhKubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcNhhhjtNhKubj)}(hsnd_devm_alloc_dir_pagesh]j%)}(hjNh]hsnd_devm_alloc_dir_pages}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjcNhhhjtNhKubj@)}(hH(struct device *dev, int type, enum dma_data_direction dir, size_t size)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hhh]j%)}(hdeviceh]hdevice}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jNc.snd_devm_alloc_dir_pagesasbuh1hhjNubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(hjh]h*}(hj+OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj%)}(hdevh]hdev}(hj8OhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(hint typeh](h)}(hinth]hint}(hjQOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMOubj)}(h h]h }(hj_OhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMOubj%)}(htypeh]htype}(hjmOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(henum dma_data_direction dirh](jL)}(hj'h]henum}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jNc.snd_devm_alloc_dir_pagesasbuh1hhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hdirh]hdir}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jNc.snd_devm_alloc_dir_pagesasbuh1hhjOubj)}(h h]h }(hj PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hsizeh]hsize}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjcNhhhjtNhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_NhhhjtNhKubah}(h]jZNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjtNhKhj\Nhhubjb)}(hhh]jg)}(h*allocate the buffer and manage with devresh]h*allocate the buffer and manage with devres}(hjBPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj?Phhubah}(h]h ]h"]h$]h&]uh1jahj\NhhhjtNhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZPjjZPjjjuh1hhhhjR: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)}(hjdPh]h Parameters}(hjfPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj^Pubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjPh]hstruct device *dev}(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:23: ./sound/core/memalloc.chKhj}Pubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhj}Pubeh}(h]h ]h"]h$]h&]uh1jhjPhKhjzPubj)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjPh]hint type}(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:23: ./sound/core/memalloc.chKhjPubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKhjzPubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjPh]henum dma_data_direction dir}(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:23: ./sound/core/memalloc.chKhjPubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj QhKhj Qubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj QhKhjzPubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hj.Qh]h size_t size}(hj0QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Qubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj(Qubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjGQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjCQhKhjDQubah}(h]h ]h"]h$]h&]uh1jhj(Qubeh}(h]h ]h"]h$]h&]uh1jhjCQhKhjzPubeh}(h]h ]h"]h$]h&]uh1jhj^Pubjg)}(h**Description**h]j)}(hjiQh]h Description}(hjkQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj^Pubjg)}(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.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj^Pubjg)}(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.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj^Pubjg)}(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:23: ./sound/core/memalloc.chKhj^Pubjg)}(h7the snd_dma_buffer object at success, or NULL if failedh]h7the snd_dma_buffer object at success, or NULL if failed}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj^Pubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_mmap (C function)c.snd_dma_buffer_mmaphNtauh1hhjR: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}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhKubj)}(hsnd_dma_buffer_mmaph]j%)}(hsnd_dma_buffer_mmaph]hsnd_dma_buffer_mmap}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjQhKubj@)}(h:(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj!RhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hj.RhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj?RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuh1jEhjRubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j[Rc.snd_dma_buffer_mmapasbuh1hhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hareah]harea}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjQhhhjQhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjQhKubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhKhjQhhubjb)}(hhh]jg)}(h$perform mmap of the given DMA bufferh]h$perform mmap of the given DMA buffer}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjShhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjQhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,Sjj,Sjjjuh1hhhhjR: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)}(hj6Sh]h Parameters}(hj8ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Subah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj0Subj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjUSh]hstruct snd_dma_buffer *dmab}(hjWShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjOSubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjnShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjShKhjkSubah}(h]h ]h"]h$]h&]uh1jhjOSubeh}(h]h ]h"]h$]h&]uh1jhjjShKhjLSubj)}(h4``struct vm_area_struct *area`` VM area information h](j)}(h``struct vm_area_struct *area``h]j)}(hjSh]hstruct vm_area_struct *area}(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)}(hVM area informationh]hVM area information}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjLSubeh}(h]h ]h"]h$]h&]uh1jhj0Subjg)}(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.chKhj0Subjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj0Subeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_sync (C function)c.snd_dma_buffer_synchNtauh1hhjR: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}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj Thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ThhhjThKubj)}(hsnd_dma_buffer_synch]j%)}(hsnd_dma_buffer_synch]hsnd_dma_buffer_sync}(hj/ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+Tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj ThhhjThKubj@)}(h:(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjKThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGTubj)}(h h]h }(hjXThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGTubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjiThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkTmodnameN classnameNjj)}j]j)}jj1Tsbc.snd_dma_buffer_syncasbuh1hhjGTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGTubj%)}(hdmabh]hdmab}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCTubjF)}(henum snd_dma_sync_mode modeh](jL)}(hj'h]henum}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_dma_sync_modeh]hsnd_dma_sync_mode}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jTc.snd_dma_buffer_syncasbuh1hhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hmodeh]hmode}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCTubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj ThhhjThKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjThhhjThKubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThKhjThhubjb)}(hhh]jg)}(h&sync DMA buffer between CPU and deviceh]h&sync DMA buffer between CPU and device}(hj1UhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj.Uhhubah}(h]h ]h"]h$]h&]uh1jahjThhhjThKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIUjjIUjjjuh1hhhhjR:hNhNubj)}(h|**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``enum snd_dma_sync_mode mode`` sync modeh](jg)}(h**Parameters**h]j)}(hjSUh]h Parameters}(hjUUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQUubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjMUubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjrUh]hstruct snd_dma_buffer *dmab}(hjtUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpUubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjlUubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhjlUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjiUubj)}(h)``enum snd_dma_sync_mode mode`` sync modeh](j)}(h``enum snd_dma_sync_mode mode``h]j)}(hjUh]henum snd_dma_sync_mode mode}(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)}(h sync modeh]h sync mode}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjiUubeh}(h]h ]h"]h$]h&]uh1jhjMUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_addr (C function)c.snd_sgbuf_get_addrhNtauh1hhjR: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}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj VmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_addrsbc.snd_sgbuf_get_addrasbuh1hhjVhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hj*VhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhj)VhKubj)}(hsnd_sgbuf_get_addrh]j%)}(hj&Vh]hsnd_sgbuf_get_addr}(hjuh1jhjVhhhj)VhKubj@)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjWVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSVubj)}(h h]h }(hjdVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSVubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjuVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwVmodnameN classnameNjj)}j]j$Vc.snd_sgbuf_get_addrasbuh1hhjSVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSVubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSVubj%)}(hdmabh]hdmab}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOVubjF)}(h size_t offseth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j$Vc.snd_sgbuf_get_addrasbuh1hhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj%)}(hoffseth]hoffset}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOVubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjVhhhj)VhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhj)VhKubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)VhKhjUhhubjb)}(hhh]jg)}(h7return the physical address at the corresponding offseth]h7return the physical address at the corresponding offset}(hj WhhhNhNubah}(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&]uh1jahjUhhhj)VhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8Wjj8Wjjjuh1hhhhjR: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)}(hjBWh]h Parameters}(hjDWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Wubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjaWh]hstruct snd_dma_buffer *dmab}(hjcWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Wubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj[Wubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjzWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvWhKhjwWubah}(h]h ]h"]h$]h&]uh1jhj[Wubeh}(h]h ]h"]h$]h&]uh1jhjvWhKhjXWubj)}(h,``size_t offset`` offset in the ring buffer h](j)}(h``size_t offset``h]j)}(hjWh]h size_t offset}(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)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhKhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhjXWubeh}(h]h ]h"]h$]h&]uh1jhjuh1jhjXhhhj'XhKubj@)}(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]jUXc.snd_sgbuf_get_pageasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hdmabh]hdmab}(hjXhhhNhNubah}(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}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj YmodnameN classnameNjj)}j]jUXc.snd_sgbuf_get_pageasbuh1hhjYubj)}(h h]h }(hj%YhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hoffseth]hoffset}(hj3YhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjXhhhj'XhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhj'XhKubah}(h]j Xah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj'XhKhjXhhubjb)}(hhh]jg)}(h4return the physical page at the corresponding offseth]h4return the physical page at the corresponding offset}(hj]YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjZYhhubah}(h]h ]h"]h$]h&]uh1jahjXhhhj'XhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjuYjjuYjjjuh1hhhhjR: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)}(hjYh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Yubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjyYubj)}(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}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjYubeh}(h]h ]h"]h$]h&]uh1jhjyYubjg)}(h **Return**h]j)}(hjZh]hReturn}(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:23: ./sound/core/memalloc.chKhjyYubjg)}(hthe page pointerh]hthe page pointer}(hj(ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjyYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_sgbuf_get_chunk_size (C function)c.snd_sgbuf_get_chunk_sizehNtauh1hhjR: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}(hjWZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjSZhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMubj)}(h h]h }(hjfZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSZhhhjeZhMubh)}(hinth]hint}(hjtZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjSZhhhjeZhMubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSZhhhjeZhMubj)}(hsnd_sgbuf_get_chunk_sizeh]j%)}(hsnd_sgbuf_get_chunk_sizeh]hsnd_sgbuf_get_chunk_size}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjSZhhhjeZhMubj@)}(hB(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)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}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j)}jjZsbc.snd_sgbuf_get_chunk_sizeasbuh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(hdmabh]hdmab}(hj [hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj"[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[ubj)}(h h]h }(hj0[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hinth]hint}(hj>[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[ubj)}(h h]h }(hjL[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj%)}(hofsh]hofs}(hjZ[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjs[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjo[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjo[ubh)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjo[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjo[ubj%)}(hsizeh]hsize}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjo[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjSZhhhjeZhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOZhhhjeZhMubah}(h]jJZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjeZhMhjLZhhubjb)}(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&]uh1jahjLZhhhjeZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj[jj[jjjuh1hhhhjR: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)}(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.chM hj[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.chM hj\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&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj+\hM hj \ubj)}(h/``unsigned int ofs`` offset in the ring buffer h](j)}(h``unsigned int ofs``h]j)}(hjO\h]hunsigned int ofs}(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)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjh\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjd\hM hje\ubah}(h]h ]h"]h$]h&]uh1jhjI\ubeh}(h]h ]h"]h$]h&]uh1jhjd\hM hj \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 hj \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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj[ubjg)}(hthe chunk sizeh]hthe chunk size}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjR: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&]uh1hhj\hhhhhKubh)}(hhh](h)}(hPCM Coreh]hPCM Core}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_format_name (C function)c.snd_pcm_format_namehNtauh1hhj]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&]uh1jKhj6]hhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKubj)}(h h]h }(hjH]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6]hhhjG]hKubh)}(hcharh]hchar}(hjV]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6]hhhjG]hKubj)}(h h]h }(hjd]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6]hhhjG]hKubj)}(hjh]h*}(hjr]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6]hhhjG]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>uh1jhj6]hhhjG]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?hj6]hhhjG]hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2]hhhjG]hKubah}(h]j-]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjG]hKhj/]hhubjb)}(hhh]jg)}(h-Return a name string for the given PCM formath]h-Return a name string for the given PCM format}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj]hhubah}(h]h ]h"]h$]h&]uh1jahj/]hhhjG]hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhj]hNhNubj)}(h\**Parameters** ``snd_pcm_format_t format`` PCM format **Return** the format name stringh](jg)}(h**Parameters**h]j)}(hj^h]h Parameters}(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.chKhj^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&]uh1jhj9^ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj5^ubj)}(hhh]jg)}(h PCM formath]h PCM format}(hjT^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjP^hKhjQ^ubah}(h]h ]h"]h$]h&]uh1jhj5^ubeh}(h]h ]h"]h$]h&]uh1jhjP^hKhj2^ubah}(h]h ]h"]h$]h&]uh1jhj^ubjg)}(h **Return**h]j)}(hjv^h]hReturn}(hjx^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt^ubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj^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.chKhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_new_stream (C function)c.snd_pcm_new_streamhNtauh1hhj]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}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^hhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMgubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhj^hMgubj)}(hsnd_pcm_new_streamh]j%)}(hsnd_pcm_new_streamh]hsnd_pcm_new_stream}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhj^hMgubj@)}(h6(struct snd_pcm *pcm, int stream, int substream_count)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 reftargetj_modnameN classnameNjj)}j]j)}jj^sbc.snd_pcm_new_streamasbuh1hhj^ubj)}(h h]h }(hj6_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hjD_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hpcmh]hpcm}(hjQ_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(h int streamh](h)}(hinth]hint}(hjj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjf_ubj)}(h h]h }(hjx_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjf_ubj%)}(hstreamh]hstream}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjf_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(hint substream_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%)}(hsubstream_counth]hsubstream_count}(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^hMgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhj^hMgubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMghj^hhubjb)}(hhh]jg)}(hcreate a new PCM streamh]hcreate a new PCM stream}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghj_hhubah}(h]h ]h"]h$]h&]uh1jahj^hhhj^hMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj]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`h]h Parameters}(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.chMkhj`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&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhj `ubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj?`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;`hMhhj<`ubah}(h]h ]h"]h$]h&]uh1jhj `ubeh}(h]h ]h"]h$]h&]uh1jhj;`hMhhj`ubj)}(h:``int stream`` the stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int stream``h]j)}(hj_`h]h int stream}(hja`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.chMihjY`ubj)}(hhh]jg)}(h*the stream direction, SNDRV_PCM_STREAM_XXXh]h*the stream direction, SNDRV_PCM_STREAM_XXX}(hjx`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjt`hMihju`ubah}(h]h ]h"]h$]h&]uh1jhjY`ubeh}(h]h ]h"]h$]h&]uh1jhjt`hMihj`ubj)}(h1``int substream_count`` the number of substreams h](j)}(h``int substream_count``h]j)}(hj`h]hint substream_count}(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.chMjhj`ubj)}(hhh]jg)}(hthe number of substreamsh]hthe number of substreams}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMjhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMjhj`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&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMlhj`ubjg)}(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().}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMlhj`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.chMqhj`ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMqhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_new (C function) c.snd_pcm_newhNtauh1hhj]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}(hj?ahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;ahhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hjNahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ahhhjMahMubj)}(h snd_pcm_newh]j%)}(h snd_pcm_newh]h snd_pcm_new}(hj`ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\aubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;ahhhjMahMubj@)}(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|ahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxaubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jjbasb c.snd_pcm_newasbuh1hhjxaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxaubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxaubj%)}(hcardh]hcard}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hcharh]hchar}(hj bhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj)}(hjh]h*}(hj%bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj%)}(hidh]hid}(hj2bhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubjF)}(h int deviceh](h)}(hinth]hint}(hjKbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGbubj)}(h h]h }(hjYbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGbubj%)}(hdeviceh]hdevice}(hjgbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubjF)}(hint playback_counth](h)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj|bubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|bubj%)}(hplayback_counth]hplayback_count}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|bubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubjF)}(hint capture_counth](h)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj%)}(h capture_counth]h capture_count}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubjF)}(hstruct snd_pcm **rpcmh](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}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj cmodnameN classnameNjj)}j]ja c.snd_pcm_newasbuh1hhjbubj)}(h h]h }(hj&chhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hj4chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj)}(hjh]h*}(hjAchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hrpcmh]hrpcm}(hjNchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;ahhhjMahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7ahhhjMahMubah}(h]j2aah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMahMhj4ahhubjb)}(hhh]jg)}(hcreate a new PCM instanceh]hcreate a new PCM instance}(hjxchhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjuchhubah}(h]h ]h"]h$]h&]uh1jahj4ahhhjMahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhj]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)}(hjch]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjch]hstruct snd_card *card}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchMhjcubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hjch]hconst char *id}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubj)}(hhh]jg)}(h the id stringh]h the id string}(hj dhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjcubj)}(h-``int device`` the device index (zero based) h](j)}(h``int device``h]j)}(hj+dh]h int device}(hj-dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)dubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj%dubj)}(hhh]jg)}(hthe device index (zero based)h]hthe device index (zero based)}(hjDdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@dhMhjAdubah}(h]h ]h"]h$]h&]uh1jhj%dubeh}(h]h ]h"]h$]h&]uh1jhj@dhMhjcubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hjddh]hint playback_count}(hjfdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbdubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj^dubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hj}dhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjydhMhjzdubah}(h]h ]h"]h$]h&]uh1jhj^dubeh}(h]h ]h"]h$]h&]uh1jhjydhMhjcubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjdh]hint capture_count}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjcubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hjdh]hstruct snd_pcm **rpcm}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjcubjg)}(h**Description**h]j)}(hjeh]h Description}(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.chMhjcubjg)}(hCreates a new PCM instance.h]hCreates a new PCM instance.}(hj'ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubjg)}(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().}(hj6ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubjg)}(h **Return**h]j)}(hjGeh]hReturn}(hjIehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEeubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj]ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_new_internal (C function)c.snd_pcm_new_internalhNtauh1hhj]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}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjehMubj)}(hsnd_pcm_new_internalh]j%)}(hsnd_pcm_new_internalh]hsnd_pcm_new_internal}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhjehMubj@)}(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}(hjehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jjesbc.snd_pcm_new_internalasbuh1hhjeubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hcardh]hcard}(hj"fhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hj;fhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7fubj)}(h h]h }(hjHfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7fubh)}(hcharh]hchar}(hjVfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7fubj)}(h h]h }(hjdfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7fubj)}(hjh]h*}(hjrfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7fubj%)}(hidh]hid}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7fubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(h int deviceh](h)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(hdeviceh]hdevice}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(hint playback_counth](h)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(hplayback_counth]hplayback_count}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(hint capture_counth](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(h capture_counth]h capture_count}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(hstruct snd_pcm **rpcmh](jL)}(hjOh]hstruct}(hj7ghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3gubj)}(h h]h }(hjDghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3gubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjUghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWgmodnameN classnameNjj)}j]jfc.snd_pcm_new_internalasbuh1hhj3gubj)}(h h]h }(hjsghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3gubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3gubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3gubj%)}(hrpcmh]hrpcm}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhjehMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhjehMubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjehMhjehhubjb)}(hhh]jg)}(h"create a new internal PCM instanceh]h"create a new internal 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.chMhjghhubah}(h]h ]h"]h$]h&]uh1jahjehhhjehMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhj]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)}(hjgh]h Parameters}(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.chM hjgubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjhh]hstruct snd_card *card}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjhubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjgubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hj?hh]hconst char *id}(hjAhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=hubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hj9hubj)}(hhh]jg)}(h the id stringh]h the id string}(hjXhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThhM hjUhubah}(h]h ]h"]h$]h&]uh1jhj9hubeh}(h]h ]h"]h$]h&]uh1jhjThhM hjgubj)}(hG``int device`` the device index (zero based - shared with normal PCMs) h](j)}(h``int device``h]j)}(hjxhh]h int device}(hjzhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvhubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjrhubj)}(hhh]jg)}(h7the device index (zero based - shared with normal PCMs)h]h7the device index (zero based - shared with normal PCMs)}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjhubah}(h]h ]h"]h$]h&]uh1jhjrhubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjgubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hjhh]hint playback_count}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjhubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjgubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjhh]hint capture_count}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjhubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM hjiubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhM hjgubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hj#ih]hstruct snd_pcm **rpcm}(hj%ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!iubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjiubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjuh1jhjihhhjihMfubj@)}(h*(struct snd_pcm_notify *notify, int nfree)h](jF)}(hstruct snd_pcm_notify *notifyh](jL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj#jhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_pcm_notifyh]hsnd_pcm_notify}(hj4jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6jmodnameN classnameNjj)}j]j)}jjisbc.snd_pcm_notifyasbuh1hhjjubj)}(h h]h }(hjTjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjbjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hnotifyh]hnotify}(hjojhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubjF)}(h int nfreeh](h)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj%)}(hnfreeh]hnfree}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhjihMfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihMfubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihMfhjihhubjb)}(hhh]jg)}(hAdd/remove the notify listh]hAdd/remove the notify list}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMfhjjhhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihMfubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhj]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)}(hjjh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjjubj)}(hhh](j)}(h2``struct snd_pcm_notify *notify`` PCM notify list h](j)}(h!``struct snd_pcm_notify *notify``h]j)}(hjkh]hstruct snd_pcm_notify *notify}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj kubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghj kubj)}(hhh]jg)}(hPCM notify listh]hPCM notify list}(hj(khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$khMghj%kubah}(h]h ]h"]h$]h&]uh1jhj kubeh}(h]h ]h"]h$]h&]uh1jhj$khMghjkubj)}(h+``int nfree`` 0 = register, 1 = unregister h](j)}(h ``int nfree``h]j)}(hjHkh]h int nfree}(hjJkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFkubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhjBkubj)}(hhh]jg)}(h0 = register, 1 = unregisterh]h0 = register, 1 = unregister}(hjakhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]khMhhj^kubah}(h]h ]h"]h$]h&]uh1jhjBkubeh}(h]h ]h"]h$]h&]uh1jhj]khMhhjkubeh}(h]h ]h"]h$]h&]uh1jhjjubjg)}(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.chMjhjjubjg)}(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.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjjubjg)}(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.chMnhjjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMnhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_set_ops (C function)c.snd_pcm_set_opshNtauh1hhj]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}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkhhhjkhMubj)}(hsnd_pcm_set_opsh]j%)}(hsnd_pcm_set_opsh]hsnd_pcm_set_ops}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj lubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjkhhhjkhMubj@)}(hC(struct snd_pcm *pcm, int direction, const struct snd_pcm_ops *ops)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hj,lhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(lubj)}(h h]h }(hj9lhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(lubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjJlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLlmodnameN classnameNjj)}j]j)}jjlsbc.snd_pcm_set_opsasbuh1hhj(lubj)}(h h]h }(hjjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(lubj)}(hjh]h*}(hjxlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(lubj%)}(hpcmh]hpcm}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(lubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$lubjF)}(h int directionh](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj%)}(h directionh]h direction}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$lubjF)}(hconst struct snd_pcm_ops *opsh](jL)}(hj\h]hconst}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubjL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hhh]j%)}(h snd_pcm_opsh]h snd_pcm_ops}(hj mhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jflc.snd_pcm_set_opsasbuh1hhjlubj)}(h h]h }(hj*mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hj8mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(hopsh]hops}(hjEmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$lubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjkhhhjkhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkhhhjkhMubah}(h]jkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhMhjkhhubjb)}(hhh]jg)}(hset the PCM operatorsh]hset the PCM operators}(hjomhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjlmhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjkhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhj]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)}(hjmh]h Parameters}(hjmhhhNhNubah}(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.chMhjmubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjmh]hstruct snd_pcm *pcm}(hjmhhhNhNubah}(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.chMhjmubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhMhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjmubj)}(h9``int direction`` stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hjmh]h int direction}(hjmhhhNhNubah}(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.chMhjmubj)}(hhh]jg)}(h&stream direction, SNDRV_PCM_STREAM_XXXh]h&stream direction, SNDRV_PCM_STREAM_XXX}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhMhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjmubj)}(h5``const struct snd_pcm_ops *ops`` the operator table h](j)}(h!``const struct snd_pcm_ops *ops``h]j)}(hj"nh]hconst struct snd_pcm_ops *ops}(hj$nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj nubah}(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)}(hthe operator tableh]hthe operator table}(hj;nhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7nhMhj8nubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhj7nhMhjmubeh}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hj]nh]h Description}(hj_nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[nubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjmubjg)}(h1Sets the given PCM operators to the pcm instance.h]h1Sets the given PCM operators to the pcm instance.}(hjsnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_set_sync_per_card (C function)c.snd_pcm_set_sync_per_cardhNtauh1hhj]hhhNhNubh)}(hhh](h)}(hvoid snd_pcm_set_sync_per_card (struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, const unsigned char *id, unsigned int len)h]h)}(hvoid snd_pcm_set_sync_per_card(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, const unsigned char *id, unsigned int len)h](h)}(hvoidh]hvoid}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnhhhjnhM ubj)}(hsnd_pcm_set_sync_per_cardh]j%)}(hsnd_pcm_set_sync_per_cardh]hsnd_pcm_set_sync_per_card}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjnhhhjnhM 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}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jjnsbc.snd_pcm_set_sync_per_cardasbuh1hhjnubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hj+ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(h substreamh]h substream}(hj8ohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hjQohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMoubj)}(h h]h }(hj^ohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMoubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjoohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjloubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqomodnameN classnameNjj)}j]joc.snd_pcm_set_sync_per_cardasbuh1hhjMoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMoubj%)}(hparamsh]hparams}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hconst unsigned char *idh](jL)}(hj\h]hconst}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hunsignedh]hunsigned}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hcharh]hchar}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hidh]hid}(hj!phhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(hunsigned int lenh](h)}(hunsignedh]hunsigned}(hj:phhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6pubj)}(h h]h }(hjHphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6pubh)}(hinth]hint}(hjVphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6pubj)}(h h]h }(hjdphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6pubj%)}(hlenh]hlen}(hjrphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6pubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjnhhhjnhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnhhhjnhM ubah}(h]jnah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhM hjnhhubjb)}(hhh]jg)}(h$set the PCM sync id with card numberh]h$set the PCM sync id with card number}(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 hjphhubah}(h]h ]h"]h$]h&]uh1jahjnhhhjnhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhj]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)}(hjph]h Parameters}(hjphhhNhNubah}(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.chMhjpubj)}(hhh](j)}(h:``struct snd_pcm_substream *substream`` the pcm substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjph]h#struct snd_pcm_substream *substream}(hjphhhNhNubah}(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.chM hjpubj)}(hhh]jg)}(hthe pcm substreamh]hthe pcm substream}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphM hjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphM hjpubj)}(hB``struct snd_pcm_hw_params *params`` modified hardware parameters h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjqh]h struct snd_pcm_hw_params *params}(hjqhhhNhNubah}(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.chM hjqubj)}(hhh]jg)}(hmodified hardware parametersh]hmodified hardware parameters}(hj/qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj+qhM hj,qubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhj+qhM hjpubj)}(h6``const unsigned char *id`` identifier (max 12 bytes) h](j)}(h``const unsigned char *id``h]j)}(hjOqh]hconst unsigned char *id}(hjQqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMqubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjIqubj)}(hhh]jg)}(hidentifier (max 12 bytes)h]hidentifier (max 12 bytes)}(hjhqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdqhM hjequbah}(h]h ]h"]h$]h&]uh1jhjIqubeh}(h]h ]h"]h$]h&]uh1jhjdqhM hjpubj)}(h6``unsigned int len`` identifier length (max 12 bytes) h](j)}(h``unsigned int len``h]j)}(hjqh]hunsigned int len}(hjqhhhNhNubah}(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.chMhjqubj)}(hhh]jg)}(h identifier length (max 12 bytes)h]h identifier length (max 12 bytes)}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjpubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjpubjg)}(huh1jhj1rhhhjCrhMgubj@)}(h6(struct snd_interval *i, const struct snd_interval *v)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjrrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnrubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jjXrsbc.snd_interval_refineasbuh1hhjnrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnrubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnrubj%)}(hih]hi}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjrubjF)}(hconst struct snd_interval *vh](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 }(hj shhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jrc.snd_interval_refineasbuh1hhjrubj)}(h h]h }(hj;shhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjIshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hvh]hv}(hjVshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj1rhhhjCrhMgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-rhhhjCrhMgubah}(h]j(rah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjCrhMghj*rhhubjb)}(hhh]jg)}(h)refine the interval value of configuratorh]h)refine the interval value of configurator}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMghj}shhubah}(h]h ]h"]h$]h&]uh1jahj*rhhhjCrhMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhj]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)}(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.chMkhjsubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjsh]hstruct snd_interval *i}(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.chMhhjsubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMhhjsubj)}(h@``const struct snd_interval *v`` the interval value to refer to h](j)}(h ``const struct snd_interval *v``h]j)}(hjsh]hconst struct snd_interval *v}(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.chMihjsubj)}(hhh]jg)}(hthe interval value to refer toh]hthe interval value to refer to}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMihjtubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjthMihjsubeh}(h]h ]h"]h$]h&]uh1jhjsubjg)}(h**Description**h]j)}(hj5th]h Description}(hj7thhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3tubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjsubjg)}(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.}(hjKthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjsubjg)}(h **Return**h]j)}(hj\th]hReturn}(hj^thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZtubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMohjsubjg)}(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.}(hjrthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMohjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_interval_div (C function)c.snd_interval_divhNtauh1hhj]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}(hjthhhNhNubah}(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 }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjthhhjthMubj)}(hsnd_interval_divh]j%)}(hsnd_interval_divh]hsnd_interval_div}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjthhhjthMubj@)}(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}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubjL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jjtsbc.snd_interval_divasbuh1hhjtubj)}(h h]h }(hj7uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjEuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hah]ha}(hjRuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjkuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjguubj)}(h h]h }(hjxuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjguubjL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjguubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjguubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j3uc.snd_interval_divasbuh1hhjguubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjguubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjguubj%)}(hbh]hb}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjguubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j3uc.snd_interval_divasbuh1hhjuubj)}(h h]h }(hj2vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hj@vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hjh]hc}(hjMvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjthhhjthMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjthhhjthMubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthMhjthhubjb)}(hhh]jg)}(h'refine the interval value with divisionh]h'refine the interval value with division}(hjvvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjsvhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhj]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)}(hjvh]h Parameters}(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.chMhjvubj)}(hhh](j)}(h*``const struct snd_interval *a`` dividend h](j)}(h ``const struct snd_interval *a``h]j)}(hjvh]hconst struct snd_interval *a}(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.chMhjvubj)}(hhh]jg)}(hdividendh]hdividend}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMhjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjvubj)}(h)``const struct snd_interval *b`` divisor h](j)}(h ``const struct snd_interval *b``h]j)}(hjvh]hconst struct snd_interval *b}(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.chMhjvubj)}(hhh]jg)}(hdivisorh]hdivisor}(hj whhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjvubj)}(h$``struct snd_interval *c`` quotient h](j)}(h``struct snd_interval *c``h]j)}(hj)wh]hstruct snd_interval *c}(hj+whhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'wubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj#wubj)}(hhh]jg)}(hquotienth]hquotient}(hjBwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>whMhj?wubah}(h]h ]h"]h$]h&]uh1jhj#wubeh}(h]h ]h"]h$]h&]uh1jhj>whMhjvubeh}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h**Description**h]j)}(hjdwh]h Description}(hjfwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbwubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvubjg)}(h c = a / bh]h c = a / b}(hjzwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvubjg)}(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.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_interval_muldivk (C function)c.snd_interval_muldivkhNtauh1hhj]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}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjwhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwhhhjwhMubj)}(hsnd_interval_muldivkh]j%)}(hsnd_interval_muldivkh]hsnd_interval_muldivk}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjwhhhjwhMubj@)}(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}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubjL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj.xhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0xmodnameN classnameNjj)}j]j)}jjwsbc.snd_interval_muldivkasbuh1hhjwubj)}(h h]h }(hjNxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hj\xhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hjTuh]ha}(hjixhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}xubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}xubjL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}xubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}xubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]jJxc.snd_interval_muldivkasbuh1hhj}xubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}xubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}xubj%)}(hjuh]hb}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}xubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hunsigned int kh](h)}(hunsignedh]hunsigned}(hj yhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hinth]hint}(hj'yhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hj5yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hjXh]hk}(hjCyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hj[yhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWyubj)}(h h]h }(hjhyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWyubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjyyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{ymodnameN classnameNjj)}j]jJxc.snd_interval_muldivkasbuh1hhjWyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWyubj%)}(hjh]hc}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjwhhhjwhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjwhMubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjwhMhjwhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval 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.chMhjyhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjwhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhj]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)}(hjyh]h Parameters}(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.chMhjyubj)}(hhh](j)}(h,``const struct snd_interval *a`` dividend 1 h](j)}(h ``const struct snd_interval *a``h]j)}(hjzh]hconst struct snd_interval *a}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(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)}(h dividend 1h]h dividend 1}(hj5zhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1zhMhj2zubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj1zhMhjzubj)}(h,``const struct snd_interval *b`` dividend 2 h](j)}(h ``const struct snd_interval *b``h]j)}(hjUzh]hconst struct snd_interval *b}(hjWzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSzubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjOzubj)}(hhh]jg)}(h dividend 2h]h dividend 2}(hjnzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjzhMhjkzubah}(h]h ]h"]h$]h&]uh1jhjOzubeh}(h]h ]h"]h$]h&]uh1jhjjzhMhjzubj)}(h(``unsigned int k`` divisor (as integer) h](j)}(h``unsigned int k``h]j)}(hjzh]hunsigned int k}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(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)}(hdivisor (as integer)h]hdivisor (as integer)}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjzhMhjzubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hjzh]hstruct snd_interval *c}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(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)}(hresulth]hresult}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjzhMhjzubeh}(h]h ]h"]h$]h&]uh1jhjyubjg)}(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.chMhjyubjg)}(h c = a * b / kh]h c = a * b / k}(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.chMhjyubjg)}(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.chMhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_interval_mulkdiv (C function)c.snd_interval_mulkdivhNtauh1hhj]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}(hjV{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjR{hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hje{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjR{hhhjd{hMubj)}(hsnd_interval_mulkdivh]j%)}(hsnd_interval_mulkdivh]hsnd_interval_mulkdiv}(hjw{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjR{hhhjd{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)}jjy{sbc.snd_interval_mulkdivasbuh1hhj{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%)}(hjTuh]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}(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 }(hjI|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj%)}(hjXh]hk}(hjW|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjo|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjk|ubj)}(h h]h }(hj||hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjk|ubjL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjk|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjk|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{c.snd_interval_mulkdivasbuh1hhjk|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%)}(hjuh]hb}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjk|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubjF)}(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]j{c.snd_interval_mulkdivasbuh1hhj|ubj)}(h h]h }(hj5}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjC}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hjh]hc}(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?hjR{hhhjd{hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjN{hhhjd{hMubah}(h]jI{ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjd{hMhjK{hhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjy}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjv}hhubah}(h]h ]h"]h$]h&]uh1jahjK{hhhjd{hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhj]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)}(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)}(h,``const struct snd_interval *a`` dividend 1 h](j)}(h ``const struct snd_interval *a``h]j)}(hj}h]hconst struct snd_interval *a}(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 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)}(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)}(hdividend 2 (as integer)h]hdividend 2 (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~hMhj}ubj)}(h)``const struct snd_interval *b`` divisor 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)}(hdivisorh]hdivisor}(hjE~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjA~hMhjB~ubah}(h]h ]h"]h$]h&]uh1jhj&~ubeh}(h]h ]h"]h$]h&]uh1jhjA~hMhj}ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hje~h]hstruct snd_interval *c}(hjg~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc~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}(hj~~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjz~hMhj{~ubah}(h]h ]h"]h$]h&]uh1jhj_~ubeh}(h]h ]h"]h$]h&]uh1jhjz~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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubjg)}(h c = a * k / bh]h c = a * k / b}(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>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.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ratnum (C function)c.snd_interval_ratnumhNtauh1hhj]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}(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.chM5ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhM5ubj)}(hsnd_interval_ratnumh]j%)}(hsnd_interval_ratnumh]hsnd_interval_ratnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhjhM5ubj@)}(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}(hj1hhhNhNubah}(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}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratnumasbuh1hhj-ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hjrh]hi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h rats_counth]h rats_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)ubjF)}(hconst struct snd_ratnum *ratsh](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 snd_ratnumh]h snd_ratnum}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]jkc.snd_interval_ratnumasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hratsh]hrats}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)ubjF)}(hunsigned int *numph](h)}(hunsignedh]hunsigned}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hnumph]hnump}(hjÀhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)ubjF)}(hunsigned int *denph](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%)}(hdenph]hdenp}(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~hhhjhM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhjhM5ubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM5hj~hhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjHhhubah}(h]h ]h"]h$]h&]uh1jahj~hhhjhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhj]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)}(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:32: ./sound/core/pcm_lib.chM9hjgubj)}(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.chM6hjubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(h/``unsigned int rats_count`` number of ratnum_t h](j)}(h``unsigned int rats_count``h]j)}(hjŁh]hunsigned int rats_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:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]jg)}(hnumber of ratnum_th]hnumber of ratnum_t}(hjށhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjځhM7hjہubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjځhM7hjubj)}(h1``const struct snd_ratnum *rats`` ratnum_t array h](j)}(h!``const struct snd_ratnum *rats``h]j)}(hjh]hconst struct snd_ratnum *rats}(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)}(hratnum_t arrayh]hratnum_t array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hj7h]hunsigned int *nump}(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:32: ./sound/core/pcm_lib.chM9hj1ubj)}(hhh]jg)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhM9hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM9hjubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjph]hunsigned int *denp}(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:32: ./sound/core/pcm_lib.chM:hjjubj)}(hhh]jg)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(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&]uh1jhjgubjg)}(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<hjgubjg)}(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<hjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ratden (C function)c.snd_interval_ratdenhNtauh1hhj]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}(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_interval_ratdenh]j%)}(hsnd_interval_ratdenh]hsnd_interval_ratden}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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}(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}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratdenasbuh1hhj)ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hjrh]hi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(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}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ratdenh]h snd_ratden}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]jgc.snd_interval_ratdenasbuh1hhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hratsh]hrats}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hunsigned int *numph](h)}(hunsignedh]hunsigned}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hinth]hint}(hjhhhNhNubah}(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%)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hunsigned int *denph](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%)}(hdenph]hdenp}(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?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjDhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj]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)}(hjih]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjcubj)}(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.chMhjubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``unsigned int rats_count`` number of struct ratden 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.chMhjubj)}(hhh]jg)}(hnumber of struct ratdenh]hnumber of struct ratden}(hjڅhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjօhMhjׅubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjօhMhjubj)}(h6``const struct snd_ratden *rats`` struct ratden array h](j)}(h!``const struct snd_ratden *rats``h]j)}(hjh]hconst struct snd_ratden *rats}(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)}(hstruct ratden arrayh]hstruct ratden array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hj3h]hunsigned int *nump}(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:32: ./sound/core/pcm_lib.chMhj-ubj)}(hhh]jg)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjlh]hunsigned int *denp}(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)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjcubjg)}(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.chMhjcubjg)}(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.chMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_interval_list (C function)c.snd_interval_listhNtauh1hhj]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}(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_interval_listh]j%)}(hsnd_interval_listh]hsnd_interval_list}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hY(struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjsbc.snd_interval_listasbuh1hhj%ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(hjrh]hi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj!ubjF)}(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 }(hjćhhhNhNubah}(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>uh1jEhj!ubjF)}(hconst unsigned int *listh](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)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlisth]hlist}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj!ubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`ubj)}(h h]h }(hjrhhhNhNubah}(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%)}(hmaskh]hmask}(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?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]j߆ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h'refine the interval value from the listh]h'refine the interval value from the list}(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 hjÈhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjވjjވjjjuh1hhhhj]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)}(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)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(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)}(hthe interval value to refineh]hthe interval value to refine}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h:``unsigned int count`` the number of elements in the list h](j)}(h``unsigned int count``h]j)}(hj@h]hunsigned int count}(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)}(h"the number of elements in the listh]h"the number of elements in the list}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjubj)}(h,``const unsigned int *list`` the value list h](j)}(h``const unsigned int *list``h]j)}(hjyh]hconst unsigned int *list}(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 value listh]hthe value list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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.chMhjubj)}(hhh]jg)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hjˉhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjljhMhjȉubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjljhMhjubeh}(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)}(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.}(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 **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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ranges (C function)c.snd_interval_rangeshNtauh1hhj]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}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjghM4ubj)}(hsnd_interval_rangesh]j%)}(hsnd_interval_rangesh]hsnd_interval_ranges}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjghM4ubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjrh]hi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj1hhhNhNubah}(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>uh1jEhjubjF)}(h!const struct snd_interval *rangesh](jL)}(hj\h]hconst}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubjL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(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_rangesasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hrangesh]hranges}(hjʋhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjߋubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjߋubj%)}(hmaskh]hmask}(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?hjUhhhjghM4ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjghM4ubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghM4hjNhhubjb)}(hhh]jg)}(h1refine the interval value from the list of rangesh]h1refine the interval value from the list of ranges}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4hjBhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjghM4ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhj]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)}(hjgh]h Parameters}(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.chM8hjaubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value 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.chM5hjubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(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}(hj،hhhNhNubah}(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)}(hjh]h!const struct snd_interval *ranges}(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 ranges listh]hthe ranges list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM7hj}ubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hj1h]hunsigned int mask}(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:32: ./sound/core/pcm_lib.chM8hj+ubj)}(hhh]jg)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhM8hjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhM8hj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubjg)}(h**Description**h]j)}(hjlh]h Description}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjaubjg)}(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.}(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:hjaubjg)}(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>hjaubjg)}(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>hjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_hw_rule_add (C function)c.snd_pcm_hw_rule_addhNtauh1hhj]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}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԍhhhjhMubj)}(hsnd_pcm_hw_rule_addh]j%)}(hsnd_pcm_hw_rule_addh]hsnd_pcm_hw_rule_add}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjԍhhhjhMubj@)}(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}(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}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_rule_addasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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 }(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)}(hint varh](h)}(hinth]hint}(hj؎hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjԎubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԎubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjԎubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hsnd_pcm_hw_rule_func_t funch](h)}(hhh]j%)}(hsnd_pcm_hw_rule_func_th]hsnd_pcm_hw_rule_func_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jOc.snd_pcm_hw_rule_addasbuh1hhj ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hfunch]hfunc}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h void *privateh](h)}(hvoidh]hvoid}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj%)}(hprivateh]hprivate}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h...h]j)}(h...h]h...}(hj̏hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjȏubah}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(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)}(hadd the hw-constraint ruleh]hadd the hw-constraint 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&]uh1jahj͍hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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_runtime *runtime`` the pcm runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj7h]hstruct snd_pcm_runtime *runtime}(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:32: ./sound/core/pcm_lib.chMhj1ubj)}(hhh]jg)}(hthe pcm runtime instanceh]hthe pcm runtime instance}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhMhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhMhj.ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjph]hunsigned int cond}(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:32: ./sound/core/pcm_lib.chMhjjubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj.ubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj.ubj)}(h8``snd_pcm_hw_rule_func_t func`` the evaluation function h](j)}(h``snd_pcm_hw_rule_func_t func``h]j)}(hjh]hsnd_pcm_hw_rule_func_t func}(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 evaluation functionh]hthe evaluation function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjܐubeh}(h]h ]h"]h$]h&]uh1jhjhMhj.ubj)}(h>``void *private`` the private data pointer passed to function h](j)}(h``void *private``h]j)}(hjh]h void *private}(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 private data pointer passed to functionh]h+the private data pointer passed to function}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj.ubj)}(h$``int dep`` the dependent variables h](j)}(h ``int dep``h]j)}(hjTh]hint dep}(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)}(hthe dependent variablesh]hthe dependent variables}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihMhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMhj.ubj)}(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.chKhjubj)}(hhh]jg)}(hvariable argumentsh]hvariable arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj.ubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chKhjubjg)}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_mask (C function)c.snd_pcm_hw_constraint_maskhNtauh1hhj]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}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_pcm_hw_constraint_maskh]j%)}(hsnd_pcm_hw_constraint_maskh]hsnd_pcm_hw_constraint_mask}(hj.hhhNhNubah}(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_int32_t mask)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}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sbc.snd_pcm_hw_constraint_maskasbuh1hhjFubj)}(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_maskasbuh1hhjubj)}(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>uh1jEhjBubjF)}(hu_int32_t maskh](h)}(hhh]j%)}(h u_int32_th]h u_int32_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_maskasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hj3hhhNhNubah}(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&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.chMhjZhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhj]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)}(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:32: ./sound/core/pcm_lib.chMhjyubj)}(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_int32_t mask`` the bitmap mask h](j)}(h``u_int32_t mask``h]j)}(hjh]hu_int32_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 bitmap maskh]hthe 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&]uh1jhjyubjg)}(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:32: ./sound/core/pcm_lib.chMhjyubjg)}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjyubjg)}(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.chMhjyubjg)}(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.chMhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_mask64 (C function)c.snd_pcm_hw_constraint_mask64hNtauh1hhj]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&]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_mask64h]j%)}(hsnd_pcm_hw_constraint_mask64h]hsnd_pcm_hw_constraint_mask64}(hjؔhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjԔubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjŔhMubj@)}(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}(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_mask64asbuh1hhjubj)}(h h]h }(hj2hhhNhNubah}(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>uh1jEhjubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j.c.snd_pcm_hw_constraint_mask64asbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hu_int64_t maskh](h)}(hhh]j%)}(h u_int64_th]h u_int64_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j.c.snd_pcm_hw_constraint_mask64asbuh1hhjubj)}(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>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 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&]uh1jahjhhhjŔhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(hjHh]hstruct snd_pcm_runtime *runtime}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjBubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj?ubj)}(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)}(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.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&]uh1jhjhMhj?ubj)}(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.chMhjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϖhMhj?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: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.}(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)}(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.}(hj2hhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_integer (C function)c.snd_pcm_hw_constraint_integerhNtauh1hhj]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}(hjahhhNhNubah}(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 }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhjohMubj)}(hsnd_pcm_hw_constraint_integerh]j%)}(hsnd_pcm_hw_constraint_integerh]hsnd_pcm_hw_constraint_integer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhjohMubj@)}(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)}jjsbc.snd_pcm_hw_constraint_integerasbuh1hhjubj)}(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)}(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_integerasbuh1hhj ubj)}(h h]h }(hj1hhhNhNubah}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj]hhhjohMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjohMubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohMhjVhhubjb)}(hhh]jg)}(h*apply an integer constraint to an intervalh]h*apply an integer constraint to an interval}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjfhhubah}(h]h ]h"]h$]h&]uh1jahjVhhhjohMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.chMhjubj)}(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}(hjØhhhNhNubah}(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)}(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.chMhjݘubj)}(hhh]jg)}(h2hw_params variable to apply the integer constrainth]h2hw_params variable to apply the integer constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjݘubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h9Apply the constraint of integer to an interval parameter.h]h9Apply the constraint of integer to an interval parameter.}(hj4hhhNhNubah}(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)}(hjEh]hReturn}(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: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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_minmax (C function)c.snd_pcm_hw_constraint_minmaxhNtauh1hhj]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&]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_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>uh1jhjhhhjhMubj@)}(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&]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_constraint_minmaxasbuh1hhjÙ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>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$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_minmaxasbuh1hhj5ubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj%)}(hvarh]hvar}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int minh](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 }(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 }(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%)}(hmaxh]hmax}(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?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j}ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h/apply a min/max range constraint to an intervalh]h/apply a min/max range constraint to an interval}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj1hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhj]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)}(hjVh]h Parameters}(hjXhhhNhNubah}(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.chMhjPubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjuh]hstruct snd_pcm_runtime *runtime}(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:32: ./sound/core/pcm_lib.chMhjoubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhMhjlubj)}(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}(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 rangeh]h%hw_params variable to apply the range}(hjǛhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjÛhMhjěubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjÛhMhjlubj)}(h'``unsigned int min`` the minimal value h](j)}(h``unsigned int min``h]j)}(hjh]hunsigned int min}(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 minimal valueh]hthe minimal value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjlubj)}(h'``unsigned int max`` the maximal value h](j)}(h``unsigned int max``h]j)}(hj h]hunsigned int 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:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe maximal valueh]hthe maximal value}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjlubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hj[h]h Description}(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.chMhjPubjg)}(huh1jhjÜhhhj՜hMubj@)}(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}(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}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_listasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjPhhhNhNubah}(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)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(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 reftargetj̝modnameN classnameNjj)}j]j>c.snd_pcm_hw_constraint_listasbuh1hhjÝubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjÝubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjÝubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h*const struct snd_pcm_hw_constraint_list *lh](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}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_listh]hsnd_pcm_hw_constraint_list}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j>c.snd_pcm_hw_constraint_listasbuh1hhj ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hlh]hl}(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Ühhhj՜hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj՜hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj՜hMhjhhubjb)}(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՜hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjÞjjÞjjjuh1hhhhj]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)}(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.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:hMhjubj)}(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)}(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.chMhjXubj)}(hhh]jg)}(h/hw_params variable to apply the list constrainth]h/hw_params variable to apply the list constraint}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMhjubj)}(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}(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)}(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.}(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 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: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.}(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"hjǞubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_ranges (C function)c.snd_pcm_hw_constraint_rangeshNtauh1hhj]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}(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.chM9ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhjLhM9ubj)}(hsnd_pcm_hw_constraint_rangesh]j%)}(hsnd_pcm_hw_constraint_rangesh]hsnd_pcm_hw_constraint_ranges}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhjLhM9ubj@)}(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&]uh1jKhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(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)}jjasbc.snd_pcm_hw_constraint_rangesasbuh1hhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjǠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hruntimeh]hruntime}(hjԠhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubjF)}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(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>uh1jEhjsubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_rangesasbuh1hhj: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>uh1jEhjsubjF)}(h,const struct snd_pcm_hw_constraint_ranges *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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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_rangesasbuh1hhjubj)}(h h]h }(hjݡhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrh]hr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj:hhhjLhM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhjLhM9ubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhM9hj3hhubjb)}(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.chM9hjhhubah}(h]h ]h"]h$]h&]uh1jahj3hhhjLhM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1hhhhj]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)}(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:32: ./sound/core/pcm_lib.chM=hj>ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjch]hstruct snd_pcm_runtime *runtime}(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:32: ./sound/core/pcm_lib.chM:hj]ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhM:hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhM:hjZubj)}(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&]uh1jfhjhM;hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM;hjZubj)}(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}(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.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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM<hjubah}(h]h ]h"]h$]h&]uh1jhjϢubeh}(h]h ]h"]h$]h&]uh1jhjhM<hjZubj)}(h8``const struct snd_pcm_hw_constraint_ranges *r`` ranges h](j)}(h0``const struct snd_pcm_hw_constraint_ranges *r``h]j)}(hjh]h,const struct snd_pcm_hw_constraint_ranges *r}(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)}(hrangesh]hranges}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hM=hj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hM=hjZubeh}(h]h ]h"]h$]h&]uh1jhj>ubjg)}(h**Description**h]j)}(hjIh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(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=Apply the list of range constraints to an interval parameter.h]h=Apply the list of range constraints to an interval 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.chM?hj>ubjg)}(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:32: ./sound/core/pcm_lib.chMAhj>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.chMAhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_ratnums (C function)c.snd_pcm_hw_constraint_ratnumshNtauh1hhj]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&]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 hjhhhjãhM^ubj)}(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>uh1jhjhhhjãhM^ubj@)}(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}(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$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjأsbc.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`ubj)}(h h]h }(hjrhhhNhNubah}(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>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_ratnumsasbuh1hhjubj)}(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>uh1jEhjubjF)}(h-const struct snd_pcm_hw_constraint_ratnums *rh](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}(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_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j,c.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hr}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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 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&]uh1jahjhhhjãhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.chMbhjubj)}(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.chM_hjӥubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjӥubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjХ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.chM`hj ubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(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)}(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)}(hjKh]hsnd_pcm_hw_param_t var}(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.chMahjEubj)}(hhh]jg)}(h2hw_params variable to apply the ratnums constrainth]h2hw_params variable to apply the ratnums constraint}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMahjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hMahjХ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)}(hjh]h-const struct snd_pcm_hw_constraint_ratnums *r}(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.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&]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.chMdhjubjg)}(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.chMdhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_ratdens (C function)c.snd_pcm_hw_constraint_ratdenshNtauh1hhj]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}(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_ratdensh]j%)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(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, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratdens *r)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_pcm_runtimeh]hsnd_pcm_runtime}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.snd_pcm_hw_constraint_ratdensasbuh1hhj=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>uh1jEhj9ubjF)}(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}(hjϧhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjݧhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(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]j{c.snd_pcm_hw_constraint_ratdensasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubjF)}(h-const struct snd_pcm_hw_constraint_ratdens *rh](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%)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j{c.snd_pcm_hw_constraint_ratdensasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hjh]hr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(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'apply ratdens constraint to a parameterh]h'apply ratdens 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(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}(hjAhhhNhNubah}(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 cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjah]hunsigned int cond}(hjchhhNhNubah}(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}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjͩubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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&]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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_msbits (C function)c.snd_pcm_hw_constraint_msbitshNtauh1hhj]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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjahMubj)}(hsnd_pcm_hw_constraint_msbitsh]j%)}(hsnd_pcm_hw_constraint_msbitsh]hsnd_pcm_hw_constraint_msbits}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjahMubj@)}(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 reftargetjmodnameN classnameNjj)}j]j)}jjvsbc.snd_pcm_hw_constraint_msbitsasbuh1hhjubj)}(h h]h }(hjΪhhhNhNubah}(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)}(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>uh1jEhjubjF)}(hunsigned int widthh](h)}(hunsignedh]hunsigned}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hinth]hint}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hwidthh]hwidth}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int msbitsh](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%)}(hmsbitsh]hmsbits}(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?hjOhhhjahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjahMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhjHhhubjb)}(hhh]jg)}(hadd a hw constraint msbits ruleh]hadd a hw constraint msbits 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&]uh1jahjHhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(hjGh]hstruct snd_pcm_runtime *runtime}(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.chMhjAubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hMhj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hMhj>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&]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)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMhj>ubj)}(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.chMhjubj)}(hhh]jg)}(hsample bits widthh]hsample bits width}(hjҬhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjάhMhjϬubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjάhMhj>ubj)}(h%``unsigned int msbits`` msbits width h](j)}(h``unsigned int msbits``h]j)}(hjh]hunsigned int msbits}(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 msbits widthh]h msbits width}(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.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.}(hjChhhNhNubah}(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)}(hjTh]hReturn}(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: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.}(hjjhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_step (C function)c.snd_pcm_hw_constraint_stephNtauh1hhj]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 }(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_stepasbuh1hhjҭ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}(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%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(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_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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjݮubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjݮubh)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjݮubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjݮubj%)}(hsteph]hstep}(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?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}(hjChhhNhNubah}(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&]jjjj[jj[jjjuh1hhhhj]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)}(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: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&]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)}(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 step constrainth]h/hw_params variable to apply the step constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhj{ubj)}(h!``unsigned long step`` step size h](j)}(h``unsigned long step``h]j)}(hj/h]hunsigned long step}(hj1hhhNhNubah}(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 step sizeh]h step size}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhMhj{ubeh}(h]h ]h"]h$]h&]uh1jhj_ubjg)}(h **Return**h]j)}(hjjh]hReturn}(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.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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_pow2 (C function)c.snd_pcm_hw_constraint_pow2hNtauh1hhj]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}(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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjҰsbc.snd_pcm_hw_constraint_pow2asbuh1hhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjEhhhNhNubah}(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&]uh1hhjZubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(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_pow2asbuh1hhjubj)}(h h]h }(hjбhhhNhNubah}(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>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#add a hw constraint power-of-2 ruleh]h#add a hw constraint power-of-2 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&]jjjj jj jjjuh1hhhhj]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)}(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)}(hjIh]hstruct snd_pcm_runtime *runtime}(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)}(hPCM runtime instanceh]hPCM runtime instance}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj@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.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&]uh1jhjhMhj@ubj)}(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вhMhj@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.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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_rule_noresample (C function)c.snd_pcm_hw_rule_noresamplehNtauh1hhj]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}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7hhhjIhMubj)}(hsnd_pcm_hw_rule_noresampleh]j%)}(hsnd_pcm_hw_rule_noresampleh]hsnd_pcm_hw_rule_noresample}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj7hhhjIhMubj@)}(h9(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(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_rule_noresampleasbuh1hhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjijhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hruntimeh]hruntime}(hjѳhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubjF)}(hunsigned int base_rateh](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%)}(h base_rateh]h base_rate}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj7hhhjIhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhjIhMubah}(h]j.ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjIhMhj0hhubjb)}(hhh]jg)}(h+add a rule to allow disabling hw resamplingh]h+add a rule to allow disabling hw resampling}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjIhhubah}(h]h ]h"]h$]h&]uh1jahj0hhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj]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)}(hjnh]h Parameters}(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.chM hjhubj)}(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)}(hL``unsigned int base_rate`` the rate at which the hardware does not resample h](j)}(h``unsigned int base_rate``h]j)}(hjƴh]hunsigned int base_rate}(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)}(h0the rate at which the hardware does not resampleh]h0the rate at which the hardware does not resample}(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&]uh1jhjhubjg)}(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 hjhubjg)}(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 hjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_value (C function)c.snd_pcm_hw_param_valuehNtauh1hhj]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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjThM5ubj)}(hsnd_pcm_hw_param_valueh]j%)}(hsnd_pcm_hw_param_valueh]hsnd_pcm_hw_param_value}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjThM5ubj@)}(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}(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)}jjisbc.snd_pcm_hw_param_valueasbuh1hhjubj)}(h h]h }(hjܵhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparamsh]hparams}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jصc.snd_pcm_hw_param_valueasbuh1hhj ubj)}(h h]h }(hj1hhhNhNubah}(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>uh1jEhj{ubjF)}(hint *dirh](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjTubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjThM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhjThM5ubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThM5hj;hhubjb)}(hhh]jg)}(h%return **params** field **var** valueh](hreturn }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field }(hjhhhNhNubj)}(h**var**h]hvar}(hjŶhhhNhNubah}(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&]uh1jahj;hhhjThM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.chM9hjubj)}(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)}(hjh]h&const struct snd_pcm_hw_params *params}(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)}(hthe hw_params instanceh]hthe hw_params instance}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hM6hj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hM6hjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjIh]hsnd_pcm_hw_param_t var}(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.chM7hjCubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hM7hj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hM7hjubj)}(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.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&]uh1jhjhM8hjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubjg)}(hnThe value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](hThe value for field }(hjhhhNhNubj)}(h**var**h]hvar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh3 if it’s fixed in configuration space defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. -}(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh otherwise.}(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:hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_first (C function)c.snd_pcm_hw_param_firsthNtauh1hhj]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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMxubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjThMxubj)}(hsnd_pcm_hw_param_firsth]j%)}(hsnd_pcm_hw_param_firsth]hsnd_pcm_hw_param_first}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjThMxubj@)}(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}(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)}jjisbc.snd_pcm_hw_param_firstasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjϸhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hjܸhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubjF)}(h struct snd_pcm_hw_params *paramsh](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_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_firstasbuh1hhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparamsh]hparams}(hjLhhhNhNubah}(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}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhjaubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(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?hjBhhhjThMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhjThMxubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThMxhj;hhubjb)}(hhh]jg)}(h,refine config space and return minimum valueh]h,refine config space and return minimum 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.chMxhjhhubah}(h]h ]h"]h$]h&]uh1jahj;hhhjThMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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&]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)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hjAh]hstruct snd_pcm_substream *pcm}(hjChhhNhNubah}(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.chMyhj;ubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMyhjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhMyhj8ubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjzh]h struct snd_pcm_hw_params *params}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMzhjtubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhMzhj8ubj)}(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.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{hj8ubj)}(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.chM|hjubj)}(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}(hj hhhNhNubah}(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|hj8ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj5h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(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)}(hInside configuration space defined by **params** remove from **var** all values > minimum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hjKhhhNhNubj)}(h **params**h]hparams}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh remove from }(hjKhhhNhNubj)}(h**var**h]hvar}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh> all values > minimum. Reduce configuration space accordingly.}(hjKhhhNhNubeh}(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&]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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_hw_param_last (C function)c.snd_pcm_hw_param_lasthNtauh1hhj]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}(hjŻhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(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$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_param_lastasbuh1hhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjNhhhNhNubah}(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}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(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<c.snd_pcm_hw_param_lastasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hparamsh]hparams}(hj˼hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(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_param_lastasbuh1hhjubj)}(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)}(hint *dirh](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)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hdirh]hdir}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(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,refine config space and return maximum valueh]h,refine config space and return maximum 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.chMhj|hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjӻhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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}(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 PCM instanceh]h PCM 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_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjh]h struct snd_pcm_hw_params *params}(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 hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj2h]hsnd_pcm_hw_param_t var}(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.chMhj,ubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjkh]hint *dir}(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-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&]uh1jhjeubeh}(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: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}(hjhhhNhNubah}(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)}(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)}(h1The maximum, or a negative error code on failure.h]h1The maximum, 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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_params_bits (C function)c.snd_pcm_hw_params_bitshNtauh1hhj]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}(hjDhhhNhNubah}(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 }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjRhMubj)}(hsnd_pcm_hw_params_bitsh]j%)}(hsnd_pcm_hw_params_bitsh]hsnd_pcm_hw_params_bits}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjRhMubj@)}(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&]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)}jjgsbc.snd_pcm_hw_params_bitsasbuh1hhj}ubj)}(h h]h }(hjڿhhhNhNubah}(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?hj@hhhjRhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhjRhMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhMhj9hhubjb)}(hhh]jg)}(h&Get the number of bits per the sample.h]h&Get the number of bits per the sample.}(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&]uh1jahj9hhhjRhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj]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)}(hj@h]h Parameters}(hjBhhhNhNubah}(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)}(h:``const struct snd_pcm_hw_params *p`` hardware parameters 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjYubj)}(hhh]jg)}(hhardware parametersh]hhardware parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjVubah}(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.chMhj:ubjg)}(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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_lib_ioctl (C function)c.snd_pcm_lib_ioctlhNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM6ubj)}(hsnd_pcm_lib_ioctlh]j%)}(hsnd_pcm_lib_ioctlh]hsnd_pcm_lib_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM6ubj@)}(hB(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)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}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_lib_ioctlasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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>uh1jEhjubjF)}(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>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)}(ha generic PCM ioctl callbackh]ha generic PCM ioctl callback}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hj/hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj]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)}(hjTh]h Parameters}(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:32: ./sound/core/pcm_lib.chM:hjNubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjsh]h#struct snd_pcm_substream *substream}(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.chM7hjmubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjjubj)}(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&]uh1jhjhM8hjjubj)}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjubj)}(hhh]jg)}(hioctl argumenth]hioctl argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9hjjubeh}(h]h ]h"]h$]h&]uh1jhjNubjg)}(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.chM;hjNubjg)}(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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM;hjNubjg)}(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.chM>hjNubjg)}(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.chM>hjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]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_lockhNtauh1hhj]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.chMRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMRubj)}(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>uh1jhjhhhjhMRubj@)}(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)}jjsb*c.snd_pcm_period_elapsed_under_stream_lockasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(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?hjhhhjhMRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMRubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMRhjhhubjb)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMRhjIhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj]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)}(hjnh]h Parameters}(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.chMVhjhubj)}(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&]uh1jhjhubjg)}(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.chMVhjhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMYhjhubjg)}(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 }(hjhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hjh]h snd_pcm_ops}(hjhhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhjubah}(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^hjubhI in process context. In any interrupt context, it’s preferrable to use }(hjhhhNhNubj)}(h``snd_pcm_period_elapsed()``h]hsnd_pcm_period_elapsed()}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC instead since lock of PCM substream should be acquired in advance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhj)hM^hjhubjg)}(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 }(hjFhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hjPh]h snd_pcm_ops}(hjRhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj$j' snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMchjFubh" are done by the call of function:}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhjmhMchjhubh 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&]uh1j}hjzubj~)}(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&]uh1j}hjzubj~)}(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.}(hjhhhNhNubah}(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&]uh1j}hjzubeh}(h]h ]h"]h$]h&]bullet-uh1jxhjhMfhjhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMjhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_period_elapsed (C function)c.snd_pcm_period_elapsedhNtauh1hhj]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}(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 hjhhhj hMubj)}(hsnd_pcm_period_elapsedh]j%)}(hsnd_pcm_period_elapsedh]hsnd_pcm_period_elapsed}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj 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&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jj"sbc.snd_pcm_period_elapsedasbuh1hhj8ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(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)}(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&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(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.chMhjubj)}(hhh]jg)}(hthe instance of PCM substream.h]hthe instance of 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)}(hj;h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(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 }(hjQhhhNhNubj)}(h.``snd_pcm_period_elapsed_under_stream_lock()``h]h*snd_pcm_period_elapsed_under_stream_lock()}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubh8 except for acquiring lock of PCM substream voluntarily.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(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.}(hjrhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_add_chmap_ctls (C function)c.snd_pcm_add_chmap_ctlshNtauh1hhj]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 }(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_add_chmap_ctlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj%)}(hstreamh]hstream}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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]jc.snd_pcm_add_chmap_ctlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hchmaph]hchmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint max_channelsh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(h max_channelsh]h max_channels}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long private_valueh](h)}(hunsignedh]hunsigned}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hlongh]hlong}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj%)}(h private_valueh]h private_value}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_add_chmap_ctlsasbuh1hhjubj)}(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%)}(hinfo_reth]hinfo_ret}(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'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 hj!hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhj]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)}(hjFh]h Parameters}(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.chM hj@ubj)}(hhh](j)}(h2``struct snd_pcm *pcm`` the assigned PCM instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjeh]hstruct snd_pcm *pcm}(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)}(hthe assigned PCM instanceh]hthe assigned PCM instance}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhM hj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhM hj\ubj)}(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&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj\ubj)}(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)}(hjh]h&const struct snd_pcm_chmap_elem *chmap}(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 channel map elements (for query)h]h channel map elements (for query)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj\ubj)}(h?``int max_channels`` the max number of channels for the stream h](j)}(h``int max_channels``h]j)}(hjh]hint max_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:32: ./sound/core/pcm_lib.chM hj ubj)}(hhh]jg)}(h)the max number of channels for the streamh]h)the max number of channels for the stream}(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)}(hX``unsigned long private_value`` the value passed to each kcontrol's private_value field h](j)}(h``unsigned long private_value``h]j)}(hjIh]hunsigned long private_value}(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)}(h7the value passed to each kcontrol's private_value fieldh]h9the value passed to each kcontrol’s private_value field}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hM hj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hM hj\ubj)}(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 hj|ubj)}(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&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhM 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:32: ./sound/core/pcm_lib.chM hj@ubjg)}(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).}(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 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:32: ./sound/core/pcm_lib.chM hj@ubjg)}(h.Zero if successful, or a negative error value.h]h.Zero if successful, or a negative error 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.chM hj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_stream_lock (C function)c.snd_pcm_stream_lockhNtauh1hhj]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}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj%hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKeubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj7hKeubj)}(hsnd_pcm_stream_lockh]j%)}(hsnd_pcm_stream_lockh]hsnd_pcm_stream_lock}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj7hKeubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(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)}jjLsbc.snd_pcm_stream_lockasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(h substreamh]h substream}(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?hj%hhhj7hKeubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj7hKeubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hKehjhhubjb)}(hhh]jg)}(hLock the PCM streamh]hLock 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.chKehjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj7hKeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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:33: ./sound/core/pcm_native.chKihjubj)}(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&]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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hKfhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hKfhj!ubah}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhhjubjg)}(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.}(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.chKhhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_stream_unlock (C function)c.snd_pcm_stream_unlockhNtauh1hhj]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.chKsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKsubj)}(hsnd_pcm_stream_unlockh]j%)}(hsnd_pcm_stream_unlockh]hsnd_pcm_stream_unlock}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKsubj@)}(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_unlockasbuh1hhjubj)}(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>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKsubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKsubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKshjhhubjb)}(hhh]jg)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKshjghhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.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().}(hjhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_stream_lock_irq (C function)c.snd_pcm_stream_lock_irqhNtauh1hhj]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}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'hhhj9hKubj)}(hsnd_pcm_stream_lock_irqh]j%)}(hsnd_pcm_stream_lock_irqh]hsnd_pcm_stream_lock_irq}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'hhhj9hKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(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)}jjNsbc.snd_pcm_stream_lock_irqasbuh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(h substreamh]h substream}(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'hhhj9hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#hhhj9hKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hKhj hhubjb)}(hhh]jg)}(hLock the PCM streamh]hLock 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 hhhj9hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(hj h]h Parameters}(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.chKhjubj)}(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&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj&ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhj#ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjgh]h Description}(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.chKhjubjg)}(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().}(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.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_stream_unlock_irq (C function)c.snd_pcm_stream_unlock_irqhNtauh1hhj]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}(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 reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_unlock_irqasbuh1hhjubj)}(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?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}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjihhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.chKhjubjg)}(h4This is a counter-part of snd_pcm_stream_lock_irq().h]h4This is a counter-part of snd_pcm_stream_lock_irq().}(hjhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_pcm_stream_unlock_irqrestore (C function)"c.snd_pcm_stream_unlock_irqrestorehNtauh1hhj]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}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)hhhj;hKubj)}(h snd_pcm_stream_unlock_irqrestoreh]j%)}(h snd_pcm_stream_unlock_irqrestoreh]h snd_pcm_stream_unlock_irqrestore}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj)hhhj;hKubj@)}(h:(struct snd_pcm_substream *substream, unsigned long flags)h](jF)}(h#struct snd_pcm_substream *substreamh](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_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjPsb"c.snd_pcm_stream_unlock_irqrestoreasbuh1hhjfubj)}(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>uh1jEhjbubjF)}(hunsigned long flagsh](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%)}(hflagsh]hflags}(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)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)}(hUnlock the PCM streamh]hUnlock the PCM stream}(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.chKhj;hhubah}(h]h ]h"]h$]h&]uh1jahj"hhhj;hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhj]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)}(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:33: ./sound/core/pcm_native.chKhjZubj)}(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&]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.chKhjyubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKhjvubj)}(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.chKhjubj)}(hhh]jg)}(h irq flagsh]h irq flags}(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:33: ./sound/core/pcm_native.chKhjZubjg)}(h8This is a counter-part of snd_pcm_stream_lock_irqsave().h]h8This is a counter-part of snd_pcm_stream_lock_irqsave().}(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.chKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_hw_params_choose (C function)c.snd_pcm_hw_params_choosehNtauh1hhj]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}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhjFhMubj)}(hsnd_pcm_hw_params_chooseh]j%)}(hsnd_pcm_hw_params_chooseh]hsnd_pcm_hw_params_choose}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhjFhMubj@)}(hA(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](jF)}(hstruct snd_pcm_substream *pcmh](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_hw_params_chooseasbuh1hhjqubj)}(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>uh1jEhjmubjF)}(h struct snd_pcm_hw_params *paramsh](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_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_params_chooseasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparamsh]hparams}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4hhhjFhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhjFhMubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhMhj-hhubjb)}(hhh]jg)}(h,choose a configuration defined by **params**h](h"choose a configuration defined by }(hjhhhhNhNubj)}(h **params**h]hparams}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjehhubah}(h]h ]h"]h$]h&]uh1jahj-hhhjFhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.chMhjubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjh]h struct snd_pcm_hw_params *params}(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 hw_params instanceh]hthe hw_params instance}(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**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: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 }(hjAhhhNhNubj)}(h **params**h]hparams}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh. 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}(hjAhhhNhNubeh}(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)}(hjdh]hReturn}(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.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjzhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_start (C function)c.snd_pcm_starthNtauh1hhj]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}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_startasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(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?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}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjfhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stop (C function)c.snd_pcm_stophNtauh1hhj]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}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj8hMubj)}(h snd_pcm_stoph]j%)}(h snd_pcm_stoph]h snd_pcm_stop}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj8hMubj@)}(h<(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](jF)}(h#struct snd_pcm_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_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.snd_pcm_stopasbuh1hhjcubj)}(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)}(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_stopasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstateh]hstate}(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?hj&hhhj8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"hhhj8hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hMhjhhubjb)}(hhh]jg)}(h6try to stop all running streams in the substream grouph]h6try to stop all running streams in the substream group}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj/hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj]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)}(hjTh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjNubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjsh]h#struct snd_pcm_substream *substream}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjmubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(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&]uh1jfhjhMhjuba h}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubeh}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjNubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjNubjg)}(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.chMhjNubjg)}(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.chMhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_drain_done (C function)c.snd_pcm_drain_donehNtauh1hhj]hhhNhNubh)}(hhh](h)}(huh1jhjOhhhjahMubj@)}(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)}jjvsbc.snd_pcm_drain_doneasbuh1hhjubj)}(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?hjOhhhjahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjahMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhjHhhubjb)}(hhh]jg)}(h3stop the DMA only when the given stream is playbackh]h3stop the DMA only when the given stream is playback}(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&]uh1jahjHhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1hhhhj]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)}(hj5h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(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)}(h:``struct snd_pcm_substream *substream`` the PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjTh]h#struct snd_pcm_substream *substream}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjNubj)}(hhh]jg)}(hthe PCM substreamh]hthe PCM substream}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihMhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMhjKubah}(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)}(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 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.chM#hj/ubjg)}(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.chM#hj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stop_xrun (C function)c.snd_pcm_stop_xrunhNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM,ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM,ubj)}(hsnd_pcm_stop_xrunh]j%)}(hsnd_pcm_stop_xrunh]hsnd_pcm_stop_xrun}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hM,ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stop_xrunasbuh1hhj4ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubah}(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 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&]uh1jahjhhhj hM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.chM0hjubj)}(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.chM-hjubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream 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**Description**h]j)}(hj7h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(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)}(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.}(hjMhhhNhNubah}(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)}(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.chM2hjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_suspend_all (C function)c.snd_pcm_suspend_allhNtauh1hhj]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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(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>uh1jhjhhhjhMubj@)}(h(struct snd_pcm *pcm)h]jF)}(hstruct snd_pcm *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_pcmh]hsnd_pcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_suspend_allasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hj9hhhNhNubah}(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)}(h2trigger SUSPEND to all substreams in the given pcmh]h2trigger SUSPEND to all substreams in the given pcm}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj`hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhj]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)}(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)}(huh1jhjkhhhj}hMubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_prepareasbuh1hhjubj)}(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)}(hstruct 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%)}(hfileh]hfile}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.snd_pcm_prepareasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjkhhhj}hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjghhhj}hMubah}(h]jbah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj}hMhjdhhubjb)}(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&]uh1jahjdhhhj}hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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,``struct file *file`` file to refer f_flags h](j)}(h``struct file *file``h]j)}(hjh]hstruct file *file}(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)}(hfile to refer f_flagsh]hfile to refer f_flags}(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 **Return**h]j)}(hjTh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(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.}(hjjhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_kernel_ioctl (C function)c.snd_pcm_kernel_ioctlhNtauh1hhj]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.chMc ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMc 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>uh1jhjhhhjhMc ubj@)}(hB(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)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_kernel_ioctlasbuh1hhjubj)}(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}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int cmdh](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%)}(hcmdh]hcmd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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>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)}(h%Execute PCM ioctl in the kernel-spaceh]h%Execute PCM ioctl in the kernel-space}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMc hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMc ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(hjh]h Parameters}(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.chMg hjubj)}(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&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMd hj'ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMd hjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMd hj$ubj)}(h``unsigned int cmd`` IOCTL cmd h](j)}(h``unsigned int cmd``h]j)}(hjfh]hunsigned int cmd}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMe hj`ubj)}(hhh]jg)}(h IOCTL cmdh]h IOCTL cmd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMe hj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMe 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&]uh1jfhjhMf hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMf 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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMh hjubjg)}(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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMh hjubjg)}(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.chMl hjubjg)}(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.chMl hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_default_mmap (C function)c.snd_pcm_lib_default_mmaphNtauh1hhj]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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjThMubj)}(hsnd_pcm_lib_default_mmaph]j%)}(hsnd_pcm_lib_default_mmaph]hsnd_pcm_lib_default_mmap}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjThMubj@)}(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)}jjisbc.snd_pcm_lib_default_mmapasbuh1hhjubj)}(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>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]jc.snd_pcm_lib_default_mmapasbuh1hhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hareah]harea}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjThMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhjThMubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThMhj;hhubjb)}(hhh]jg)}(hDefault PCM data mmap functionh]hDefault PCM data mmap function}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjshhubah}(h]h ]h"]h$]h&]uh1jahj;hhhjThMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.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 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.chMhjubj)}(hhh]jg)}(hVMAh]hVMA}(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**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: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.}(hjAhhhNhNubah}(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)}(hjRh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(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}(hjhhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_mmap_iomem (C function)c.snd_pcm_lib_mmap_iomemhNtauh1hhj]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.chM+ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM+ubj)}(hsnd_pcm_lib_mmap_iomemh]j%)}(hsnd_pcm_lib_mmap_iomemh]hsnd_pcm_lib_mmap_iomem}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM+ubj@)}(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_mmap_iomemasbuh1hhjubj)}(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}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jc.snd_pcm_lib_mmap_iomemasbuh1hhjBubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(hareah]harea}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(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*Default PCM data mmap function for I/O memh]h*Default PCM data mmap function for I/O mem}(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&]uh1jahjhhhjhM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(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}(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:33: ./sound/core/pcm_native.chM,hjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM,hjubj)}(h$``struct vm_area_struct *area`` VMA h](j)}(h``struct vm_area_struct *area``h]j)}(hjAh]hstruct vm_area_struct *area}(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)}(hVMAh]hVMA}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhM-hjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhM-hjubeh}(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:33: ./sound/core/pcm_native.chM/hjubjg)}(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/hjubjg)}(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.chM3hjubjg)}(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.chM3hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_stream_linked (C function)c.snd_pcm_stream_linkedhNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMsubj)}(hsnd_pcm_stream_linkedh]j%)}(hsnd_pcm_stream_linkedh]hsnd_pcm_stream_linked}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMsubj@)}(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 }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.snd_pcm_stream_linkedasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjqhhhNhNubah}(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>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMsubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMsubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMshjhhubjb)}(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&]uh1jahjhhhjhMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.hhMwhjubj)}(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.hhMthjubj)}(hhh]jg)}(hsubstream to checkh]hsubstream to check}(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 **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.hhMvhjubjg)}(h7true if the given substream is being linked with othersh]h7true if the given substream is being linked with others}(hj:hhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_stream_lock_irqsave (C macro)c.snd_pcm_stream_lock_irqsavehNtauh1hhj]hhhNhNubh)}(hhh](h)}(hsnd_pcm_stream_lock_irqsaveh]h)}(hsnd_pcm_stream_lock_irqsaveh]j)}(hsnd_pcm_stream_lock_irqsaveh]j%)}(hjch]hsnd_pcm_stream_lock_irqsave}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjhMubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj^hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj^hhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhj]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.hhMhj]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&]uh1jhjhMhj]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)}(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``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&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hj.h]hflags}(hj0hhhNhNubah}(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 irq flagsh]h irq flags}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjih]h Description}(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.hhMhjubjg)}(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.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_pcm_stream_lock_irqsave_nested (C macro)$c.snd_pcm_stream_lock_irqsave_nestedhNtauh1hhj]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}(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&]jjjjjjjjjuh1hhhhj]hNhNubjg)}(h9``snd_pcm_stream_lock_irqsave_nested (substream, flags)``h]j)}(hjh]h5snd_pcm_stream_lock_irqsave_nested (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.hhMhj]hhubj)}(h!Single-nested PCM stream locking h]jg)}(h Single-nested PCM stream lockingh]h Single-nested PCM stream locking}(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 hMhj]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)}(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``substream`` PCM substream h](j)}(h ``substream``h]j)}(hj8h]h substream}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj2ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMhj/ubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hjqh]hflags}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjkubj)}(hhh]jg)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(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.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_group_for_each_entry (C macro)c.snd_pcm_group_for_each_entryhNtauh1hhj]hhhNhNubh)}(hhh](h)}(hsnd_pcm_group_for_each_entryh]h)}(hsnd_pcm_group_for_each_entryh]j)}(hsnd_pcm_group_for_each_entryh]j%)}(hjh]hsnd_pcm_group_for_each_entry}(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&]jjjj!jj!jjjuh1hhhhj]hNhNubjg)}(h/``snd_pcm_group_for_each_entry (s, substream)``h]j)}(hj'h]h+snd_pcm_group_for_each_entry (s, substream)}(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]hhubj)}(h#iterate over the linked substreams h]jg)}(h"iterate over the linked substreamsh]h"iterate over the linked substreams}(hjAhhhNhNubah}(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&]uh1jhjOhMhj]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)}(hj\h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjVubj)}(hhh](j)}(h``s`` the iterator h](j)}(h``s``h]j)}(hj{h]hs}(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)}(h the iteratorh]h the iterator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhMhjrubj)}(h``substream`` the 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 the substreamh]h the substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjrubeh}(h]h ]h"]h$]h&]uh1jhjVubjg)}(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.hhMhjVubjg)}(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 }(hjhhhNhNubj)}(h **substream**h]h substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. When }(hjhhhNhNubj)}(h **substream**h]h substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh4 isn’t linked with any others, this gives returns }(hjhhhNhNubj)}(h **substream**h]h substream}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh itself once.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_running (C function)c.snd_pcm_runninghNtauh1hhj]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}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhjxhMubj)}(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>uh1jhjfhhhjxhMubj@)}(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_runningasbuh1hhjubj)}(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?hjfhhhjxhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjbhhhjxhMubah}(h]j]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhMhj_hhubjb)}(hhh]jg)}(h1Check whether the substream is in a running stateh]h1Check whether the substream is in a running state}(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_hhhjxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhj]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)}(hjLh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjFubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjkh]h#struct snd_pcm_substream *substream}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjeubj)}(hhh]jg)}(hsubstream to checkh]hsubstream to check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubah}(h]h ]h"]h$]h&]uh1jhjFubjg)}(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.hhMhjFubjg)}(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.hhMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h __snd_pcm_set_state (C function)c.__snd_pcm_set_statehNtauh1hhj]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}(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__snd_pcm_set_stateh]j%)}(h__snd_pcm_set_stateh]h__snd_pcm_set_state}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h8(struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hj(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjsbc.__snd_pcm_set_stateasbuh1hhj$ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjthhhNhNubah}(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)}(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]jbc.__snd_pcm_set_stateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstateh]hstate}(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)}(hChange the current PCM stateh]hChange the current PCM 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&]jjjj jj jjjuh1hhhhj]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)}(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)}(h7``struct snd_pcm_runtime *runtime`` PCM runtime to set h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj4h]hstruct snd_pcm_runtime *runtime}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(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 to seth]hPCM runtime to set}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhj+ubj)}(h3``snd_pcm_state_t state`` the current state to set h](j)}(h``snd_pcm_state_t state``h]j)}(hjmh]hsnd_pcm_state_t state}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjgubj)}(hhh]jg)}(hthe current state to seth]hthe current state to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(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.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hbytes_to_samples (C function)c.bytes_to_sampleshNtauh1hhj]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jbytes_to_samplessbc.bytes_to_samplesasbuh1hhjhhhd/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)}(hbytes_to_samplesh]j%)}(hjh]hbytes_to_samples}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_runtimeh]hsnd_pcm_runtime}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j c.bytes_to_samplesasbuh1hhj;ubj)}(h h]h }(hj{hhhNhNubah}(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>uh1jEhj7ubjF)}(h ssize_t sizeh](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 c.bytes_to_samplesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubeh}(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)}(h1Unit conversion of the size from bytes to samplesh]h1Unit conversion of the size from bytes to samples}(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&]jjjj jj jjjuh1hhhhj]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)}(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)}(hjIh]hstruct snd_pcm_runtime *runtime}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjCubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj@ubj)}(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.hhMhj|ubj)}(hhh]jg)}(h size in bytesh]h size in bytes}(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&]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}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hbytes_to_frames (C function)c.bytes_to_frameshNtauh1hhj]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jbytes_to_framessbc.bytes_to_framesasbuh1hhjhhhd/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 hjhhhj&hMubj)}(hbytes_to_framesh]j%)}(hj#h]hbytes_to_frames}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj&hMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j!c.bytes_to_framesasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(h ssize_t sizeh](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!c.bytes_to_framesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubeh}(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)}(h0Unit conversion of the size from bytes to framesh]h0Unit conversion of the size from bytes 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.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj&hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj]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)}(hj?h]h Parameters}(hjAhhhNhNubah}(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.hhMhj9ubj)}(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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjXubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMhjUubj)}(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&]uh1jhjhMhjUubeh}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(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.hhMhj9ubjg)}(hthe size in framesh]hthe 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.hhMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsamples_to_bytes (C function)c.samples_to_byteshNtauh1hhj]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsamples_to_bytessbc.samples_to_bytesasbuh1hhjhhhd/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 hjhhhj;hMubj)}(hsamples_to_bytesh]j%)}(hj8h]hsamples_to_bytes}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj;hMubj@)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(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]j6c.samples_to_bytesasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(h ssize_t sizeh](h)}(hhh]j%)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.samples_to_bytesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubeh}(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)}(h1Unit conversion of the size from samples to bytesh]h1Unit conversion of the size from samples to bytes}(hj2hhhNhNubah}(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&]jjjjJjjJjjjuh1hhhhj]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)}(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.hhMhjNubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjsh]hstruct snd_pcm_runtime *runtime}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjmubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(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&]uh1jhjhMhjjubeh}(h]h ]h"]h$]h&]uh1jhjNubjg)}(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.hhMhjNubjg)}(h the byte sizeh]h the 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.hhMhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hframes_to_bytes (C function)c.frames_to_byteshNtauh1hhj]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}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jframes_to_bytessbc.frames_to_bytesasbuh1hhj(hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhjPhMubj)}(hframes_to_bytesh]j%)}(hjMh]hframes_to_bytes}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhjPhMubj@)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jKc.frames_to_bytesasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(hsnd_pcm_sframes_t sizeh](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]jKc.frames_to_bytesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhjPhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhjPhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhMhj!hhubjb)}(hhh]jg)}(h0Unit conversion of the size from frames to bytesh]h0Unit conversion of the size from frames to bytes}(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&]uh1jahj!hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj]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)}(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)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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)}(h the byte sizeh]h the 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.hhMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hframe_aligned (C function)c.frame_alignedhNtauh1hhj]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}(hjAhhhNhNubah}(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 }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=hhhjOhM ubj)}(h frame_alignedh]j%)}(h frame_alignedh]h frame_aligned}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj=hhhjOhM ubj@)}(h0(struct snd_pcm_runtime *runtime, ssize_t bytes)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjdsbc.frame_alignedasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(h ssize_t bytesh](h)}(hhh]j%)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.frame_alignedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hbytesh]hbytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj=hhhjOhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhjOhM ubah}(h]j4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhM hj6hhubjb)}(hhh]jg)}(h0Check whether the byte size is aligned to framesh]h0Check whether the byte size is aligned to frames}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjFhhubah}(h]h ]h"]h$]h&]uh1jahj6hhhjOhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjajjajjjuh1hhhhj]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)}(hjkh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjeubj)}(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}(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 **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.hhMhjeubjg)}(h true if aligned, or false if noth]h true if aligned, or false 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.hhMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_buffer_bytes (C function)c.snd_pcm_lib_buffer_byteshNtauh1hhj]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}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jsnd_pcm_lib_buffer_bytessbc.snd_pcm_lib_buffer_bytesasbuh1hhj?hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhjghMubj)}(hsnd_pcm_lib_buffer_bytesh]j%)}(hjdh]hsnd_pcm_lib_buffer_bytes}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhjghMubj@)}(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]jbc.snd_pcm_lib_buffer_bytesasbuh1hhjubj)}(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?hhhjghMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj;hhhjghMubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghMhj8hhubjb)}(hhh]jg)}(h/Get the buffer size of the current PCM in bytesh]h/Get the buffer 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.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahj8hhhjghMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhj]hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** buffer byte sizeh](jg)}(h**Parameters**h]j)}(hj8h]h Parameters}(hj:hhhNhNubah}(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.hhMhj2ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjWh]h#struct snd_pcm_substream *substream}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjQubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhMhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubjg)}(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.hhMhj2ubjg)}(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.hhMhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_period_bytes (C function)c.snd_pcm_lib_period_byteshNtauh1hhj]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_lib_period_bytessbc.snd_pcm_lib_period_bytesasbuh1hhjhhhd/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 hjhhhjhM%ubj)}(hsnd_pcm_lib_period_bytesh]j%)}(hjh]hsnd_pcm_lib_period_bytes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM%ubj@)}(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 }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]jc.snd_pcm_lib_period_bytesasbuh1hhj%ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hjshhhNhNubah}(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?hjhhhjhM%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM%ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM%hjhhubjb)}(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&]uh1jahjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** period 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.hhM)hjubj)}(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.hhM&hjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(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)}(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(hjubjg)}(hperiod byte sizeh]hperiod byte 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.hhM(hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_avail (C function)c.snd_pcm_playback_availhNtauh1hhj]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}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_availsbc.snd_pcm_playback_availasbuh1hhjghhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjhM1ubj)}(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>uh1jhjghhhjhM1ubj@)}(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_playback_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?hjghhhjhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjhM1ubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM1hj`hhubjb)}(hhh]jg)}(h/Get the available (writable) space for playbackh]h/Get the available (writable) 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.hhM1hj;hhubah}(h]h ]h"]h$]h&]uh1jahj`hhhjhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhj]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)}(hj`h]h Parameters}(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.hhM5hjZubj)}(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&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM2hjyubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhM2hjvubah}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM4hjZubjg)}(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.hhM4hjZubjg)}(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.hhM6hjZubjg)}(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.hhM6hjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_avail (C function)c.snd_pcm_capture_availhNtauh1hhj]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}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN 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.hhMCubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhjJhMCubj)}(hsnd_pcm_capture_availh]j%)}(hjGh]hsnd_pcm_capture_avail}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhjJhMCubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(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.snd_pcm_capture_availasbuh1hhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubah}(h]h ]h"]h$]h&]j=j>uh1j?hj"hhhjJhMCubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjJhMCubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhMChjhhubjb)}(hhh]jg)}(h.Get the available (readable) space for captureh]h.Get the available (readable) 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.hhMChjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjJhMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.hhMGhjubj)}(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&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhj4ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhMDhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhMDhj1ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjuh]h Description}(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.hhMFhjubjg)}(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.hhMFhjubjg)}(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.hhMHhjubjg)}(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.hhMHhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_playback_hw_avail (C function)c.snd_pcm_playback_hw_availhNtauh1hhj]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_hw_availsbc.snd_pcm_playback_hw_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMSubj)}(hsnd_pcm_playback_hw_availh]j%)}(hjh]hsnd_pcm_playback_hw_avail}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMSubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](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_pcm_runtimeh]hsnd_pcm_runtime}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jc.snd_pcm_playback_hw_availasbuh1hhj/ubj)}(h h]h }(hjohhhNhNubah}(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+ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMSubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMSubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMShjhhubjb)}(hhh]jg)}(h!Get the queued space for playbackh]h!Get the queued 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.hhMShjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMSubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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.hhMWhjubj)}(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.hhMThjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMThj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMThjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj0h]hReturn}(hj2hhhNhNubah}(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)}(havailable frame sizeh]havailable frame size}(hjFhhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_capture_hw_avail (C function)c.snd_pcm_capture_hw_availhNtauh1hhj]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}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_hw_availsbc.snd_pcm_capture_hw_availasbuh1hhjqhhhd/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 hjqhhhjhM^ubj)}(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>uh1jhjqhhhjhM^ubj@)}(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_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?hjqhhhjhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhM^ubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM^hjjhhubjb)}(hhh]jg)}(hGet the free space for captureh]hGet the free space for capture}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^hjEhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`jj`jjjuh1hhhhj]hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMbhjdubj)}(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&]uh1jhjdubjg)}(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.hhMahjdubjg)}(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.hhMahjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_ready (C function)c.snd_pcm_playback_readyhNtauh1hhj]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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMiubj)}(hsnd_pcm_playback_readyh]j%)}(hsnd_pcm_playback_readyh]hsnd_pcm_playback_ready}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMiubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jj,sbc.snd_pcm_playback_readyasbuh1hhjBubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(h substreamh]h substream}(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?hjhhhjhMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMiubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMihjhhubjb)}(hhh]jg)}(h.check whether the playback buffer is availableh]h.check whether the playback buffer is available}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMiubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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.hhMmhjubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMjhjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMjhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMjhjubah}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMlhjubjg)}(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.hhMlhjubjg)}(h **Return**h]j)}(hjlh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMnhjubjg)}(h&Non-zero if available, or zero if not.h]h&Non-zero if available, 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.hhMnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_ready (C function)c.snd_pcm_capture_readyhNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMwubj)}(hsnd_pcm_capture_readyh]j%)}(hsnd_pcm_capture_readyh]hsnd_pcm_capture_ready}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMwubj@)}(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]j)}jjsbc.snd_pcm_capture_readyasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMwubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMwubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMwhjhhubjb)}(hhh]jg)}(h-check whether the capture buffer is availableh]h-check whether the capture buffer is available}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwhjnhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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)}(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.hhMxhjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMxhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMxhjubah}(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.hhMzhjubjg)}(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.hhMzhjubjg)}(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|hjubjg)}(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|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_playback_data (C function)c.snd_pcm_playback_datahNtauh1hhj]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}(hjY hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjU hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjh hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjU hhhjg hMubj)}(hsnd_pcm_playback_datah]j%)}(hsnd_pcm_playback_datah]hsnd_pcm_playback_data}(hjz hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjv ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjU hhhjg 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}(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?hjU hhhjg hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQ hhhjg hMubah}(h]jL ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjg hMhjN hhubjb)}(hhh]jg)}(h4check whether any data exists on the playback bufferh]h4check 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 hhubah}(h]h ]h"]h$]h&]uh1jahjN hhhjg hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1 jj1 jjjuh1hhhhj]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&]uh1jhj9 ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5 ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjZ h]h#struct snd_pcm_substream *substream}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjT ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjo hMhjp ubah}(h]h ]h"]h$]h&]uh1jhjT ubeh}(h]h ]h"]h$]h&]uh1jhjo hMhjQ ubah}(h]h ]h"]h$]h&]uh1jhj5 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.hhMhj5 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.hhMhj5 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.hhMhj5 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.hhMhj5 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_playback_empty (C function)c.snd_pcm_playback_emptyhNtauh1hhj]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}(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_emptyh]j%)}(hsnd_pcm_playback_emptyh]hsnd_pcm_playback_empty}(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 }(hjK 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$hjY 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>uh1jEhj6 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 whether the playback buffer is emptyh]h*check whether the playback buffer is empty}(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 jjjuh1hhhhj]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.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)}(h,Checks whether the playback buffer is empty.h]h,Checks whether the playback buffer is empty.}(hjS 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)}(hjd h]hReturn}(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.hhMhj ubjg)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hjz 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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_capture_empty (C function)c.snd_pcm_capture_emptyhNtauh1hhj]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}(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_capture_emptyh]j%)}(hsnd_pcm_capture_emptyh]hsnd_pcm_capture_empty}(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_capture_emptyasbuh1hhj 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%)}(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)}(h)check whether the capture buffer is emptyh]h)check whether the capture buffer is empty}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjf hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj]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)}(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)}(h+Checks whether the capture buffer is empty.h]h+Checks whether the capture buffer is empty.}(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}(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.hhMhj ubjg)}(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.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_trigger_done (C function)c.snd_pcm_trigger_donehNtauh1hhj]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}(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_hMubj)}(hsnd_pcm_trigger_doneh]j%)}(hsnd_pcm_trigger_doneh]hsnd_pcm_trigger_done}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj_hMubj@)}(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)}jjtsbc.snd_pcm_trigger_doneasbuh1hhjubj)}(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)}(h struct snd_pcm_substream *masterh](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]jc.snd_pcm_trigger_doneasbuh1hhjubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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)}(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.hhMhj~hhubah}(h]h ]h"]h$]h&]uh1jahjFhhhj_hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hA``struct snd_pcm_substream *master`` the linked master substream h](j)}(h$``struct snd_pcm_substream *master``h]j)}(hjh]h struct snd_pcm_substream *master}(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 linked master substreamh]hthe linked master substream}(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)}(hj6h]h Description}(hj8hhhNhNubah}(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.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.}(hjLhhhNhNubah}(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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_channels (C function)c.params_channelshNtauh1hhj]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}(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 }(hj hhhNhNubah}(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_channelsasbuh1hhjubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjWhhhNhNubah}(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`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.hhMhj}hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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}(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)}(hthe number of channelsh]hthe number of channels}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_rate (C function) c.params_ratehNtauh1hhj]hhhNhNubh)}(hhh](h)}(huh1jhj=hhhjOhMubj@)}(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)}jjsb c.params_rateasbuh1hhjubj)}(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?hj=hhhjOhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhjOhMubah}(h]j4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhMhj6hhubjb)}(hhh]jg)}(h&Get the sample rate from the hw paramsh]h&Get the sample rate from the hw params}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4hhubah}(h]h ]h"]h$]h&]uh1jahj6hhhjOhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhj]hNhNubj)}(h^**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the sample rateh](jg)}(h**Parameters**h]j)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjSubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjxh]h!const struct snd_pcm_hw_params *p}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjrubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubah}(h]h ]h"]h$]h&]uh1jhjSubjg)}(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.hhMhjSubjg)}(hthe sample rateh]hthe sample rate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_period_size (C function)c.params_period_sizehNtauh1hhj]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}(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 }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hparams_period_sizeh]j%)}(hparams_period_sizeh]hparams_period_size}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(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}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubjL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(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)}jj7sbc.params_period_sizeasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubah}(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 period size (in frames) from the hw paramsh]h2Get the period 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&]jjjjjjjjjuh1hhhhj]hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the period 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.hhMhj ubj)}(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}(hj1hhhNhNubah}(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 hw paramsh]h hw params}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhMhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h **Return**h]j)}(hjjh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(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 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.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_periods (C function)c.params_periodshNtauh1hhj]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.hhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hparams_periodsh]j%)}(hparams_periodsh]hparams_periods}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM 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}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jjsbc.params_periodsasbuh1hhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(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,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&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]hNhNubj)}(hd**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the number of periodsh](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.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)}(hj!h]hReturn}(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.hhMhjubjg)}(hthe number of periodsh]hthe number of periods}(hj7hhhNhNubah}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hparams_buffer_size (C function)c.params_buffer_sizehNtauh1hhj]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}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjthMubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbhhhjthMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjthMubj)}(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>uh1jhjbhhhjthMubj@)}(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_buffer_sizeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(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)}(h2Get the buffer size (in frames) from the hw paramsh]h2Get the buffer size (in frames) from the hw params}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYhhubah}(h]h ]h"]h$]h&]uh1jahj[hhhjthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhj]hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in framesh](jg)}(h**Parameters**h]j)}(hj~h]h Parameters}(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.hhMhjxubj)}(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&]uh1jhjxubjg)}(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.hhMhjxubjg)}(hthe buffer size in framesh]hthe buffer 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.hhMhjxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h params_buffer_bytes (C function)c.params_buffer_byteshNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/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 hjhhhj+hM"ubh)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj+hM"ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj+hM"ubj)}(hparams_buffer_bytesh]j%)}(hparams_buffer_bytesh]hparams_buffer_bytes}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj+hM"ubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(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.params_buffer_bytesasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubah}(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)}(h1Get the buffer size (in bytes) from the hw paramsh]h1Get the buffer size (in bytes) 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&]uh1jahjhhhj+hM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1hhhhj]hNhNubj)}(hg**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in bytesh](jg)}(h**Parameters**h]j)}(hj5h]h Parameters}(hj7hhhNhNubah}(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.hhM&hj/ubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjTh]h!const struct snd_pcm_hw_params *p}(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.hhM#hjNubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihM#hjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihM#hjKubah}(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.hMhM%hj/ubjg)}(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%hj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_single (C function)c.snd_pcm_hw_constraint_singlehNtauh1hhj]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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/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_hw_constraint_singleh]j%)}(hsnd_pcm_hw_constraint_singleh]hsnd_pcm_hw_constraint_single}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMcubj@)}(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}(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}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_singleasbuh1hhj ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hruntimeh]hruntime}(hjjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jKc.snd_pcm_hw_constraint_singleasbuh1hhjubj)}(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>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}(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?hjhhhjhMcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMcubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMchjhhubjb)}(hhh]jg)}(h%Constrain parameter to a single valueh]h%Constrain parameter to a single 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.hhMchj*hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1hhhhj]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)}(hjOh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghjIubj)}(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.hhMdhjhubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMdhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhMdhjeubj)}(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&]uh1jhjhMehjeubj)}(h/``unsigned int val`` The value to constrain to h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(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.hhMfhjubj)}(hhh]jg)}(hThe value to constrain toh]hThe value to constrain to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjeubeh}(h]h ]h"]h$]h&]uh1jhjIubjg)}(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.hhMhhjIubjg)}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_cpu_endian (C function)c.snd_pcm_format_cpu_endianhNtauh1hhj]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}(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.hhMyubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhjnhMyubj)}(hsnd_pcm_format_cpu_endianh]j%)}(hsnd_pcm_format_cpu_endianh]hsnd_pcm_format_cpu_endian}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhjnhMyubj@)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hformath]hformat}(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\hhhjnhMyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhjnhMyubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhMyhjUhhubjb)}(hhh]jg)}(h"Check the PCM format is CPU-endianh]h"Check the PCM format is CPU-endian}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMyhjhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhjnhMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj9h]hsnd_pcm_format_t format}(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.hhMzhj3ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhMzhjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhMzhj0ubah}(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.hhM|hjubjg)}(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.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_set_sync (C function)c.snd_pcm_set_synchNtauh1hhj]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}(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_set_synch]j%)}(hsnd_pcm_set_synch]hsnd_pcm_set_sync}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_set_syncasbuh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjOhhhNhNubah}(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 the PCM sync idh]hset the PCM sync id}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjvhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(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`` 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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(h:Use the default PCM sync identifier for the specific card.h]h:Use the default PCM sync identifier for the specific card.}(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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_set_runtime_buffer (C function)c.snd_pcm_set_runtime_bufferhNtauh1hhj]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&]uh1hhj6 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 hj6 hhhjH 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$hjW ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6 hhhjH hMubj@)}(hB(struct snd_pcm_substream *substream, struct snd_dma_buffer *bufp)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjw hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjs ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjs 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_bufferasbuh1hhjs ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjs ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo ubjF)}(hstruct snd_dma_buffer *bufph](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 c.snd_pcm_set_runtime_bufferasbuh1hhj ubj)}(h h]h }(hj%!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj3!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>uh1jEhjo ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6 hhhjH hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2 hhhjH hMubah}(h]j- ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjH hMhj/ hhubjb)}(hhh]jg)}(hSet the PCM runtime bufferh]hSet the PCM runtime buffer}(hjj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjg!hhubah}(h]h ]h"]h$]h&]uh1jahj/ hhhjH hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhj]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.hhMhj!ubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(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&]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 }(hj5"hhhNhNubj)}(h**bufp**h]hbufp}(hj="hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5"ubhA is non-NULL. Otherwise it clears the current buffer information.}(hj5"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&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_gettime (C function)c.snd_pcm_gettimehNtauh1hhj]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}(hjv"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr"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 hjr"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>uh1jhjr"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 }(hj"hhhNhNubah}(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)}(hstruct timespec64 *tvh](jL)}(hjOh]hstruct}(hj%#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!#ubj)}(h h]h }(hj2#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!#ubh)}(hhh]j%)}(h timespec64h]h timespec64}(hjC#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjE#modnameN classnameNjj)}j]j"c.snd_pcm_gettimeasbuh1hhj!#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%)}(htvh]htv}(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"hhhj"hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjn"hhhj"hMubah}(h]ji"ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hMhjk"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&]uh1jahjk"hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhj]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}(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 runtime instanceh]hPCM runtime 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#ubj)}(h,``struct timespec64 *tv`` timespec64 to fillh](j)}(h``struct timespec64 *tv``h]j)}(hj $h]hstruct timespec64 *tv}(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)}(htimespec64 to fillh]htimespec64 to fill}(hj9$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj5$hMhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_set_fixed_buffer (C function)c.snd_pcm_set_fixed_bufferhNtauh1hhj]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}(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.hhM+ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjv$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>uh1jhjv$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 reftargetj$modnameN classnameNjj)}j]j)}jj$sbc.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%)}(h substreamh]h substream}(hj%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 }(hj7%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%%ubj%)}(htypeh]htype}(hjE%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&]uh1jKhjZ%ubj)}(h h]h }(hjk%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZ%ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj|%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjy%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~%modnameN classnameNjj)}j]j$c.snd_pcm_set_fixed_bufferasbuh1hhjZ%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%)}(hdatah]hdata}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZ%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]j$c.snd_pcm_set_fixed_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>uh1jEhj$ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjv$hhhj$hM+ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjr$hhhj$hM+ubah}(h]jm$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hM+hjo$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&]uh1jahjo$hhhj$hM+ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?&jj?&jjjuh1hhhhj]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)}(hjI&h]h Parameters}(hjK&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG&ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM/hjC&ubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh&h]h#struct snd_pcm_substream *substream}(hjj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf&ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM,hjb&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&]uh1jhjb&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)}(hj&h]hstruct 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:34: ./include/sound/pcm.hhM.hj&ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(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;``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.hhM/hj '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('hM/hj)'ubah}(h]h ]h"]h$]h&]uh1jhj 'ubeh}(h]h ]h"]h$]h&]uh1jhj('hM/hj_&ubeh}(h]h ]h"]h$]h&]uh1jhjC&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.hhM1hjC&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.}(hjd'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1hjC&ubjg)}(h **Return**h]j)}(hju'h]hReturn}(hjw'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs'ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM6hjC&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.hhM6hjC&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_set_fixed_buffer_all (C function)c.snd_pcm_set_fixed_buffer_allhNtauh1hhj]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.hhM@ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'hhhj'hM@ubj)}(hsnd_pcm_set_fixed_buffer_allh]j%)}(hsnd_pcm_set_fixed_buffer_allh]hsnd_pcm_set_fixed_buffer_all}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'hhhj'hM@ubj@)}(hA(struct snd_pcm *pcm, int type, struct device *data, size_t size)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 reftargetj(modnameN classnameNjj)}j]j)}jj'sbc.snd_pcm_set_fixed_buffer_allasbuh1hhj'ubj)}(h h]h }(hj5(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hjC(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hpcmh]hpcm}(hjP(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'ubjF)}(hint typeh](h)}(hinth]hint}(hji(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhje(ubj)}(h h]h }(hjw(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje(ubj%)}(htypeh]htype}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hje(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]j1(c.snd_pcm_set_fixed_buffer_allasbuh1hhj(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]j1(c.snd_pcm_set_fixed_buffer_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'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}(hjg)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM@hjd)hhubah}(h]h ]h"]h$]h&]uh1jahj'hhhj'hM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj)jj)jjjuh1hhhhj]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.hhMDhj)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.hhMAhj)ubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(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 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.hhMBhj)ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hMBhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hMBhj)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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMChj*ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hj3*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/*hMChj0*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj/*hMChj)ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjS*h]h size_t size}(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.hhMDhjM*ubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjl*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjh*hMDhji*ubah}(h]h ]h"]h$]h&]uh1jhjM*ubeh}(h]h ]h"]h$]h&]uh1jhjh*hMDhj)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.hhMFhj)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.hhMFhj)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.hhMJhj)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.hhMJhj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_sgbuf_get_addr (C function)c.snd_pcm_sgbuf_get_addrhNtauh1hhj]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}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jsnd_pcm_sgbuf_get_addrsbc.snd_pcm_sgbuf_get_addrasbuh1hhj*hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMVubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj+hMVubj)}(hsnd_pcm_sgbuf_get_addrh]j%)}(hj+h]hsnd_pcm_sgbuf_get_addr}(hj1+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj+hMVubj@)}(h7(struct snd_pcm_substream *substream, unsigned int ofs)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjL+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjH+ubj)}(h h]h }(hjY+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjH+ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl+modnameN classnameNjj)}j]j+c.snd_pcm_sgbuf_get_addrasbuh1hhjH+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjH+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH+ubj%)}(h substreamh]h substream}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjH+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjD+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}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj%)}(hofsh]hofs}(hj+hhhNhNubah}(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?hj*hhhj+hMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj*hhhj+hMVubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj+hMVhj*hhubjb)}(hhh]jg)}(h/Get the DMA address at the corresponding offseth]h/Get the DMA address at the corresponding offset}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMVhj,hhubah}(h]h ]h"]h$]h&]uh1jahj*hhhj+hMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6,jj6,jjjuh1hhhhj]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}(hjB,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.hhMZhj:,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}(hja,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.hhMWhjY,ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjx,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjt,hMWhju,ubah}(h]h ]h"]h$]h&]uh1jhjY,ubeh}(h]h ]h"]h$]h&]uh1jhjt,hMWhjV,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.hhMXhj,ubj)}(hhh]jg)}(h byte offseth]h byte offset}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMXhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMXhjV,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.hhMZhj:,ubjg)}(h DMA addressh]h DMA address}(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:,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_sgbuf_get_chunk_size (C function)c.snd_pcm_sgbuf_get_chunk_sizehNtauh1hhj]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}(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.hhMcubj)}(h h]h }(hj'-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj&-hMcubh)}(hinth]hint}(hj5-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhj&-hMcubj)}(h h]h }(hjC-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj&-hMcubj)}(hsnd_pcm_sgbuf_get_chunk_sizeh]j%)}(hsnd_pcm_sgbuf_get_chunk_sizeh]hsnd_pcm_sgbuf_get_chunk_size}(hjU-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj&-hMcubj@)}(hJ(struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h](jF)}(h#struct snd_pcm_substream *substreamh](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%)}(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)}jjW-sbc.snd_pcm_sgbuf_get_chunk_sizeasbuh1hhjm-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%)}(h substreamh]h substream}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhji-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}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj .hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj%)}(hofsh]hofs}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhji-ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj4.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0.ubj)}(h h]h }(hjB.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0.ubh)}(hinth]hint}(hjP.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0.ubj)}(h h]h }(hj^.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0.ubj%)}(hsizeh]hsize}(hjl.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhji-ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj&-hMcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-hhhj&-hMcubah}(h]j -ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj&-hMchj -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}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMchj.hhubah}(h]h ]h"]h$]h&]uh1jahj -hhhj&-hMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhj]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)}(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.hhMghj.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.hhMehj.ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(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!``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.hhMfhj /ubj)}(hhh]jg)}(h byte offseth]h byte offset}(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+``unsigned int size`` byte size to examine h](j)}(h``unsigned int size``h]j)}(hjI/h]hunsigned int size}(hjK/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG/ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghjC/ubj)}(hhh]jg)}(hbyte size to examineh]hbyte size to examine}(hjb/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^/hMghj_/ubah}(h]h ]h"]h$]h&]uh1jhjC/ubeh}(h]h ]h"]h$]h&]uh1jhj^/hMghj.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.hhMihj.ubjg)}(h chunk sizeh]h chunk 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.hhMihj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_limit_isa_dma_size (C function)c.snd_pcm_limit_isa_dma_sizehNtauh1hhj]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/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_limit_isa_dma_sizeh]j%)}(hsnd_pcm_limit_isa_dma_sizeh]hsnd_pcm_limit_isa_dma_size}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhj/hMubj@)}(h(int dma, size_t *max)h](jF)}(hint dmah](h)}(hinth]hint}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj%)}(hdmah]hdma}(hj"0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(h size_t *maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj>0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@0modnameN classnameNjj)}j]j)}jj/sbc.snd_pcm_limit_isa_dma_sizeasbuh1hhj70ubj)}(h h]h }(hj^0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj70ubj)}(hjh]h*}(hjl0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj70ubj%)}(hmaxh]hmax}(hjy0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj70ubeh}(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.Get the max size fitting with ISA DMA transferh]h.Get the max size fitting with ISA DMA transfer}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj0hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhj]hNhNubj)}(hY**Parameters** ``int dma`` DMA number ``size_t *max`` pointer to store the max sizeh](jg)}(h**Parameters**h]j)}(hj0h]h Parameters}(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:34: ./include/sound/pcm.hhMhj0ubj)}(hhh](j)}(h``int dma`` DMA number h](j)}(h ``int dma``h]j)}(hj0h]hint dma}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj0ubj)}(hhh]jg)}(h DMA numberh]h DMA number}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj0ubj)}(h-``size_t *max`` pointer to store the max sizeh](j)}(h``size_t *max``h]j)}(hj1h]h size_t *max}(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.hhMhj1ubj)}(hhh]jg)}(hpointer to store the max sizeh]hpointer to store the max size}(hj61hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj31ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj21hMhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_direction_name (C function)c.snd_pcm_direction_namehNtauh1hhj]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}(hjw1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjs1hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjs1hhhj1hMubh)}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjs1hhhj1hMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjs1hhhj1hMubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjs1hhhj1hMubj)}(hsnd_pcm_direction_nameh]j%)}(hsnd_pcm_direction_nameh]hsnd_pcm_direction_name}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjs1hhhj1hMubj@)}(h(int direction)h]jF)}(h int directionh](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj%)}(h directionh]h direction}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjs1hhhj1hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjo1hhhj1hMubah}(h]jj1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hMhjl1hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj"2hhhNhNubah}(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&]uh1jahjl1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:2jj:2jjjuh1hhhhj]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)}(hjD2h]h Parameters}(hjF2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB2ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj>2ubj)}(hhh]j)}(hB``int direction`` Stream's direction, one of SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hjc2h]h int direction}(hje2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj]2ubj)}(hhh]jg)}(h/Stream's direction, one of SNDRV_PCM_STREAM_XXXh]h1Stream’s direction, one of SNDRV_PCM_STREAM_XXX}(hj|2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjx2hMhjy2ubah}(h]h ]h"]h$]h&]uh1jhj]2ubeh}(h]h ]h"]h$]h&]uh1jhjx2hMhjZ2ubah}(h]h ]h"]h$]h&]uh1jhj>2ubjg)}(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:34: ./include/sound/pcm.hhMhj>2ubjg)}(h4Returns a string naming the direction of the stream.h]h4Returns a string naming the direction of the stream.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj>2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stream_str (C function)c.snd_pcm_stream_strhNtauh1hhj]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}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2hhhj2hMubh)}(hcharh]hchar}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2hhhj2hMubj)}(h h]h }(hj 3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2hhhj2hMubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hhhj2hMubj)}(hsnd_pcm_stream_strh]j%)}(hsnd_pcm_stream_strh]hsnd_pcm_stream_str}(hj,3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2hhhj2hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjH3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjD3ubj)}(h h]h }(hjU3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjD3ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjf3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjh3modnameN classnameNjj)}j]j)}jj.3sbc.snd_pcm_stream_strasbuh1hhjD3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjD3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjD3ubj%)}(h substreamh]h substream}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjD3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj@3ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj2hhhj2hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhj2hMubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2hMhj2hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj3hhubah}(h]h ]h"]h$]h&]uh1jahj2hhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhj]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)}(hj3h]h Parameters}(hj3hhhNhNubah}(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)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj 4h]h#struct snd_pcm_substream *substream}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 4ubah}(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)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj%4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!4hMhj"4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj!4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj3ubjg)}(h **Return**h]j)}(hjG4h]hReturn}(hjI4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE4ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj3ubjg)}(h,A string naming the direction of the stream.h]h,A string naming the direction of the 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.hhMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_chmap_substream (C function)c.snd_pcm_chmap_substreamhNtauh1hhj]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}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhj4hMubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jsnd_pcm_chmap_substreamsbc.snd_pcm_chmap_substreamasbuh1hhj4hhhj4hMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhj4hMubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhj4hMubj)}(hsnd_pcm_chmap_substreamh]j%)}(hj4h]hsnd_pcm_chmap_substream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhj4hMubj@)}(h.(struct snd_pcm_chmap *info, unsigned int idx)h](jF)}(hstruct snd_pcm_chmap *infoh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(h snd_pcm_chmaph]h snd_pcm_chmap}(hj$5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&5modnameN classnameNjj)}j]j4c.snd_pcm_chmap_substreamasbuh1hhj5ubj)}(h h]h }(hjB5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjP5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hinfoh]hinfo}(hj]5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubjF)}(hunsigned int idxh](h)}(hunsignedh]hunsigned}(hjv5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr5ubh)}(hinth]hint}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr5ubj%)}(hidxh]hidx}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4hhhj4hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4hhhj4hMubah}(h]j4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMhj4hhubjb)}(hhh]jg)}(h6get the PCM substream assigned to the given chmap infoh]h6get the PCM substream assigned to the given chmap info}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5hhubah}(h]h ]h"]h$]h&]uh1jahj4hhhj4hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj]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)}(hj5h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5ubj)}(hhh](j)}(h1``struct snd_pcm_chmap *info`` chmap information h](j)}(h``struct snd_pcm_chmap *info``h]j)}(hj6h]hstruct snd_pcm_chmap *info}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubj)}(hhh]jg)}(hchmap informationh]hchmap information}(hj26hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.6hMhj/6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj.6hMhj6ubj)}(h0``unsigned int idx`` the substream number index h](j)}(h``unsigned int idx``h]j)}(hjR6h]hunsigned int idx}(hjT6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP6ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjL6ubj)}(hhh]jg)}(hthe substream number indexh]hthe substream number index}(hjk6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjg6hMhjh6ubah}(h]h ]h"]h$]h&]uh1jhjL6ubeh}(h]h ]h"]h$]h&]uh1jhjg6hMhj6ubeh}(h]h ]h"]h$]h&]uh1jhj5ubjg)}(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.hhMhj5ubjg)}(h/the matched PCM substream, or NULL if not foundh]h/the matched PCM substream, or NULL if not found}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hpcm_format_to_bits (C function)c.pcm_format_to_bitshNtauh1hhj]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}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jpcm_format_to_bitssbc.pcm_format_to_bitsasbuh1hhj6hhhd/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 hj6hhhj6hMubj)}(hpcm_format_to_bitsh]j%)}(hj6h]hpcm_format_to_bits}(hj 7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhj6hMubj@)}(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}(hj'7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)7modnameN classnameNjj)}j]j6c.pcm_format_to_bitsasbuh1hhj 7ubj)}(h h]h }(hjE7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 7ubj%)}(h pcm_formath]h pcm_format}(hjS7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubah}(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)}(h0Strong-typed conversion of pcm_format to bitwiseh]h0Strong-typed conversion of pcm_format to bitwise}(hj}7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjz7hhubah}(h]h ]h"]h$]h&]uh1jahj6hhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhj]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)}(hj7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj7ubj)}(hhh]j)}(h+``snd_pcm_format_t pcm_format`` PCM format h](j)}(h``snd_pcm_format_t pcm_format``h]j)}(hj7h]hsnd_pcm_format_t pcm_format}(hj7hhhNhNubah}(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.hhMhj7ubj)}(hhh]jg)}(h PCM formath]h PCM format}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(h **Return**h]j)}(hj7h]hReturn}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj7ubjg)}(h064bit mask corresponding to the given PCM formath]h064bit mask corresponding to the given PCM format}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hpcm_for_each_format (C macro)c.pcm_for_each_formathNtauh1hhj]hhhNhNubh)}(hhh](h)}(hpcm_for_each_formath]h)}(hpcm_for_each_formath]j)}(hpcm_for_each_formath]j%)}(hj88h]hpcm_for_each_format}(hjB8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:8hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj68hhhjU8hMubah}(h]j18ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjU8hMhj38hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj38hhhjU8hMubeh}(h]h ](jmacroeh"]h$]h&]jjjjn8jjn8jjjuh1hhhhj]hNhNubjg)}(h``pcm_for_each_format (f)``h]j)}(hjt8h]hpcm_for_each_format (f)}(hjv8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr8ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj]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}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8hMhj]hhubj)}(hF**Parameters** ``f`` the iterator variable in snd_pcm_format_t typeh](jg)}(h**Parameters**h]j)}(hj8h]h Parameters}(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.hhMhj8ubj)}(hhh]j)}(h4``f`` the iterator variable in snd_pcm_format_t typeh](j)}(h``f``h]j)}(hj8h]hf}(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)}(h.the iterator variable in snd_pcm_format_t typeh]h.the iterator variable in snd_pcm_format_t type}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubeh}(h]pcm-coreah ]h"]pcm coreah$]h&]uh1hhj\hhhhhKubh)}(hhh](h)}(hPCM Format Helpersh]hPCM Format Helpers}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hhhhhK%ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_signed (C function)c.snd_pcm_format_signedhNtauh1hhj9hhhNhNubh)}(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;9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj79hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjJ9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj79hhhjI9hMubj)}(hsnd_pcm_format_signedh]j%)}(hsnd_pcm_format_signedh]hsnd_pcm_format_signed}(hj\9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjX9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj79hhhjI9hMubj@)}(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{9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjx9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}9modnameN classnameNjj)}j]j)}jj^9sbc.snd_pcm_format_signedasbuh1hhjt9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjt9ubj%)}(hformath]hformat}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjt9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjp9ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj79hhhjI9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj39hhhjI9hMubah}(h]j.9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjI9hMhj09hhubjb)}(hhh]jg)}(h%Check the PCM format is signed linearh]h%Check the PCM format is signed linear}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj9hhubah}(h]h ]h"]h$]h&]uh1jahj09hhhjI9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhj9hNhNubj)}(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)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj9ubj)}(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&]uh1jhj9ubjg)}(h **Return**h]j)}(hjO:h]hReturn}(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:38: ./sound/core/pcm_misc.chMhj9ubjg)}(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.}(hje:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_format_unsigned (C function)c.snd_pcm_format_unsignedhNtauh1hhj9hhhNhNubh)}(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 }(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 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&]jjjjD;jjD;jjjuh1hhhhj9hNhNubj)}(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)}(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 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.chMhjH;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_linear (C function)c.snd_pcm_format_linearhNtauh1hhj9hhhNhNubh)}(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}(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.chM'ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhj;hM'ubj)}(hsnd_pcm_format_linearh]j%)}(hsnd_pcm_format_linearh]hsnd_pcm_format_linear}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj <ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhj;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)}jj<sbc.snd_pcm_format_linearasbuh1hhj&<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;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)}(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;hhhj;hM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhj9hNhNubj)}(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}(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&]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.}(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<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_format_little_endian (C function)c.snd_pcm_format_little_endianhNtauh1hhj9hhhNhNubh)}(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}(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.chM3ubj)}(h h]h }(hjU=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB=hhhjT=hM3ubj)}(hsnd_pcm_format_little_endianh]j%)}(hsnd_pcm_format_little_endianh]hsnd_pcm_format_little_endian}(hjg=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjc=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjB=hhhjT=hM3ubj@)}(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_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?hjB=hhhjT=hM3ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>=hhhjT=hM3ubah}(h]j9=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjT=hM3hj;=hhubjb)}(hhh]jg)}(h%Check the PCM format is little-endianh]h%Check the PCM format is little-endian}(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.chM3hj=hhubah}(h]h ]h"]h$]h&]uh1jahj;=hhhjT=hM3ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhj9hNhNubj)}(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)}(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.chM7hj=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.chM4hj>ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj8>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4>hM4hj5>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj4>hM4hj>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.chM6hj=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.}(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.chM6hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_big_endian (C function)c.snd_pcm_format_big_endianhNtauh1hhj9hhhNhNubh)}(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.chMFubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhj>hMFubj)}(hsnd_pcm_format_big_endianh]j%)}(hsnd_pcm_format_big_endianh]hsnd_pcm_format_big_endian}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhj>hMFubj@)}(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_big_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>hMFubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhj>hMFubah}(h]j>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>hMFhj>hhubjb)}(hhh]jg)}(h"Check the PCM format is big-endianh]h"Check the PCM format is big-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.chMFhj4?hhubah}(h]h ]h"]h$]h&]uh1jahj>hhhj>hMFubeh}(h]h ](jfunctioneh"]h$]h&]jjjjO?jjO?jjjuh1hhhhj9hNhNubj)}(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)}(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.chMJhjS?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.chMGhjr?ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hMGhj?ubah}(h]h ]h"]h$]h&]uh1jhjr?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMGhjo?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.chMIhjS?ubjg)}(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?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMIhjS?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_format_width (C function)c.snd_pcm_format_widthhNtauh1hhj9hhhNhNubh)}(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}(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.chMXubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhj@hMXubj)}(hsnd_pcm_format_widthh]j%)}(hsnd_pcm_format_widthh]hsnd_pcm_format_width}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhj@hMXubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj8@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:@modnameN classnameNjj)}j]j)}jj@sbc.snd_pcm_format_widthasbuh1hhj1@ubj)}(h h]h }(hjX@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1@ubj%)}(hformath]hformat}(hjf@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-@ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj?hhhj@hMXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhj@hMXubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@hMXhj?hhubjb)}(hhh]jg)}(h"return the bit-width of the formath]h"return the bit-width of the format}(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.chMXhj@hhubah}(h]h ]h"]h$]h&]uh1jahj?hhhj@hMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1hhhhj9hNhNubj)}(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@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.chMYhj@ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hMYhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMYhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubjg)}(h **Return**h]j)}(hj Ah]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Aubah}(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)}(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"AhhhNhNubah}(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&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_format_physical_width (C function)c.snd_pcm_format_physical_widthhNtauh1hhj9hhhNhNubh)}(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}(hjQAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMkubj)}(h h]h }(hj`AhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMAhhhj_AhMkubj)}(hsnd_pcm_format_physical_widthh]j%)}(hsnd_pcm_format_physical_widthh]hsnd_pcm_format_physical_width}(hjrAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMAhhhj_AhMkubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]j)}jjtAsbc.snd_pcm_format_physical_widthasbuh1hhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj%)}(hformath]hformat}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubah}(h]h ]h"]h$]h&]j=j>uh1j?hjMAhhhj_AhMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIAhhhj_AhMkubah}(h]jDAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_AhMkhjFAhhubjb)}(hhh]jg)}(h+return the physical bit-width of the formath]h+return the physical bit-width of the format}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMkhjAhhubah}(h]h ]h"]h$]h&]uh1jahjFAhhhj_AhMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhj9hNhNubj)}(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)}(hj Bh]h Parameters}(hj BhhhNhNubah}(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.chMohjBubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj*Bh]hsnd_pcm_format_t format}(hj,BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Bubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMlhj$Bubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjCBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?BhMlhj@Bubah}(h]h ]h"]h$]h&]uh1jhj$Bubeh}(h]h ]h"]h$]h&]uh1jhj?BhMlhj!Bubah}(h]h ]h"]h$]h&]uh1jhjBubjg)}(h **Return**h]j)}(hjeBh]hReturn}(hjgBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcBubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMnhjBubjg)}(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.}(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.chMnhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_format_size (C function)c.snd_pcm_format_sizehNtauh1hhj9hhhNhNubh)}(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}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jsnd_pcm_format_sizesbc.snd_pcm_format_sizeasbuh1hhjBhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM~ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjBhM~ubj)}(hsnd_pcm_format_sizeh]j%)}(hjBh]hsnd_pcm_format_size}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjBhM~ubj@)}(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}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jBc.snd_pcm_format_sizeasbuh1hhjBubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(hformath]hformat}(hj+ChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(hsize_t samplesh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjGChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjICmodnameN classnameNjj)}j]jBc.snd_pcm_format_sizeasbuh1hhj@Cubj)}(h h]h }(hjeChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@Cubj%)}(hsamplesh]hsamples}(hjsChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@Cubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjBhM~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhjBhM~ubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBhM~hjBhhubjb)}(hhh]jg)}(h3return the byte size of samples on the given formath]h3return the byte size of samples on the given format}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM~hjChhubah}(h]h ]h"]h$]h&]uh1jahjBhhhjBhM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhj9hNhNubj)}(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)}(hjCh]h Parameters}(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:38: ./sound/core/pcm_misc.chMhjCubj)}(hhh](j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjCh]hsnd_pcm_format_t format}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjCubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(h!``size_t samples`` sampling rate h](j)}(h``size_t samples``h]j)}(hjDh]hsize_t samples}(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.chMhjDubj)}(hhh]jg)}(h sampling rateh]h sampling rate}(hj0DhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,DhMhj-Dubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj,DhMhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubjg)}(h **Return**h]j)}(hjRDh]hReturn}(hjTDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPDubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjCubjg)}(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.}(hjhDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_silence_64 (C function)c.snd_pcm_format_silence_64hNtauh1hhj9hhhNhNubh)}(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}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDhhhjDhMubh)}(hunsignedh]hunsigned}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDhhhjDhMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDhhhjDhMubh)}(hcharh]hchar}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDhhhjDhMubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDhhhjDhMubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjDhMubj)}(hsnd_pcm_format_silence_64h]j%)}(hsnd_pcm_format_silence_64h]hsnd_pcm_format_silence_64}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjDhhhjDhMubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jjDsbc.snd_pcm_format_silence_64asbuh1hhjEubj)}(h h]h }(hj;EhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hformath]hformat}(hjIEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubah}(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)}(h'return the silent data in 8 bytes arrayh]h'return the silent data in 8 bytes array}(hjsEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjpEhhubah}(h]h ]h"]h$]h&]uh1jahjDhhhjDhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1hhhhj9hNhNubj)}(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)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjEubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjEh]hsnd_pcm_format_t format}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjEubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjEubjg)}(h **Return**h]j)}(hjEh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjEubjg)}(h0The format pattern to fill or ``NULL`` if error.h](hThe format pattern to fill or }(hjFhhhNhNubj)}(h``NULL``h]hNULL}(hj FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh if error.}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh.]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_format_set_silence (C function)c.snd_pcm_format_set_silencehNtauh1hhj9hhhNhNubh)}(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}(hjFFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjUFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBFhhhjTFhMubj)}(hsnd_pcm_format_set_silenceh]j%)}(hsnd_pcm_format_set_silenceh]hsnd_pcm_format_set_silence}(hjgFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBFhhhjTFhMubj@)}(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}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jjiFsbc.snd_pcm_format_set_silenceasbuh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(hformath]hformat}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{FubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hdatah]hdata}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{FubjF)}(hunsigned int samplesh](h)}(hunsignedh]hunsigned}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj Gubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Gubh)}(hinth]hint}(hj+GhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj Gubj)}(h h]h }(hj9GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Gubj%)}(hsamplesh]hsamples}(hjGGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{Fubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBFhhhjTFhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>FhhhjTFhMubah}(h]j9Fah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjTFhMhj;Fhhubjb)}(hhh]jg)}(h"set the silence data on the bufferh]h"set the silence data on the buffer}(hjqGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjnGhhubah}(h]h ]h"]h$]h&]uh1jahj;FhhhjTFhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhj9hNhNubj)}(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)}(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)}(h+``snd_pcm_format_t format`` the PCM format h](j)}(h``snd_pcm_format_t format``h]j)}(hjGh]hsnd_pcm_format_t format}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubj)}(hhh]jg)}(hthe PCM formath]hthe PCM format}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjGubj)}(h"``void *data`` the buffer pointer h](j)}(h``void *data``h]j)}(hjGh]h void *data}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjGubj)}(h>``unsigned int samples`` the number of samples to set silence h](j)}(h``unsigned int samples``h]j)}(hj$Hh]hunsigned int samples}(hj&HhhhNhNubah}(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)}(h$the number of samples to set silenceh]h$the number of samples to set silence}(hj=HhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9HhMhj:Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj9HhMhjGubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hj_Hh]h Description}(hjaHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]Hubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubjg)}(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.}(hjuHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubjg)}(h **Return**h]j)}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubjg)}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_limit_rates (C function)c.snd_pcm_hw_limit_rateshNtauh1hhj9hhhNhNubh)}(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}(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_hw_limit_ratesh]j%)}(hsnd_pcm_hw_limit_ratesh]hsnd_pcm_hw_limit_rates}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjHhMubj@)}(h(struct snd_pcm_hardware *hw)h]jF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hj&IhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#Iubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(ImodnameN classnameNjj)}j]j)}jjHsbc.snd_pcm_hw_limit_ratesasbuh1hhjIubj)}(h h]h }(hjFIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjTIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hhwh]hhw}(hjaIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubah}(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"determine rate_min/rate_max fieldsh]h"determine rate_min/rate_max fields}(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&]jjjjIjjIjjjuh1hhhhj9hNhNubj)}(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)}(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)}(h4``struct snd_pcm_hardware *hw`` the pcm hw instance h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjIh]hstruct snd_pcm_hardware *hw}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubj)}(hhh]jg)}(hthe pcm hw instanceh]hthe pcm hw instance}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjIubah}(h]h ]h"]h$]h&]uh1jhjIubjg)}(h**Description**h]j)}(hjJh]h Description}(hj JhhhNhNubah}(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)}(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.}(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)}(hj.Jh]hReturn}(hj0JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Jubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIubjg)}(hZero if successful.h]hZero if successful.}(hjDJhhhNhNubah}(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&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_rate_to_rate_bit (C function)c.snd_pcm_rate_to_rate_bithNtauh1hhj9hhhNhNubh)}(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}(hjsJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoJhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoJhhhjJhMubh)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoJhhhjJhMubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoJhhhjJhMubj)}(hsnd_pcm_rate_to_rate_bith]j%)}(hsnd_pcm_rate_to_rate_bith]hsnd_pcm_rate_to_rate_bit}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjoJhhhjJhMubj@)}(h(unsigned int rate)h]jF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hrateh]hrate}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubah}(h]h ]h"]h$]h&]j=j>uh1j?hjoJhhhjJhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkJhhhjJhMubah}(h]jfJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhMhjhJhhubjb)}(hhh]jg)}(h.converts sample rate to SNDRV_PCM_RATE_xxx bith]h.converts sample rate to SNDRV_PCM_RATE_xxx bit}(hj.KhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj+Khhubah}(h]h ]h"]h$]h&]uh1jahjhJhhhjJhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFKjjFKjjjuh1hhhhj9hNhNubj)}(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)}(hjPKh]h Parameters}(hjRKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjJKubj)}(hhh]j)}(h1``unsigned int rate`` the sample rate to convert h](j)}(h``unsigned int rate``h]j)}(hjoKh]hunsigned int rate}(hjqKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjiKubj)}(hhh]jg)}(hthe sample rate to converth]hthe sample rate to convert}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjiKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhjfKubah}(h]h ]h"]h$]h&]uh1jhjJKubjg)}(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:38: ./sound/core/pcm_misc.chMhjJKubjg)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjJKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_rate_bit_to_rate (C function)c.snd_pcm_rate_bit_to_ratehNtauh1hhj9hhhNhNubh)}(hhh](h)}(h=unsigned int snd_pcm_rate_bit_to_rate (unsigned int rate_bit)h]h)}(huh1jhjKhhhjKhMubj@)}(h(unsigned int rate_bit)h]jF)}(hunsigned int rate_bith](h)}(hunsignedh]hunsigned}(hjHLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDLubj)}(h h]h }(hjVLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDLubh)}(hinth]hint}(hjdLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDLubj)}(h h]h }(hjrLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDLubj%)}(hrate_bith]hrate_bit}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj@Lubah}(h]h ]h"]h$]h&]j=j>uh1j?hjKhhhjKhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjKhMubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKhMhjKhhubjb)}(hhh]jg)}(h.converts SNDRV_PCM_RATE_xxx bit to sample rateh]h.converts SNDRV_PCM_RATE_xxx bit to sample rate}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhjKhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhj9hNhNubj)}(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)}(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)}(h2``unsigned int rate_bit`` the rate bit to convert h](j)}(h``unsigned int rate_bit``h]j)}(hjLh]hunsigned int rate_bit}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(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 rate bit to converth]hthe rate bit to convert}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjLubah}(h]h ]h"]h$]h&]uh1jhjLubjg)}(h **Return**h]j)}(hj&Mh]hReturn}(hj(MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Mubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubjg)}(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.}(hjuh1jhjgMhhhjyMhM1ubj@)}(h,(unsigned int rates_a, unsigned int rates_b)h](jF)}(hunsigned int rates_ah](h)}(hunsignedh]hunsigned}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj%)}(hrates_ah]hrates_a}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubjF)}(hunsigned int rates_bh](h)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj#NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hinth]hint}(hj1NhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj?NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hrates_bh]hrates_b}(hjMNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjgMhhhjyMhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjcMhhhjyMhM1ubah}(h]j^Mah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyMhM1hj`Mhhubjb)}(hhh]jg)}(h0computes the intersection between two rate masksh]h0computes the intersection between two rate masks}(hjwNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM1hjtNhhubah}(h]h ]h"]h$]h&]uh1jahj`MhhhjyMhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhj9hNhNubj)}(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)}(hjNh]h Parameters}(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.chM5hjNubj)}(hhh](j)}(h-``unsigned int rates_a`` The first rate mask h](j)}(h``unsigned int rates_a``h]j)}(hjNh]hunsigned int rates_a}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM2hjNubj)}(hhh]jg)}(hThe first rate maskh]hThe first rate mask}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhM2hjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhM2hjNubj)}(h.``unsigned int rates_b`` The second rate mask h](j)}(h``unsigned int rates_b``h]j)}(hjNh]hunsigned int rates_b}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM3hjNubj)}(hhh]jg)}(hThe second rate maskh]hThe second rate mask}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhM3hjOubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjOhM3hjNubeh}(h]h ]h"]h$]h&]uh1jhjNubjg)}(h**Description**h]j)}(hj,Oh]h Description}(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.chM5hjNubjg)}(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.}(hjBOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM5hjNubjg)}(h **Return**h]j)}(hjSOh]hReturn}(hjUOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQOubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9hjNubjg)}(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.}(hjiOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9hjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubeh}(h]pcm-format-helpersah ]h"]pcm format helpersah$]h&]uh1hhj\hhhhhK%ubh)}(hhh](h)}(hPCM Memory Managementh]hPCM Memory Management}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhhhhhK)ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_lib_preallocate_free (C function)c.snd_pcm_lib_preallocate_freehNtauh1hhjOhhhNhNubh)}(hhh](h)}(hGvoid snd_pcm_lib_preallocate_free (struct snd_pcm_substream *substream)h]h)}(hFvoid snd_pcm_lib_preallocate_free(struct snd_pcm_substream *substream)h](h)}(hvoidh]hvoid}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK|ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjOhK|ubj)}(hsnd_pcm_lib_preallocate_freeh]j%)}(hsnd_pcm_lib_preallocate_freeh]hsnd_pcm_lib_preallocate_free}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjOhK|ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj PhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Pubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjOsbc.snd_pcm_lib_preallocate_freeasbuh1hhjOubj)}(h h]h }(hj,PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hj:PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(h substreamh]h substream}(hjGPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubah}(h]h ]h"]h$]h&]j=j>uh1j?hjOhhhjOhK|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjOhK|ubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOhK|hjOhhubjb)}(hhh]jg)}(h;release the preallocated buffer of the specified substream.h]h;release the preallocated buffer of the specified substream.}(hjqPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK|hjnPhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjOhK|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjOhNhNubj)}(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)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjPubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjPh]h#struct snd_pcm_substream *substream}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK}hjPubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhK}hjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhK}hjPubah}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjPubjg)}(h9Releases the pre-allocated buffer of the given substream.h]h9Releases the pre-allocated buffer of the given substream.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_pcm_lib_preallocate_free_for_all (C function)&c.snd_pcm_lib_preallocate_free_for_allhNtauh1hhjOhhhNhNubh)}(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}(hj2QhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.Qhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKubj)}(h h]h }(hjAQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.Qhhhj@QhKubj)}(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}(hjSQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj.Qhhhj@QhKubj@)}(h(struct snd_pcm *pcm)h]jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjoQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjkQubj)}(h h]h }(hj|QhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkQubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jjUQsb&c.snd_pcm_lib_preallocate_free_for_allasbuh1hhjkQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkQubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkQubj%)}(hpcmh]hpcm}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgQubah}(h]h ]h"]h$]h&]j=j>uh1j?hj.Qhhhj@QhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj*Qhhhj@QhKubah}(h]j%Qah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@QhKhj'Qhhubjb)}(hhh]jg)}(h,release all pre-allocated buffers on the pcmh]h,release all pre-allocated buffers on the pcm}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjQhhubah}(h]h ]h"]h$]h&]uh1jahj'Qhhhj@QhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj Rjj Rjjjuh1hhhhjOhNhNubj)}(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)}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjRubj)}(hhh]j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj3Rh]hstruct snd_pcm *pcm}(hj5RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Rubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhj-Rubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjLRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHRhKhjIRubah}(h]h ]h"]h$]h&]uh1jhj-Rubeh}(h]h ]h"]h$]h&]uh1jhjHRhKhj*Rubah}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hjnRh]h Description}(hjpRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlRubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjRubjg)}(h8Releases all the pre-allocated buffers on the given pcm.h]h8Releases all the pre-allocated buffers on the given pcm.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_lib_preallocate_pages (C function)c.snd_pcm_lib_preallocate_pageshNtauh1hhjOhhhNhNubh)}(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}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9ubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhjRhM9ubj)}(hsnd_pcm_lib_preallocate_pagesh]j%)}(hsnd_pcm_lib_preallocate_pagesh]hsnd_pcm_lib_preallocate_pages}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjRhhhjRhM9ubj@)}(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}(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}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Subah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjRsbc.snd_pcm_lib_preallocate_pagesasbuh1hhjRubj)}(h h]h }(hj.ShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjuh1jEhjRubjF)}(hint typeh](h)}(hinth]hint}(hjbShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^Subj)}(h h]h }(hjpShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^Subj%)}(htypeh]htype}(hj~ShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^Subeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hhh]j%)}(hdeviceh]hdevice}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j*Sc.snd_pcm_lib_preallocate_pagesasbuh1hhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hdatah]hdata}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj TmodnameN classnameNjj)}j]j*Sc.snd_pcm_lib_preallocate_pagesasbuh1hhjTubj)}(h h]h }(hj(ThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hsizeh]hsize}(hj6ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjRThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTTmodnameN classnameNjj)}j]j*Sc.snd_pcm_lib_preallocate_pagesasbuh1hhjKTubj)}(h h]h }(hjpThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKTubj%)}(hmaxh]hmax}(hj~ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjRhhhjRhM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjRhM9ubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhM9hjRhhubjb)}(hhh]jg)}(h%pre-allocation for the given DMA typeh]h%pre-allocation for the given DMA type}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9hjThhubah}(h]h ]h"]h$]h&]uh1jahjRhhhjRhM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjOhNhNubj)}(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)}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjTubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjTh]h#struct snd_pcm_substream *substream}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM:hjTubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM:hjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThM:hjTubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj"Uh]hint type}(hj$UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Uubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM;hjUubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj;UhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7UhM;hj8Uubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhj7UhM;hjTubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hj[Uh]hstruct device *data}(hj]UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYUubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM<hjUUubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjtUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjpUhM<hjqUubah}(h]h ]h"]h$]h&]uh1jhjUUubeh}(h]h ]h"]h$]h&]uh1jhjpUhM<hjTubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjUh]h size_t size}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjUubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhM=hjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhM=hjTubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjUh]h size_t max}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM>hjUubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhM>hjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhM>hjTubeh}(h]h ]h"]h$]h&]uh1jhjTubjg)}(h**Description**h]j)}(hjVh]h Description}(hj VhhhNhNubah}(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.chM@hjTubjg)}(h0Do pre-allocation for the given DMA buffer type.h]h0Do pre-allocation for the given DMA buffer type.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM@hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_pcm_lib_preallocate_pages_for_all (C function)'c.snd_pcm_lib_preallocate_pages_for_allhNtauh1hhjOhhhNhNubh)}(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}(hjMVhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIVhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKubj)}(h h]h }(hj\VhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIVhhhj[VhMKubj)}(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}(hjnVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIVhhhj[VhMKubj@)}(hD(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjpVsb'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hpcmh]hpcm}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubjF)}(hint typeh](h)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVubj)}(h h]h }(hj WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj%)}(htypeh]htype}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj1WhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-Wubj)}(h h]h }(hj?WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-Wubj)}(hjh]h*}(hjMWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-Wubj%)}(hdatah]hdata}(hjZWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-Wubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjvWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxWmodnameN classnameNjj)}j]jV'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjoWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoWubj%)}(hsizeh]hsize}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jV'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hmaxh]hmax}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIVhhhj[VhMKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEVhhhj[VhMKubah}(h]j@Vah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[VhMKhjBVhhubjb)}(hhh]jg)}(h:pre-allocation for continuous memory type (all substreams)h]h:pre-allocation for continuous memory type (all substreams)}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKhjXhhubah}(h]h ]h"]h$]h&]uh1jahjBVhhhj[VhMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,Xjj,Xjjjuh1hhhhjOhNhNubj)}(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)}(hj6Xh]h Parameters}(hj8XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Xubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhj0Xubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjUXh]hstruct snd_pcm *pcm}(hjWXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSXubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMLhjOXubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjnXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjXhMLhjkXubah}(h]h ]h"]h$]h&]uh1jhjOXubeh}(h]h ]h"]h$]h&]uh1jhjjXhMLhjLXubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hjXh]hint type}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMMhjXubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhMMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMMhjLXubj)}(h'``void *data`` DMA type dependent data h](j)}(h``void *data``h]j)}(hjXh]h void *data}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMNhjXubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhMNhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMNhjLXubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjYh]h size_t size}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhjXubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMOhjYubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjYhMOhjLXubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hj9Yh]h size_t max}(hj;YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Yubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMPhj3Yubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjRYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNYhMPhjOYubah}(h]h ]h"]h$]h&]uh1jhj3Yubeh}(h]h ]h"]h$]h&]uh1jhjNYhMPhjLXubeh}(h]h ]h"]h$]h&]uh1jhj0Xubjg)}(h**Description**h]j)}(hjtYh]h Description}(hjvYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrYubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMRhj0Xubjg)}(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.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMRhj0Xubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_set_managed_buffer (C function)c.snd_pcm_set_managed_bufferhNtauh1hhjOhhhNhNubh)}(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}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM^ubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhM^ubj)}(hsnd_pcm_set_managed_bufferh]j%)}(hsnd_pcm_set_managed_bufferh]hsnd_pcm_set_managed_buffer}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjYhM^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}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(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)}jjYsbc.snd_pcm_set_managed_bufferasbuh1hhjYubj)}(h h]h }(hj4ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjBZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(h substreamh]h substream}(hjOZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hint typeh](h)}(hinth]hint}(hjhZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdZubj)}(h h]h }(hjvZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdZubj%)}(htypeh]htype}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hdeviceh]hdevice}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j0Zc.snd_pcm_set_managed_bufferasbuh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(hdatah]hdata}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(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]j0Zc.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>uh1jEhjYubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjX[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjU[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZ[modnameN classnameNjj)}j]j0Zc.snd_pcm_set_managed_bufferasbuh1hhjQ[ubj)}(h h]h }(hjv[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ[ubj%)}(hmaxh]hmax}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjYhhhjYhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjYhM^ubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhM^hjYhhubjb)}(hhh]jg)}(h(set up buffer management for a substreamh]h(set up buffer management for a substream}(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.chM^hj[hhubah}(h]h ]h"]h$]h&]uh1jahjYhhhjYhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj[jj[jjjuh1hhhhjOhNhNubj)}(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)}(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.chMbhj[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&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM_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&]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_*)}(hjA\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)}(hja\h]hstruct device *data}(hjc\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}(hjz\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjv\hMahjw\ubah}(h]h ]h"]h$]h&]uh1jhj[\ubeh}(h]h ]h"]h$]h&]uh1jhjv\hMahj[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.chMbhj\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\hMbhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMbhj[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.chMchj\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\hMchj\ubah}(h]h ]h"]h$]h&]uh1jhj\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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMehj[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.}(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.chMehj[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 }(hj3]hhhNhNubj)}(h**size**h]hsize}(hj;]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3]ubh is non-zero and }(hj3]hhhNhNubj)}(h**max**h]hmax}(hjM]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3]ubh 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().}(hj3]hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMohj[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 }(hjf]hhhNhNubj)}(h**size**h]hsize}(hjn]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf]ubh and }(hjf]hhhNhNubj)}(h**max**h]hmax}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf]ubh 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.}(hjf]hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMthj[ubjg)}(hDUpon successful buffer allocation and setup, the function returns 0.h]hDUpon successful buffer allocation and setup, the function returns 0.}(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.chMxhj[ubjg)}(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:42: ./sound/core/pcm_memory.chMzhj[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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMzhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_pcm_set_managed_buffer_all (C function) c.snd_pcm_set_managed_buffer_allhNtauh1hhjOhhhNhNubh)}(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}(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.chMubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhj]hMubj)}(hsnd_pcm_set_managed_buffer_allh]j%)}(hsnd_pcm_set_managed_buffer_allh]hsnd_pcm_set_managed_buffer_all}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhj]hMubj@)}(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}(hj,^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(^ubj)}(h h]h }(hj9^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(^ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjJ^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjG^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjL^modnameN classnameNjj)}j]j)}jj^sb c.snd_pcm_set_managed_buffer_allasbuh1hhj(^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%)}(hpcmh]hpcm}(hj^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]jf^ c.snd_pcm_set_managed_buffer_allasbuh1hhj^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}(hjF_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH_modnameN classnameNjj)}j]jf^ c.snd_pcm_set_managed_buffer_allasbuh1hhj?_ubj)}(h h]h }(hjd_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?_ubj%)}(hsizeh]hsize}(hjr_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}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jf^ c.snd_pcm_set_managed_buffer_allasbuh1hhj_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>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>set up buffer management for all substreams for all substreamsh]h>set up buffer management for all substreams for 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.chMhj_hhubah}(h]h ]h"]h$]h&]uh1jahj]hhhj]hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhjOhNhNubj)}(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)}(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.chMhj`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.chMhj`ubj)}(hhh]jg)}(hthe pcm instanceh]hthe 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:`hMhj`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.chMhjX`ubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjw`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjs`hMhjt`ubah}(h]h ]h"]h$]h&]uh1jhjX`ubeh}(h]h ]h"]h$]h&]uh1jhjs`hMhj`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.chMhj`ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(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;``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.chMhj`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`hMhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhj`ubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hj ah]h size_t max}(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.chMhjaubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hj"ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahMhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjDah]h Description}(hjFahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBaubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj`ubjg)}(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.}(hjZahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj`ubjg)}(h **Return**h]j)}(hjkah]hReturn}(hjmahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiaubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj`ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_malloc_pages (C function)c.snd_pcm_lib_malloc_pageshNtauh1hhjOhhhNhNubh)}(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}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjahhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjahMubj)}(hsnd_pcm_lib_malloc_pagesh]j%)}(hsnd_pcm_lib_malloc_pagesh]hsnd_pcm_lib_malloc_pages}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjahhhjahMubj@)}(h2(struct snd_pcm_substream *substream, size_t size)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj bhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj bmodnameN classnameNjj)}j]j)}jjasbc.snd_pcm_lib_malloc_pagesasbuh1hhjaubj)}(h h]h }(hj+bhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj)}(hjh]h*}(hj9bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj%)}(h substreamh]h substream}(hjFbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjbbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_bubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdbmodnameN classnameNjj)}j]j'bc.snd_pcm_lib_malloc_pagesasbuh1hhj[bubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[bubj%)}(hsizeh]hsize}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[bubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjahhhjahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjahMubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhjahhubjb)}(hhh]jg)}(hallocate the DMA bufferh]hallocate the DMA buffer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbhhubah}(h]h ]h"]h$]h&]uh1jahjahhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhjOhNhNubj)}(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)}(hjbh]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubj)}(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)}(hjbh]h#struct snd_pcm_substream *substream}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubj)}(hhh]jg)}(h+the substream to allocate the DMA buffer toh]h+the substream to allocate the DMA buffer to}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjchMhjbubj)}(h3``size_t size`` the requested buffer size in bytes h](j)}(h``size_t size``h]j)}(hj2ch]h size_t size}(hj4chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0cubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj,cubj)}(hhh]jg)}(h"the requested buffer size in bytesh]h"the requested buffer size in bytes}(hjKchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGchMhjHcubah}(h]h ]h"]h$]h&]uh1jhj,cubeh}(h]h ]h"]h$]h&]uh1jhjGchMhjbubeh}(h]h ]h"]h$]h&]uh1jhjbubjg)}(h**Description**h]j)}(hjmch]h Description}(hjochhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkcubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubjg)}(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().}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubjg)}(h **Return**h]j)}(hjch]hReturn}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubjg)}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_free_pages (C function)c.snd_pcm_lib_free_pageshNtauh1hhjOhhhNhNubh)}(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}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjchMubj)}(hsnd_pcm_lib_free_pagesh]j%)}(hsnd_pcm_lib_free_pagesh]hsnd_pcm_lib_free_pages}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjchhhjchMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hj#dhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj4dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6dmodnameN classnameNjj)}j]j)}jjcsbc.snd_pcm_lib_free_pagesasbuh1hhjdubj)}(h h]h }(hjTdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjbdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(h substreamh]h substream}(hjodhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubah}(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 the allocated DMA buffer.h]h!release the allocated DMA buffer.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jahjchhhjchMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhjOhNhNubj)}(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)}(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)}(hP``struct snd_pcm_substream *substream`` the substream to release the DMA buffer h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjdh]h#struct snd_pcm_substream *substream}(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)}(h'the substream to release the DMA bufferh]h'the substream to release the DMA buffer}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubah}(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)}(hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().h]hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().}(hj+ehhhNhNubah}(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)}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:eubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjRehhhNhNubah}(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&]uh1jhjOhhhNhNubeh}(h]pcm-memory-managementah ]h"]pcm memory managementah$]h&]uh1hhj\hhhhhK)ubh)}(hhh](h)}(hPCM DMA Engine APIh]hPCM DMA Engine API}(hjsehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpehhhhhK-ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_hwparams_to_dma_slave_config (C function)"c.snd_hwparams_to_dma_slave_confighNtauh1hhjpehhhNhNubh)}(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}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjehK,ubj)}(h snd_hwparams_to_dma_slave_configh]j%)}(h snd_hwparams_to_dma_slave_configh]h snd_hwparams_to_dma_slave_config}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhjehK,ubj@)}(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}(hjehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubjL)}(hjOh]hstruct}(hjehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj fubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjesb"c.snd_hwparams_to_dma_slave_configasbuh1hhjeubj)}(h h]h }(hj0fhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hj>fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(h substreamh]h substream}(hjKfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(h&const struct snd_pcm_hw_params *paramsh](jL)}(hj\h]hconst}(hjdfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`fubj)}(h h]h }(hjqfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`fubjL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`fubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`fubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j,f"c.snd_hwparams_to_dma_slave_configasbuh1hhj`fubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`fubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`fubj%)}(hparamsh]hparams}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`fubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj ghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj gubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j,f"c.snd_hwparams_to_dma_slave_configasbuh1hhjfubj)}(h h]h }(hj+ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hj9ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(h slave_configh]h slave_config}(hjFghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhjehK,ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhjehK,ubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjehK,hjehhubjb)}(hhh]jg)}(h%Convert hw_params to dma_slave_configh]h%Convert hw_params to dma_slave_config}(hjpghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,hjmghhubah}(h]h ]h"]h$]h&]uh1jahjehhhjehK,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhjpehNhNubj)}(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)}(hjgh]h Parameters}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjgubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjgh]h)const struct snd_pcm_substream *substream}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK-hjgubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghK-hjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghK-hjgubj)}(h5``const struct snd_pcm_hw_params *params`` hw_params h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjgh]h&const struct snd_pcm_hw_params *params}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK.hjgubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghK.hjhubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghK.hjgubj)}(h;``struct dma_slave_config *slave_config`` DMA slave config h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj#hh]h%struct dma_slave_config *slave_config}(hj%hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!hubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK/hjhubj)}(hhh]jg)}(hDMA slave configh]hDMA slave config}(hjuh1jhjhhhhjhhKZubj@)}(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}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubjL)}(hjOh]hstruct}(hj"ihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hj/ihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj@ihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=iubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBimodnameN classnameNjj)}j]j)}jjhsb,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjiubj)}(h h]h }(hj`ihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjnihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(h substreamh]h substream}(hj{ihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(h1const struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hj\h]hconst}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubjL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j\i,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(hdma_datah]hdma_data}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj,jhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj=jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?jmodnameN classnameNjj)}j]j\i,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjjubj)}(h h]h }(hj[jhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjijhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(h slave_configh]h slave_config}(hjvjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhhjhhKZubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhhjhhKZubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhhKZhjhhhubjb)}(hhh]jg)}(h2Initializes a dma slave config using DAI DMA data.h]h2Initializes a dma slave config using DAI DMA data.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZhjjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhhjhhKZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhjpehNhNubj)}(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)}(hjjh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK^hjjubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjjh]h)const struct snd_pcm_substream *substream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK\hjjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhK\hjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhK\hjjubj)}(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)}(hjkh]h1const struct snd_dmaengine_dai_dma_data *dma_data}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK]hjkubj)}(hhh]jg)}(h DAI DMA datah]h DAI DMA data}(hj3khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/khK]hj0kubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhj/khK]hjjubj)}(hB``struct dma_slave_config *slave_config`` DMA slave configuration h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hjSkh]h%struct dma_slave_config *slave_config}(hjUkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQkubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK^hjMkubj)}(hhh]jg)}(hDMA slave configurationh]hDMA slave configuration}(hjlkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhkhK^hjikubah}(h]h ]h"]h$]h&]uh1jhjMkubeh}(h]h ]h"]h$]h&]uh1jhjhkhK^hjjubeh}(h]h ]h"]h$]h&]uh1jhjjubjg)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK`hjjubjg)}(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.}(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`hjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_trigger (C function)c.snd_dmaengine_pcm_triggerhNtauh1hhjpehhhNhNubh)}(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}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkhhhjkhKubj)}(hsnd_dmaengine_pcm_triggerh]j%)}(hsnd_dmaengine_pcm_triggerh]hsnd_dmaengine_pcm_trigger}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjkhhhjkhKubj@)}(h.(struct snd_pcm_substream *substream, int cmd)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj lubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj lubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj.lhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+lubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0lmodnameN classnameNjj)}j]j)}jjksbc.snd_dmaengine_pcm_triggerasbuh1hhj lubj)}(h h]h }(hjNlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj lubj)}(hjh]h*}(hj\lhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj lubj%)}(h substreamh]h substream}(hjilhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj lubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(hint cmdh](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~lubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~lubj%)}(hcmdh]hcmd}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~lubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjkhhhjkhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkhhhjkhKubah}(h]jkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhKhjkhhubjb)}(hhh]jg)}(h*dmaengine based PCM trigger implementationh]h*dmaengine based PCM trigger 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.chKhjlhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjkhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjpehNhNubj)}(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)}(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.chKhjlubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj mh]h#struct snd_pcm_substream *substream}(hj mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj"mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjmubj)}(h``int cmd`` Trigger command h](j)}(h ``int cmd``h]j)}(hjBmh]hint cmd}(hjDmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@mubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjuh1jhjmhhhj nhKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj;nhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7nubj)}(h h]h }(hjHnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7nubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjYnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[nmodnameN classnameNjj)}j]jn&c.snd_dmaengine_pcm_pointer_no_residueasbuh1hhj7nubj)}(h h]h }(hjwnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7nubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7nubj%)}(h substreamh]h substream}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7nubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3nubah}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhj nhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhj nhKubah}(h]jmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj nhKhjmhhubjb)}(hhh]jg)}(h*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnhhubah}(h]h ]h"]h$]h&]uh1jahjmhhhj nhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjpehNhNubj)}(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)}(hjnh]h Parameters}(hjnhhhNhNubah}(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.chKhjnubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjnh]h#struct snd_pcm_substream *substream}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohKhjoubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjohKhjnubah}(h]h ]h"]h$]h&]uh1jhjnubjg)}(h**Description**h]j)}(hj8oh]h Description}(hj:ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6oubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnubjg)}(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.}(hjNohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnubjg)}(h **Return**h]j)}(hj_oh]hReturn}(hjaohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]oubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnubjg)}(hPCM position in framesh]hPCM position in frames}(hjuohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_pointer (C function)c.snd_dmaengine_pcm_pointerhNtauh1hhjpehhhNhNubh)}(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}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jsnd_dmaengine_pcm_pointersbc.snd_dmaengine_pcm_pointerasbuh1hhjohhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjohKubj)}(hsnd_dmaengine_pcm_pointerh]j%)}(hjoh]hsnd_dmaengine_pcm_pointer}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjohKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(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]joc.snd_dmaengine_pcm_pointerasbuh1hhjoubj)}(h h]h }(hj2phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hj@phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(h substreamh]h substream}(hjMphhhNhNubah}(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*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(hjwphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjtphhubah}(h]h ]h"]h$]h&]uh1jahjohhhjohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjpehNhNubj)}(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)}(hjph]h Parameters}(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.chKhjpubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjph]h#struct snd_pcm_substream *substream}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjpubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjpubjg)}(heThis function can be used as the PCM pointer callback for dmaengine based PCM driver implementations.h]heThis function can be used as the PCM pointer callback for dmaengine based PCM driver implementations.}(hj qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjpubjg)}(h **Return**h]j)}(hjqh]hReturn}(hjqhhhNhNubah}(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.chKhjpubjg)}(hPCM position in framesh]hPCM position in frames}(hj0qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_dmaengine_pcm_request_channel (C function)#c.snd_dmaengine_pcm_request_channelhNtauh1hhjpehhhNhNubh)}(hhh](h)}(h`struct dma_chan * snd_dmaengine_pcm_request_channel (dma_filter_fn filter_fn, void *filter_data)h]h)}(h^struct dma_chan *snd_dmaengine_pcm_request_channel(dma_filter_fn filter_fn, void *filter_data)h](jL)}(hjOh]hstruct}(hj_qhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[qhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hjmqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[qhhhjlqhMubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hj~qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{qubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}j!snd_dmaengine_pcm_request_channelsb#c.snd_dmaengine_pcm_request_channelasbuh1hhj[qhhhjlqhMubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[qhhhjlqhMubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[qhhhjlqhMubj)}(h!snd_dmaengine_pcm_request_channelh]j%)}(hjqh]h!snd_dmaengine_pcm_request_channel}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[qhhhjlqhMubj@)}(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}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jq#c.snd_dmaengine_pcm_request_channelasbuh1hhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj%)}(h filter_fnh]h filter_fn}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hvoid *filter_datah](h)}(hvoidh]hvoid}(hj!rhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hj/rhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hj=rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(h filter_datah]h filter_data}(hjJrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj[qhhhjlqhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWqhhhjlqhMubah}(h]jRqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlqhMhjTqhhubjb)}(hhh]jg)}(h%Request channel for the dmaengine PCMh]h%Request channel for the dmaengine PCM}(hjtrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjqrhhubah}(h]h ]h"]h$]h&]uh1jahjTqhhhjlqhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1hhhhjpehNhNubj)}(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)}(hjrh]h Parameters}(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.chMhjrubj)}(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)}(hjrh]hdma_filter_fn filter_fn}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubj)}(hhh]jg)}(h/Filter function used to request the DMA channelh]h/Filter function used to request the DMA channel}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhMhjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjrubj)}(h=``void *filter_data`` Data passed to the DMA filter function h](j)}(h``void *filter_data``h]j)}(hjrh]hvoid *filter_data}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubj)}(hhh]jg)}(h&Data passed to the DMA filter functionh]h&Data passed to the DMA filter function}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjshMhjrubeh}(h]h ]h"]h$]h&]uh1jhjrubjg)}(h**Description**h]j)}(hj)sh]h Description}(hj+shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'subah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubjg)}(hAThis function request a DMA channel for usage with dmaengine PCM.h]hAThis function request a DMA channel for usage with dmaengine PCM.}(hj?shhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubjg)}(h **Return**h]j)}(hjPsh]hReturn}(hjRshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNsubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubjg)}(h!NULL or the requested DMA channelh]h!NULL or the requested DMA channel}(hjfshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_open (C function)c.snd_dmaengine_pcm_openhNtauh1hhjpehhhNhNubh)}(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}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjshhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM'ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjshhhjshM'ubj)}(hsnd_dmaengine_pcm_openh]j%)}(hsnd_dmaengine_pcm_openh]hsnd_dmaengine_pcm_open}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjshhhjshM'ubj@)}(h<(struct snd_pcm_substream *substream, struct dma_chan *chan)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jjssbc.snd_dmaengine_pcm_openasbuh1hhjsubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(h substreamh]h substream}(hj+thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hjDthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@tubj)}(h h]h }(hjQthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@tubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjbthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdtmodnameN classnameNjj)}j]j tc.snd_dmaengine_pcm_openasbuh1hhj@tubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@tubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@tubj%)}(hchanh]hchan}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@tubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjshhhjshM'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjshhhjshM'ubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshM'hjshhubjb)}(hhh]jg)}(h$Open a dmaengine based PCM substreamh]h$Open a dmaengine based PCM substream}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM'hjthhubah}(h]h ]h"]h$]h&]uh1jahjshhhjshM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhjpehNhNubj)}(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)}(hjth]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjtubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjuh]h#struct snd_pcm_substream *substream}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM(hjuubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhM(hjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhM(hjtubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hj?uh]hstruct dma_chan *chan}(hjAuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=uubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM)hj9uubj)}(hhh]jg)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjXuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjTuhM)hjUuubah}(h]h ]h"]h$]h&]uh1jhj9uubeh}(h]h ]h"]h$]h&]uh1jhjTuhM)hjtubeh}(h]h ]h"]h$]h&]uh1jhjtubjg)}(h**Description**h]j)}(hjzuh]h Description}(hj|uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxuubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjtubjg)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjtubjg)}(h **Return**h]j)}(hjuh]hReturn}(hjuhhhNhNubah}(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.chM/hjtubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM/hjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dmaengine_pcm_close (C function)c.snd_dmaengine_pcm_closehNtauh1hhjpehhhNhNubh)}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMkubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuhhhjuhMkubj)}(hsnd_dmaengine_pcm_closeh]j%)}(hsnd_dmaengine_pcm_closeh]hsnd_dmaengine_pcm_close}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhjuhMkubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj#vhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hj0vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjAvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>vubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCvmodnameN classnameNjj)}j]j)}jj vsbc.snd_dmaengine_pcm_closeasbuh1hhjvubj)}(h h]h }(hjavhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjovhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(h substreamh]h substream}(hj|vhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubah}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhjuhMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjuhMkubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhMkhjuhhubjb)}(hhh]jg)}(h%Close a dmaengine based PCM substreamh]h%Close a dmaengine based PCM substream}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMkhjvhhubah}(h]h ]h"]h$]h&]uh1jahjuhhhjuhMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhjpehNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMohjvubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjvh]h#struct snd_pcm_substream *substream}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMlhjvubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMlhjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhMlhjvubah}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h **Return**h]j)}(hj"wh]hReturn}(hj$whhhNhNubah}(h]h ]h"]h$]h&]uh1jhj wubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMnhjvubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj8whhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMnhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_close_release_chan (C function)&c.snd_dmaengine_pcm_close_release_chanhNtauh1hhjpehhhNhNubh)}(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}(hjgwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcwhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMxubj)}(h h]h }(hjvwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcwhhhjuwhMxubj)}(h$snd_dmaengine_pcm_close_release_chanh]j%)}(h$snd_dmaengine_pcm_close_release_chanh]h$snd_dmaengine_pcm_close_release_chan}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjcwhhhjuwhMxubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(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)}jjwsb&c.snd_dmaengine_pcm_close_release_chanasbuh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(h substreamh]h substream}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubah}(h]h ]h"]h$]h&]j=j>uh1j?hjcwhhhjuwhMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_whhhjuwhMxubah}(h]jZwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuwhMxhj\whhubjb)}(hhh]jg)}(h9Close a dmaengine based PCM substream and release channelh]h9Close a dmaengine based PCM substream and release channel}(hj'xhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMxhj$xhhubah}(h]h ]h"]h$]h&]uh1jahj\whhhjuwhMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?xjj?xjjjuh1hhhhjpehNhNubj)}(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)}(hjIxh]h Parameters}(hjKxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGxubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hjCxubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjhxh]h#struct snd_pcm_substream *substream}(hjjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfxubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMzhjbxubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}xhMzhj~xubah}(h]h ]h"]h$]h&]uh1jhjbxubeh}(h]h ]h"]h$]h&]uh1jhj}xhMzhj_xubah}(h]h ]h"]h$]h&]uh1jhjCxubjg)}(h**Description**h]j)}(hjxh]h Description}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hjCxubjg)}(h;Releases the DMA channel associated with the PCM substream.h]h;Releases the DMA channel associated with the PCM substream.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hjCxubjg)}(h **Return**h]j)}(hjxh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM~hjCxubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM~hjCxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h6snd_dmaengine_pcm_refine_runtime_hwparams (C function)+c.snd_dmaengine_pcm_refine_runtime_hwparamshNtauh1hhjpehhhNhNubh)}(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}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj yhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj yhhhjyhMubj)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]j%)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]h)snd_dmaengine_pcm_refine_runtime_hwparams}(hj0yhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,yubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj yhhhjyhMubj@)}(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}(hjLyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHyubj)}(h h]h }(hjYyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHyubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlymodnameN classnameNjj)}j]j)}jj2ysb+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjHyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHyubj%)}(h substreamh]h substream}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDyubjF)}(h+struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hjOh]hstruct}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jy+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hdma_datah]hdma_data}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDyubjF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hj.zhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*zubj)}(h h]h }(hj;zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*zubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjLzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNzmodnameN classnameNjj)}j]jy+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj*zubj)}(h h]h }(hjjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*zubj)}(hjh]h*}(hjxzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*zubj%)}(hhwh]hhw}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*zubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDyubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]jy+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hchanh]hchan}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDyubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj yhhhjyhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjyhhhjyhMubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyhMhjyhhubjb)}(hhh]jg)}(hRefine runtime hw paramsh]hRefine runtime hw params}(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&]uh1jahjyhhhjyhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7{jj7{jjjuh1hhhhjpehNhNubj)}(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)}(hjA{h]h Parameters}(hjC{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}(hjb{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.chMhjZ{ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjy{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhju{hMhjv{ubah}(h]h ]h"]h$]h&]uh1jhjZ{ubeh}(h]h ]h"]h$]h&]uh1jhju{hMhjW{ubj)}(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&]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 DAI DMA datah]h DAI DMA data}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjW{ubj)}(h.``struct snd_pcm_hardware *hw`` PCM hw params h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hj{h]hstruct snd_pcm_hardware *hw}(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 hw paramsh]h PCM hw params}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjW{ubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hj |h]hstruct dma_chan *chan}(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%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hj$|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj |hMhj!|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj |hMhjW{ubeh}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj;{ubjg)}(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.}(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;{ubjg)}(h **Return**h]j)}(hjm|h]hReturn}(hjo|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk|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}(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;{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_pcm_substream_to_dma_direction (C function)$c.snd_pcm_substream_to_dma_directionhNtauh1hhjpehhhn/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 }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hKubh)}(hhh]j%)}(hdma_transfer_directionh]hdma_transfer_direction}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}j"snd_pcm_substream_to_dma_directionsb$c.snd_pcm_substream_to_dma_directionasbuh1hhj|hhhj|hKubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hKubj)}(h"snd_pcm_substream_to_dma_directionh]j%)}(hj|h]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|hhhj|hKubj@)}(h+(const struct snd_pcm_substream *substream)h]jF)}(h)const struct snd_pcm_substream *substreamh](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 }(hjH}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjY}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[}modnameN classnameNjj)}j]j|$c.snd_pcm_substream_to_dma_directionasbuh1hhj}ubj)}(h h]h }(hjw}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?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.Get dma_transfer_direction for a PCM substreamh]h.Get dma_transfer_direction for a PCM substream}(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.hhKhj}hhubah}(h]h ]h"]h$]h&]uh1jahj|hhhj|hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjpehj|hNubj)}(hq**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream **Return** DMA transfer directionh](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:47: ./include/sound/dmaengine_pcm.hhKhj}ubj)}(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~hKhj}ubah}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h **Return**h]j)}(hj8~h]hReturn}(hj:~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6~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}ubjg)}(hDMA transfer directionh]hDMA transfer direction}(hjN~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhj|hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_dmaengine_dai_dma_data (C struct)c.snd_dmaengine_dai_dma_datahNtauh1hhjpehhhj|hNubh)}(hhh](h)}(hsnd_dmaengine_dai_dma_datah]h)}(h!struct snd_dmaengine_dai_dma_datah](jL)}(hjOh]hstruct}(hj}~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjy~hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjy~hhhj~hKubj)}(hsnd_dmaengine_dai_dma_datah]j%)}(hjw~h]hsnd_dmaengine_dai_dma_data}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjy~hhhj~hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhju~hhhj~hKubah}(h]jp~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hKhjr~hhubjb)}(hhh]jg)}(hDAI DMA configuration datah]hDAI DMA configuration 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~hhubah}(h]h ]h"]h$]h&]uh1jahjr~hhhj~hKubeh}(h]h ](jstructeh"]h$]h&]jjjj~jj~jjjuh1hhhhjpehj|hNubj)}(hX\**Definition**:: struct snd_dmaengine_dai_dma_data { dma_addr_t addr; enum dma_slave_buswidth addr_width; u32 maxburst; void *filter_data; const char *chan_name; unsigned int fifo_size; unsigned int flags; void *peripheral_config; size_t peripheral_size; }; **Members** ``addr`` Address of the DAI data source or destination register. ``addr_width`` Width of the DAI data source or destination register. ``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. ``filter_data`` Custom DMA channel filter data, this will usually be used when requesting the DMA channel. ``chan_name`` Custom channel name to use when requesting DMA channel. ``fifo_size`` FIFO size of the DAI controller in bytes ``flags`` PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now ``peripheral_config`` peripheral configuration for programming peripheral for dmaengine transfer ``peripheral_size`` peripheral configuration buffer sizeh](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&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK>hj~ubh literal_block)}(hXstruct snd_dmaengine_dai_dma_data { dma_addr_t addr; enum dma_slave_buswidth addr_width; u32 maxburst; void *filter_data; const char *chan_name; unsigned int fifo_size; unsigned int flags; void *peripheral_config; size_t peripheral_size; };h]hXstruct snd_dmaengine_dai_dma_data { dma_addr_t addr; enum dma_slave_buswidth addr_width; u32 maxburst; void *filter_data; const char *chan_name; unsigned int fifo_size; unsigned int flags; void *peripheral_config; size_t peripheral_size; };}hj~sbah}(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.hhK@hj~ubjg)}(h **Members**h]j)}(hjh]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.hhKLhj~ubj)}(hhh](j)}(hA``addr`` Address of the DAI data source or destination register. h](j)}(h``addr``h]j)}(hj.h]haddr}(hj0hhhNhNubah}(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.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK@hj%ubj)}(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.hhKBhjubj)}(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.hhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKBhj%ubj)}(hF``chan_name`` Custom channel name to use when requesting DMA channel. h](j)}(h ``chan_name``h]j)}(hjh]h chan_name}(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.hhKChjubj)}(hhh]jg)}(h7Custom channel name to use when requesting DMA channel.h]h7Custom channel name to use when requesting DMA channel.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hKChj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hKChj%ubj)}(h7``fifo_size`` FIFO size of the DAI controller in bytes h](j)}(h ``fifo_size``h]j)}(hjMh]h fifo_size}(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.hhKDhjGubj)}(hhh]jg)}(h(FIFO size of the DAI controller in bytesh]h(FIFO size of the DAI controller in bytes}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKDhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhKDhj%ubj)}(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.hhKEhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKEhj%ubj)}(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.hhKGhjubj)}(hhh]jg)}(hJperipheral configuration for programming peripheral for dmaengine transferh]hJperipheral configuration for programming peripheral for dmaengine transfer}(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.hhKFhjՀubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjԀhKGhj%ubj)}(h8``peripheral_size`` peripheral configuration buffer sizeh](j)}(h``peripheral_size``h]j)}(hjh]hperipheral_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.hhKGhjubj)}(hhh]jg)}(h$peripheral configuration buffer sizeh]h$peripheral configuration buffer size}(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&]uh1jhjhKGhj%ubeh}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhj|hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_config (C struct)c.snd_dmaengine_pcm_confighNtauh1hhjpehhhj|hNubh)}(hhh](h)}(hsnd_dmaengine_pcm_configh]h)}(hstruct snd_dmaengine_pcm_configh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKNubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhj`hKNubj)}(hsnd_dmaengine_pcm_configh]j%)}(hjMh]hsnd_dmaengine_pcm_config}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhj`hKNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhj`hKNubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj`hKNhjHhhubjb)}(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.hhKqhjhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhj`hKNubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhjpehj|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&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKuhjubj~)}(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; };}hjҁsbah}(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.hhKwhjubjg)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(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``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)}(hjh]hprepare_slave_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.hhKthjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKshjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKthjubj)}(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)}(hj<h]hcompat_request_channel}(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.hhKvhj6ubj)}(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.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKuhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhKvhjubj)}(hY``process`` Callback used to apply processing on samples transferred from/to user space. h](j)}(h ``process``h]j)}(hjvh]hprocess}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKxhjpubj)}(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.hhKwhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhKxhjubj)}(h9``name`` Component name. If null, dev_name will be used. h](j)}(h``name``h]j)}(hjh]hname}(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.hhKyhjubj)}(hhh]jg)}(h/Component name. If null, dev_name will be used.h]h/Component name. If null, dev_name will be used.}(hjɂhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjłhKyhjƂubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjłhKyhjubj)}(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|hjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK|hjubj)}(hS``dma_dev`` If set, request DMA channel on this device rather than the DAI device. h](j)}(h ``dma_dev``h]j)}(hj#h]hdma_dev}(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~hjubj)}(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.}(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}hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hK~hjubj)}(h^``chan_names`` If set, these custom DMA channel names will be requested at registration time. h](j)}(h``chan_names``h]j)}(hj]h]h chan_names}(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.hhKhjWubj)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKhjubj)}(hA``pcm_hardware`` snd_pcm_hardware struct to be used for the PCM. h](j)}(h``pcm_hardware``h]j)}(hjh]h pcm_hardware}(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/snd_pcm_hardware struct to be used for the PCM.h]h/snd_pcm_hardware struct to be used for the PCM.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h?``prealloc_buffer_size`` Size of the preallocated audio buffer.h](j)}(h``prealloc_buffer_size``h]j)}(hjЃh]hprealloc_buffer_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.hhKhjʃubj)}(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&]uh1jhjʃubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpehhhj|hNubjg)}(h**Note**h]j)}(hjh]hNote}(hjhhhNhNubah}(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.hhKhjpehhubjg)}(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.}(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.hhKhjpehhubeh}(h]pcm-dma-engine-apiah ]h"]pcm dma engine apiah$]h&]uh1hhj\hhhhhK-ubeh}(h]pcm-apiah ]h"]pcm apiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hControl/Mixer APIh]hControl/Mixer API}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhhhhhK2ubh)}(hhh](h)}(hGeneral Control Interfaceh]hGeneral Control Interface}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhhhhhK5ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify (C function)c.snd_ctl_notifyhNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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 }(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 reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_notifyasbuh1hhjubj)}(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)}(hunsigned int maskh](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%)}(hmaskh]hmask}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_notifyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjͅhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(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?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{hhhjhKubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjxhhubjb)}(hhh]jg)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(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&]uh1jahjxhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chKhj ubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjEh]hstruct snd_card *card}(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:54: ./sound/core/control.chKhj?ubj)}(hhh]jg)}(hthe card to send notificationh]hthe card to send notification}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhKhj<ubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hj~h]hunsigned int mask}(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.chKhjxubj)}(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&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKhj<ubj)}(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&]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 ctl element id to send notificationh]h'the ctl element id to send notification}(hjІhhhNhNubah}(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&]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.chKhj ubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify_one (C function)c.snd_ctl_notify_onehNtauh1hhjYhhhNhNubh)}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhjEhKubj)}(hsnd_ctl_notify_oneh]j%)}(hsnd_ctl_notify_oneh]hsnd_ctl_notify_one}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhjEhKubj@)}(hX(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.snd_ctl_notify_oneasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hcardh]hcard}(hj͇hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(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>uh1jEhjlubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jc.snd_ctl_notify_oneasbuh1hhj3ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(hunsigned int ioffh](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%)}(hioffh]hioff}(hj߈hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhjEhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhjEhKubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhKhj,hhubjb)}(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.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahj,hhhjEhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhjYhNhNubj)}(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)}(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.chKhj%ubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjJh]hstruct snd_card *card}(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)}(hthe card to send notificationh]hthe card to send notification}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hKhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjAubj)}(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.chKhj}ubj)}(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&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjAubj)}(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}(hjՉhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjщhKhj҉ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjщhKhjAubj)}(hA``unsigned int ioff`` the additional offset to the control index h](j)}(h``unsigned int ioff``h]j)}(hjh]hunsigned int ioff}(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 additional offset to the control indexh]h*the additional offset to the control index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjAubeh}(h]h ]h"]h$]h&]uh1jhj%ubjg)}(h**Description**h]j)}(hj0h]h Description}(hj2hhhNhNubah}(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.chKhj%ubjg)}(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.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new (C function) c.snd_ctl_newhNtauh1hhjYhhhNhNubh)}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqhhhe/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 hjqhhhjhKubj)}(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>uh1jhjqhhhjhKubj@)}(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}(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)}jjsb c.snd_ctl_newasbuh1hhjubj)}(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%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int counth](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%)}(hcounth]hcount}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int accessh](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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj%)}(haccessh]haccess}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_file *fileh](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_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_newasbuh1hhjϋubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjϋubj)}(hjh]h*}(hjhhhNhNubah}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjqhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhKubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjjhhubjb)}(hhh]jg)}(h0create a new control instance with some elementsh]h0create a new control instance with some elements}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjQhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjYhNhNubj)}(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)}(hjvh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjpubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h>``unsigned int count`` the number of elements in this control h](j)}(h``unsigned int count``h]j)}(hjΌh]hunsigned int count}(hjЌhhhNhNubah}(h]h ]h"]h$]h&]uh1jhǰ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 number of elements in this controlh]h&the number of elements in this control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjȌubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hN``unsigned int access`` the default access flags for elements in this control h](j)}(h``unsigned int access``h]j)}(hjh]hunsigned int access}(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)}(h5the default access flags for elements in this controlh]h5the default access flags for elements in this control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h@``struct snd_ctl_file *file`` given when locking these elements h](j)}(h``struct snd_ctl_file *file``h]j)}(hj@h]hstruct snd_ctl_file *file}(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:54: ./sound/core/control.chKhj:ubj)}(hhh]jg)}(h!given when locking these elementsh]h!given when locking these elements}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjubeh}(h]h ]h"]h$]h&]uh1jhjpubjg)}(h**Description**h]j)}(hj{h]h Description}(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.chKhjpubjg)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.). Each element has given access permissions (}(hjhhhNhNubj)}(h **access**h]haccess}(hjhhhNhNubah}(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.chKhjpubjg)}(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.chKhjpubjg)}(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.chKhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new1 (C function)c.snd_ctl_new1hNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj*hKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}j snd_ctl_new1sbc.snd_ctl_new1asbuh1hhjhhhj*hKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj*hKubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj*hKubj)}(h snd_ctl_new1h]j%)}(hjZh]h snd_ctl_new1}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj*hKubj@)}(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 }(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]jXc.snd_ctl_new1asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hncontrolh]hncontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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+create a control instance from the templateh]h+create a control instance from the template}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjrhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj*hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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}(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)}(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&]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 initialization recordh]hthe initialization record}(hjϏhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjˏhKhj̏ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjˏhKhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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.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.}(hj@hhhNhNubah}(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)}(hjQh]hReturn}(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.chMhjubjg)}(hDThe pointer of the newly generated instance, or ``NULL`` on failure.h](h0The pointer of the newly generated instance, or }(hjghhhNhNubj)}(h``NULL``h]hNULL}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubh on failure.}(hjghhhNhNubeh}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_free_one (C function)c.snd_ctl_free_onehNtauh1hhjYhhhNhNubh)}(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}(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_free_oneh]j%)}(hsnd_ctl_free_oneh]hsnd_ctl_free_one}(hjɐhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjŐubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM<ubj@)}(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)}jjːsbc.snd_ctl_free_oneasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(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?hjhhhjhM<ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM<ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM<hjhhubjb)}(hhh]jg)}(hrelease the control instanceh]hrelease the control instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM<hjehhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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 instanceh]hthe control instance}(hj‘hhhNhNubah}(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&]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.}(hjhhhNhNubah}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_add (C function) c.snd_ctl_addhNtauh1hhjYhhhNhNubh)}(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}(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.chMubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj7hMubj)}(h snd_ctl_addh]j%)}(h snd_ctl_addh]h snd_ctl_add}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj7hMubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjLsb c.snd_ctl_addasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(hstruct snd_kcontrol *kcontrolh](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 c.snd_ctl_addasbuh1hhjԒubj)}(h h]h }(hjhhhNhNubah}(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^ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj%hhhj7hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj7hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hMhjhhubjb)}(hhh]jg)}(h$add the control instance to the cardh]h$add the control instance to the card}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjYhNhNubj)}(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)}(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:54: ./sound/core/control.chMhjuubj)}(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.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>``struct snd_kcontrol *kcontrol`` the control instance to add 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.chMhj͓ubj)}(hhh]jg)}(hthe control instance to addh]hthe control instance to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj͓ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(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.chMhjuubjg)}(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.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjuubjg)}(h9It frees automatically the control which cannot be added.h]h9It frees automatically the control which cannot be added.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjuubjg)}(h **Return**h]j)}(hjDh]hReturn}(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.chMhjuubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_replace (C function)c.snd_ctl_replacehNtauh1hhjYhhhNhNubh)}(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.chM)ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM)ubj)}(hsnd_ctl_replaceh]j%)}(hsnd_ctl_replaceh]hsnd_ctl_replace}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM)ubj@)}(hK(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)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_replaceasbuh1hhj”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>uh1jEhjubjF)}(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]jc.snd_ctl_replaceasbuh1hhj4ubj)}(h h]h }(hjthhhNhNubah}(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>uh1jEhjubjF)}(hbool add_on_replaceh](h)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hadd_on_replaceh]hadd_on_replace}(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]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM)hj~hhubjb)}(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&]uh1jahj~hhhjhM)ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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-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}(hj1hhhNhNubah}(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}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhM*hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhM*hj&ubj)}(hB``struct snd_kcontrol *kcontrol`` the control instance to replace h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjhh]hstruct snd_kcontrol *kcontrol}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjbubj)}(hhh]jg)}(hthe control instance to replaceh]hthe control instance to replace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hM+hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hM+hj&ubj)}(h=``bool add_on_replace`` add the control if not already added h](j)}(h``bool add_on_replace``h]j)}(hjh]hbool add_on_replace}(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)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM,hj&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.chM.hj ubjg)}(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.hj ubjg)}(hEIt frees automatically the control which cannot be added or replaced.h]hEIt frees automatically the control which cannot be added or replaced.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM2hj 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.chM4hj 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:54: ./sound/core/control.chM4hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove (C function)c.snd_ctl_removehNtauh1hhjYhhhNhNubh)}(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}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjShhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM^ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjehM^ubj)}(hsnd_ctl_removeh]j%)}(hsnd_ctl_removeh]hsnd_ctl_remove}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjehM^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)}jjzsbc.snd_ctl_removeasbuh1hhjubj)}(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)}(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Ηc.snd_ctl_removeasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(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?hjShhhjehM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjehM^ubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjehM^hjLhhubjb)}(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&]uh1jahjLhhhjehM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMbhjubj)}(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)}(hA``struct snd_kcontrol *kcontrol`` the control instance to remove 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 removeh]hthe control instance to remove}(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.chMbhjubjg)}(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 }(hjRhhhNhNubj)}(h **kcontrol**h]hkcontrol}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh argument is allowed as noop.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMbhjubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhjubjg)}(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.chMhhjubjg)}(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.chMfhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove_id (C function)c.snd_ctl_remove_idhNtauh1hhjYhhhNhNubh)}(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}(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.chMtubj)}(h h]h }(hjؙhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjřhhhjיhMtubj)}(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>uh1jhjřhhhjיhMtubj@)}(h3(struct snd_card *card, 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}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_remove_idasbuh1hhjubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjRhhhNhNubah}(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)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(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_remove_idasbuh1hhjtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjšhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hidh]hid}(hjϚhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjřhhhjיhMtubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjיhMtubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjיhMthjhhubjb)}(hhh]jg)}(h1remove the control of the given id and release ith]h1remove the control of the given id 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.chMthjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjיhMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMxhjubj)}(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.chMuhj4ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhMuhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhMuhj1ubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjsh]hstruct snd_ctl_elem_id *id}(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.chMvhjmubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMvhj1ubeh}(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.chMxhjubjg)}(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.chMxhjubjg)}(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{hjubjg)}(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{hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ctl_remove_user_ctl (C function)c.snd_ctl_remove_user_ctlhNtauh1hhjYhhhNhNubh)}(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}(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_remove_user_ctlh]j%)}(hsnd_ctl_remove_user_ctlh]hsnd_ctl_remove_user_ctl}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj(hMubj@)}(h7(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_ctl_file *fileh](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_ctl_fileh]h snd_ctl_file}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jj=sbc.snd_ctl_remove_user_ctlasbuh1hhjSubj)}(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>uh1jEhjOubjF)}(hstruct snd_ctl_elem_id *idh](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_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_ctlasbuh1hhjŜ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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjŜubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubeh}(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(hMhjhhubjb)}(hhh]jg)}(h,remove and release the unlocked user controlh]h,remove and release the unlocked user control}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjGhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj(hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhjYhNhNubj)}(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)}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjfubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjĝh]hstruct snd_ctl_elem_id *id}(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 control id to removeh]hthe control id to remove}(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&]uh1jhjfubjg)}(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.chMhjfubjg)}(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.chMhjfubjg)}(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.chMhjfubjg)}(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.chMhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ctl_activate_id (C function)c.snd_ctl_activate_idhNtauh1hhjYhhhNhNubh)}(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}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjyhMubj)}(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>uh1jhjghhhjyhMubj@)}(h?(struct snd_card *card, struct snd_ctl_elem_id *id, int active)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_activate_idasbuh1hhjubj)}(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_ctl_elem_id *idh](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_idh]hsnd_ctl_elem_id}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.snd_ctl_activate_idasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int activeh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hactiveh]hactive}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjyhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjyhMubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyhMhj`hhubjb)}(hhh]jg)}(h/activate/inactivate the control of the given idh]h/activate/inactivate the control of the given id}(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&]uh1jahj`hhhjyhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMhj ubj)}(hhh]jg)}(hthe card instanceh]hthe card 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)}(hE``struct snd_ctl_elem_id *id`` the control id to activate/inactivate h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjJh]hstruct snd_ctl_elem_id *id}(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)}(h%the control id to activate/inactivateh]h%the control id to activate/inactivate}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hMhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjubj)}(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.chMhj}ubj)}(hhh]jg)}(hnon-zero to activateh]hnon-zero to activate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(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: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.}(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)}(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.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.}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename_id (C function)c.snd_ctl_rename_idhNtauh1hhjYhhhNhNubh)}(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}(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.chMubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj8hMubj)}(hsnd_ctl_rename_idh]j%)}(hsnd_ctl_rename_idh]hsnd_ctl_rename_id}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj8hMubj@)}(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}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.snd_ctl_rename_idasbuh1hhjcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(hstruct snd_ctl_elem_id *src_idh](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_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_rename_idasbuh1hhjաubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjաubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjաubj%)}(hsrc_idh]hsrc_id}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjաubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(hstruct snd_ctl_elem_id *dst_idh](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_idh]hsnd_ctl_elem_id}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jc.snd_ctl_rename_idasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(hdst_idh]hdst_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(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'replace the id of a control on the cardh]h'replace the id of a control on 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.chMhjǢhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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_ctl_elem_id *src_id`` the old id h](j)}(h"``struct snd_ctl_elem_id *src_id``h]j)}(hjDh]hstruct snd_ctl_elem_id *src_id}(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.chMhj>ubj)}(hhh]jg)}(h the old idh]h the old id}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMhjubj)}(h.``struct snd_ctl_elem_id *dst_id`` the new id h](j)}(h"``struct snd_ctl_elem_id *dst_id``h]j)}(hj}h]hstruct snd_ctl_elem_id *dst_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.chMhjwubj)}(hhh]jg)}(h the new idh]h the new id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(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: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.}(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)}(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.}(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)}(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)}(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.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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename (C function)c.snd_ctl_renamehNtauh1hhjYhhhNhNubh)}(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}(hjBhhhNhNubah}(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 }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhjPhMubj)}(hsnd_ctl_renameh]j%)}(hsnd_ctl_renameh]hsnd_ctl_rename}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhjPhMubj@)}(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&]uh1jKhj{ubj)}(h h]h }(hjhhhNhNubah}(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)}jjesbc.snd_ctl_renameasbuh1hhj{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>uh1jEhjwubjF)}(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$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_renameasbuh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkctlh]hkctl}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hcharh]hchar}(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%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj>hhhjPhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:hhhjPhMubah}(h]j5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhMhj7hhubjb)}(hhh]jg)}(hrename the control on the cardh]hrename the control on 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.chMhj̥hhubah}(h]h ]h"]h$]h&]uh1jahj7hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMhj ubj)}(hhh]jg)}(hthe card instanceh]hthe card 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)}(h4``struct snd_kcontrol *kctl`` the control to rename h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjIh]hstruct snd_kcontrol *kctl}(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:54: ./sound/core/control.chMhjCubj)}(hhh]jg)}(hthe control to renameh]hthe control to rename}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhjubj)}(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.chMhj|ubj)}(hhh]jg)}(h the new nameh]h the new name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(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: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.}(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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_numid (C function)c.snd_ctl_find_numidhNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj hhhe/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 hj hhhjhM%ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jsnd_ctl_find_numidsbc.snd_ctl_find_numidasbuh1hhj hhhjhM%ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhM%ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhM%ubj)}(hsnd_ctl_find_numidh]j%)}(hjNh]hsnd_ctl_find_numid}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhM%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 }(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]jLc.snd_ctl_find_numidasbuh1hhjubj)}(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)}(hunsigned int numidh](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%)}(hnumidh]hnumid}(hj3hhhNhNubah}(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]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM%hjhhubjb)}(hhh]jg)}(h2find the control instance with the given number-idh]h2find the control instance with the given number-id}(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%hjZhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjYhNhNubj)}(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&]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)hjyubj)}(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)}(h/``unsigned int numid`` the number-id to search h](j)}(h``unsigned int numid``h]j)}(hjרh]hunsigned int numid}(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 number-id to searchh]hthe number-id to search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjѨubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hjyubjg)}(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.}(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)hjyubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjyubjg)}(h **Return**h]j)}(hjHh]hReturn}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hjyubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hj^hhhNhNubj)}(h``NULL``h]hNULL}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh if not.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_id (C function)c.snd_ctl_find_idhNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhe/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>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)}jsnd_ctl_find_idsbc.snd_ctl_find_idasbuh1hhjhhhjhM>ubj)}(h h]h }(hjߩhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM>ubj)}(hsnd_ctl_find_idh]j%)}(hjܩh]hsnd_ctl_find_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM>ubj@)}(h9(struct snd_card *card, const 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 }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jکc.snd_ctl_find_idasbuh1hhjubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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}(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_find_idasbuh1hhjubj)}(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?hjhhhjhM>ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM>ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM>hjhhubjb)}(hhh]jg)}(h+find the control instance with the given idh]h+find the control instance with the given id}(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"hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhjYhNhNubj)}(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)}(hjGh]h Parameters}(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:54: ./sound/core/control.chMBhjAubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjfh]hstruct snd_card *card}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(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?hj]ubj)}(h6``const struct snd_ctl_elem_id *id`` the id to search h](j)}(h$``const struct snd_ctl_elem_id *id``h]j)}(hjh]h const struct 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.chM@hjubj)}(hhh]jg)}(hthe id to searchh]hthe id to search}(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&]uh1jhjAubjg)}(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.chMBhjAubjg)}(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.chMBhjAubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock 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.chMDhjAubjg)}(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.chMFhjAubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hj&hhhNhNubj)}(h``NULL``h]hNULL}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubh if not.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMDhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_ioctl (C function)c.snd_ctl_register_ioctlhNtauh1hhjYhhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjuhMubj)}(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>uh1jhjchhhjuhMubj@)}(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_register_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?hjchhhjuhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_hhhjuhMubah}(h]jZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhMhj\hhubjb)}(hhh]jg)}(h+register the device-specific control-ioctlsh]h+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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj\hhhjuhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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:54: ./sound/core/control.chMhjubj)}(hhh]j)}(h6``snd_kctl_ioctl_func_t fcn`` ioctl callback function h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hj@h]hsnd_kctl_ioctl_func_t fcn}(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:54: ./sound/core/control.chMhj:ubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj{h]h Description}(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)}(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.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:54: ./sound/core/control.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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_register_ioctl_compat (C function)c.snd_ctl_register_ioctl_compathNtauh1hhjYhhhNhNubh)}(hhh](h)}(h=int snd_ctl_register_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(huh1jhjhhhjhM%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}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jj sbc.snd_ctl_register_ioctl_compatasbuh1hhj ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hfcnh]hfcn}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(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>jSuh1hjTjUhj߭hhhjhM%ubah}(h]jڭah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM%hjܭhhubjb)}(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%hj|hhubah}(h]h ]h"]h$]h&]uh1jahjܭhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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)}(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}(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.chM'hjubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hjٮhhhNhNubah}(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 **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)hjubjg)}(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.chM)hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_unregister_ioctl (C function)c.snd_ctl_unregister_ioctlhNtauh1hhjYhhhNhNubh)}(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}(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.chMIubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhjNhMIubj)}(hsnd_ctl_unregister_ioctlh]j%)}(hsnd_ctl_unregister_ioctlh]hsnd_ctl_unregister_ioctl}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhjNhMIubj@)}(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$hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjcsbc.snd_ctl_unregister_ioctlasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubah}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhjNhMIubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhjNhMIubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNhMIhj5hhubjb)}(hhh]jg)}(h.de-register the device-specific control-ioctlsh]h.de-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.chMIhjկhhubah}(h]h ]h"]h$]h&]uh1jahj5hhhjNhMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.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)}(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.chMJhjubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMJhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMJhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjTh]hReturn}(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.chMLhjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjjhhhNhNubah}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_unregister_ioctl_compat (C function)!c.snd_ctl_unregister_ioctl_compathNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMVubj)}(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>uh1jhjhhhjhMVubj@)}(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)}jjsb!c.snd_ctl_unregister_ioctl_compatasbuh1hhjҰ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?hjhhhjhMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMVubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMVhjhhubjb)}(hhh]jg)}(h;de-register the device-specific compat 32bit control-ioctlsh]h;de-register the device-specific compat 32bit control-ioctls}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMVhj.hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIjjIjjjuh1hhhhjYhNhNubj)}(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)}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMZhjMubj)}(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)}(hjrh]hsnd_kctl_ioctl_func_t fcn}(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:54: ./sound/core/control.chMXhjlubj)}(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&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjiubah}(h]h ]h"]h$]h&]uh1jhjMubjg)}(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.chMZhjMubjg)}(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.chMZhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_request_layer (C function)c.snd_ctl_request_layerhNtauh1hhjYhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_request_layerh]j%)}(hsnd_ctl_request_layerh]hsnd_ctl_request_layer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(const char *module_name)h]jF)}(hconst char *module_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}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+ubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(h module_nameh]h module_name}(hjshhhNhNubah}(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)}(hrequest to use the layerh]hrequest to use the layer}(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&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(hj޲h]hconst char *module_name}(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.chMhjزubj)}(hhh]jg)}(h,Name of the kernel module (NULL == build-in)h]h,Name of the kernel module (NULL == build-in)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjزubeh}(h]h ]h"]h$]h&]uh1jhjhMhjղubah}(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: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}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_layer (C function)c.snd_ctl_register_layerhNtauh1hhjYhhhNhNubh)}(hhh](h)}(huh1jhjZhhhjlhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](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_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 }(hjٳhhhNhNubah}(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?hjZhhhjlhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjlhMubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhMhjShhubjb)}(hhh]jg)}(hregister new control layerh]hregister new control layer}(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&]uh1jahjShhhjlhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhjYhNhNubj)}(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)}(hj@h]h Parameters}(hjBhhhNhNubah}(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.chMhj:ubj)}(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}(hjahhhNhNubah}(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.chMhjYubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjVubah}(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.chMhj:ubjg)}(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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_disconnect_layer (C function)c.snd_ctl_disconnect_layerhNtauh1hhjYhhhNhNubh)}(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&]uh1hhj۴hhhe/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 hj۴hhhjhMubj)}(hsnd_ctl_disconnect_layerh]j%)}(hsnd_ctl_disconnect_layerh]hsnd_ctl_disconnect_layer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj۴hhhjhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](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_layer_opsh]hsnd_ctl_layer_ops}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_disconnect_layerasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlopsh]hlops}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(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)}(hdisconnect control layerh]hdisconnect control layer}(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&]uh1jahjԴhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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}(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.chMhjubj)}(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&]uh1jhj޵ubah}(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)}(hoperation structureh]hoperation structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjڵubeh}(h]h ]h"]h$]h&]uh1jhjhMhj׵ubah}(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)}(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).}(hj1hhhNhNubah}(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&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_ctl_boolean_mono_info (C function)c.snd_ctl_boolean_mono_infohNtauh1hhjYhhhNhNubh)}(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}(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 }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhjnhML ubj)}(hsnd_ctl_boolean_mono_infoh]j%)}(hsnd_ctl_boolean_mono_infoh]hsnd_ctl_boolean_mono_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhjnhML 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 }(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_boolean_mono_infoasbuh1hhjubj)}(h h]h }(hj۶hhhNhNubah}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(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_ctl_boolean_mono_infoasbuh1hhj ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(huinfoh]huinfo}(hjfhhhNhNubah}(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\hhhjnhML ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhjnhML ubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhML hjUhhubjb)}(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&]uh1jahjUhhhjnhML ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMP hjubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol 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.chMN hj˷ubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMN hjubah}(h]h ]h"]h$]h&]uh1jhj˷ubeh}(h]h ]h"]h$]h&]uh1jhjhMN hjȷubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store 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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMO hjubj)}(hhh]jg)}(h info to storeh]h info to store}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMO hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMO hjȷubeh}(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.chMQ hjubjg)}(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.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMQ hjubjg)}(h **Return**h]j)}(hjlh]hReturn}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMT hjubjg)}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_boolean_stereo_info (C function)c.snd_ctl_boolean_stereo_infohNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMb ubj)}(hsnd_ctl_boolean_stereo_infoh]j%)}(hsnd_ctl_boolean_stereo_infoh]hsnd_ctl_boolean_stereo_info}(hjҸhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjθubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMb 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 }(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 reftargetjmodnameN classnameNjj)}j]j)}jjԸsbc.snd_ctl_boolean_stereo_infoasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjGhhhNhNubah}(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&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(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 reftargetjmodnameN classnameNjj)}j]j(c.snd_ctl_boolean_stereo_infoasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(huinfoh]huinfo}(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?hjhhhjhMb ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMb ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMb hjhhubjb)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb hj޹hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMb ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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.chMf hjubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol 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.chMd hjubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMd hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMd hjubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store 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&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMe hjUubj)}(hhh]jg)}(h info to storeh]h info to store}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMe hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMe 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:54: ./sound/core/control.chMg hjubjg)}(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 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:54: ./sound/core/control.chMj hjubjg)}(hZero (always successful)h]hZero (always successful)}(hjӺhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMj hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_enum_info (C function)c.snd_ctl_enum_infohNtauh1hhjYhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMx ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMx ubj)}(hsnd_ctl_enum_infoh]j%)}(hsnd_ctl_enum_infoh]hsnd_ctl_enum_info}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMx 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}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;ubj)}(h h]h }(hjLhhhNhNubah}(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$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jj%sbc.snd_ctl_enum_infoasbuh1hhj;ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(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}(hjͻhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjۻhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hchannelsh]hchannels}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(hunsigned int itemsh](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%)}(hitemsh]hitems}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(hconst char *const names[]h](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&]uh1jhjOubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hnamesh]hnames}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubj)}(h[h]h[}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h]h]h]}(hjμhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMx ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMx ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMx hjhhubjb)}(hhh]jg)}(h2fills the info structure for an enumerated controlh]h2fills the info structure for an enumerated control}(hjhhhNhNubah}(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&]uh1jahjhhhjhMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjYhNhNubj)}(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)}(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_ctl_elem_info *info`` the structure to be filled h](j)}(h"``struct snd_ctl_elem_info *info``h]j)}(hj9h]hstruct snd_ctl_elem_info *info}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMy hj3ubj)}(hhh]jg)}(hthe structure to be filledh]hthe structure to be filled}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhMy hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhMy hj0ubj)}(hJ``unsigned int channels`` the number of the control's channels; often one h](j)}(h``unsigned int channels``h]j)}(hjrh]hunsigned int channels}(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:54: ./sound/core/control.chMz hjlubj)}(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&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhMz hj0ubj)}(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 }(hjĽhhhNhNubj)}(h **names**h]hnames}(hj̽hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjĽubeh}(h]h ]h"]h$]h&]uh1jfhjhM{ hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hj0ubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM| hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM| hj0ubeh}(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)}(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 }(hjChhhNhNubj)}(h**info**h]hinfo}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh to their appropriate values. If the control’s accessibility is not the default (readable and writable), the caller has to fill }(hjChhhNhNubj)}(h**info->access**h]h info->access}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh.}(hjChhhNhNubeh}(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)}(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:54: ./sound/core/control.chM hjubjg)}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYhhhNhNubeh}(h]general-control-interfaceah ]h"]general control interfaceah$]h&]uh1hhjHhhhhhK5ubh)}(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}(hj־hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjҾhhhl/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 hjҾhhhjhMubj)}(hsnd_ac97_writeh]j%)}(hsnd_ac97_writeh]hsnd_ac97_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjҾhhhjhMubj@)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_writeasbuh1hhjubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(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>uh1jEhj ubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjֿhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjҿubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjҿubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjҿubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjҿubj%)}(hvalueh]hvalue}(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ҾhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjξhhhjhMubah}(h]jɾah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj˾hhubjb)}(hhh]jg)}(h#write a value on the given registerh]h#write a value on the given register}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj5hhubah}(h]h ]h"]h$]h&]uh1jahj˾hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjhNhNubj)}(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)}(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.chMhjTubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjyh]hstruct snd_ac97 *ac97}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjsubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjpubj)}(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&]uh1jhjhMhjpubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjpubeh}(h]h ]h"]h$]h&]uh1jhjTubjg)}(h**Description**h]j)}(hj&h]h Description}(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.chM hjTubjg)}(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.}(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.chM hjTubeh}(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}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjyhMubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhjyhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjyhMubj)}(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>uh1jhjghhhjyhMubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_readasbuh1hhjubj)}(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}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hshorth]hshort}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj%)}(hregh]hreg}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjyhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjyhMubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyhMhj`hhubjb)}(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&]uh1jahj`hhhjyhMubeh}(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 instance(h]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)}(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!hj ubj)}(hhh]jg)}(hthe register to readh]hthe register to read}(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)}(hjMh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(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.}(hjchhhNhNubah}(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)}(hjth]hReturn}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(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.chM<ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM<ubj)}(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>uh1jhjhhhjhM<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_write_cacheasbuh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(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 }(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>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)}(h8write a value on the given register and update the cacheh]h8write a value on the given register and update the cache}(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&]jjjj3jj3jjjuh1hhhhjhNhNubj)}(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)}(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.chM@hj7ubj)}(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&]uh1jhjZubah}(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=hjVubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhM=hjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhM=hjSubj)}(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>hjSubj)}(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&]uh1jfhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjSubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(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.chMAhj7ubjg)}(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.}(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.chMAhj7ubeh}(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}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMSubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJhhhj\hMSubj)}(hsnd_ac97_updateh]j%)}(hsnd_ac97_updateh]hsnd_ac97_update}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJhhhj\hMSubj@)}(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)}jjqsbc.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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(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}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hshorth]hshort}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjJhhhj\hMSubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhj\hMSubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hMShjChhubjb)}(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&]uh1jahjChhhj\hMSubeh}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubj)}(h.``unsigned short reg`` the register to change 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.chMUhj$ubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hMUhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hMUhjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjch]hunsigned short value}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhj]ubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMVhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMVhjubeh}(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}(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.chMrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMrubj)}(hsnd_ac97_update_bitsh]j%)}(hsnd_ac97_update_bitsh]hsnd_ac97_update_bits}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMrubj@)}(hV(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j)}jj-sbc.snd_ac97_update_bitsasbuh1hhjCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(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>uh1jEhj?ubjF)}(hunsigned short maskh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hshorth]hshort}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMrubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMrhjhhubjb)}(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&]uh1jahjhhhjhMrubeh}(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)}(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.chMvhjubj)}(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.chMshjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMshjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMshjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hj7h]hunsigned short 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.chMthj1ubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhMthjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhMthjubj)}(h/``unsigned short mask`` the bit-mask to change h](j)}(h``unsigned short mask``h]j)}(hjph]hunsigned short mask}(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.chMuhjjubj)}(hhh]jg)}(hthe bit-mask to changeh]hthe bit-mask to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMuhjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(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&]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)}(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.}(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)}(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.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.}(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.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)}(huh1jhjLhhhj]hMVubj@)}(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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhj]hMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj]hMVubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]hMVhjEhhubjb)}(hhh]jg)}(hretrieve codec nameh]hretrieve codec name}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhj5hhubah}(h]h ]h"]h$]h&]uh1jahjEhhhj]hMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjhNhNubj)}(ht**Parameters** ``struct snd_ac97 *ac97`` the codec instance **Return** The short identifying name of the codec.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.chMZhjTubj)}(hhh]j)}(h-``struct snd_ac97 *ac97`` the codec instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjyh]hstruct snd_ac97 *ac97}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMWhjsubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjpubah}(h]h ]h"]h$]h&]uh1jhjTubjg)}(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.chMYhjTubjg)}(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.chMYhjTubeh}(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}(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)}(h snd_ac97_bush]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_busasbuh1hhj2ubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(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>uh1jEhj.ubjF)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_bus_opsh]hsnd_ac97_bus_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jpc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hopsh]hops}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(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]jpc.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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrbush]hrbus}(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 an AC97 bus componenth]hcreate an AC97 bus component}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj5hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjhNhNubj)}(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)}(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.chMhjTubj)}(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&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjsubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjpubj)}(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&]uh1jhjhMhjpubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjpubj)}(hA``void *private_data`` private data pointer for the new instance h](j)}(h``void *private_data``h]j)}(hj$h]hvoid *private_data}(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.chMhjubj)}(hhh]jg)}(h)private data pointer for the new instanceh]h)private data pointer for the new instance}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjpubj)}(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)}(hj]h]hstruct snd_ac97_bus **rbus}(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.chMhjWubj)}(hhh]jg)}(h/the pointer to store the new AC97 bus instance.h]h/the pointer to store the new AC97 bus instance.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhMhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjpubeh}(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.chMhjTubjg)}(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.chMhjTubjg)}(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.chMhjTubjg)}(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.chMhjTubjg)}(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.chMhjTubjg)}(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.chMhjTubjg)}(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.chMhjTubeh}(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}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?hhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhjQhMubj)}(hsnd_ac97_mixerh]j%)}(hsnd_ac97_mixerh]hsnd_ac97_mixer}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhjQhMubj@)}(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&]uh1jKhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(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)}jjfsbc.snd_ac97_mixerasbuh1hhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hbush]hbus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(h"struct snd_ac97_template *templateh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_templateh]hsnd_ac97_template}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htemplateh]htemplate}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hstruct snd_ac97 **rac97h](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_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhj^ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hrac97h]hrac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj?hhhjQhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj;hhhjQhMubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhMhj8hhubjb)}(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&]uh1jahj8hhhjQhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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)}(hE``struct snd_ac97_bus *bus`` the AC97 bus which codec is attached to h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hj1h]hstruct snd_ac97_bus *bus}(hj3hhhNhNubah}(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.chMhj+ubj)}(hhh]jg)}(h'the AC97 bus which codec is attached toh]h'the AC97 bus which codec is attached to}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhj(ubj)}(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)}(hjjh]h"struct snd_ac97_template *template}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjdubj)}(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&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhMhj(ubj)}(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&]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&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubjg)}(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.chMhj ubjg)}(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).}(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 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.}(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](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}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM| ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjwhM| 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>uh1jhjehhhjwhM| 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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint regh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int poweruph](h)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj%)}(hpoweruph]hpowerup}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhjwhM| ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjwhM| ubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjwhM| hj^hhubjb)}(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&]uh1jahj^hhhjwhM| 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)}(hj h]hint reg}(hjhhhNhNubah}(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~ hjubj)}(hhh]jg)}(h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATEh]h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATE}(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)}(h0``int powerup`` non-zero when power up the part h](j)}(h``int powerup``h]j)}(hjFh]h int powerup}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(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 hj@ubj)}(hhh]jg)}(hnon-zero when power up the parth]hnon-zero when power up the part}(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)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_suspendh]j%)}(hsnd_ac97_suspendh]hsnd_ac97_suspend}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_suspendasbuh1hhj&ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(hac97h]hac97}(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)}(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&]uh1jahjhhhjhM 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}(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&]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.}(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.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}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhl/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 hjjhhhj|hM 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>uh1jhjjhhhj|hM 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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhj|hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhj|hM ubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hM hjchhubjb)}(hhh]jg)}(h&General resume function for AC97 codech]h&General resume function for AC97 codec}(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.chM hj+hhubah}(h]h ]h"]h$]h&]uh1jahjchhhj|hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhjhNhNubj)}(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)}(hjPh]h Parameters}(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 hjJubj)}(hhh]j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjoh]hstruct snd_ac97 *ac97}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(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 hjiubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhM hjfubah}(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&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjJubjg)}(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 hjJubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_tune_hardwareh]j%)}(hsnd_ac97_tune_hardwareh]hsnd_ac97_tune_hardware}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hM(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](jF)}(hstruct snd_ac97 *ac97h](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%)}(hsnd_ac97h]hsnd_ac97}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_tune_hardwareasbuh1hhj(ubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(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]jfc.snd_ac97_tune_hardwareasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hquirkh]hquirk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(hconst char *overrideh](jL)}(hj\h]hconst}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubh)}(hcharh]hchar}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj%ubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(hoverrideh]hoverride}(hjmhhhNhNubah}(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)}(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&]uh1jahjhhhjhM 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)}(hjh]hconst struct ac97_quirk *quirk}(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 hj ubj)}(hhh]jg)}(h quirk listh]h quirk list}(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)}(hO``const char *override`` explicit quirk value (overrides the list if non-NULL) h](j)}(h``const char *override``h]j)}(hjJh]hconst char *override}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(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 hjDubj)}(hhh]jg)}(h5explicit quirk value (overrides the list if non-NULL)h]h5explicit quirk value (overrides the list if non-NULL)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hM hj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(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&]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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_ac97_set_rateh]j%)}(hsnd_ac97_set_rateh]hsnd_ac97_set_rate}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h3(struct snd_ac97 *ac97, int reg, unsigned int rate)h](jF)}(hstruct snd_ac97 *ac97h](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_ac97h]hsnd_ac97}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_set_rateasbuh1hhj*ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubjF)}(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>uh1jEhj&ubjF)}(hunsigned int rateh](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%)}(hrateh]hrate}(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?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h*change the rate of the given input/output.h]h*change the rate of the given input/output.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj4hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhjhNhNubj)}(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)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjSubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjxh]hstruct snd_ac97 *ac97}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjrubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhKhjoubj)}(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&]uh1jhjhKhjoubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubjg)}(h**Description**h]j)}(hj%h]h Description}(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.chKhjSubjg)}(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).}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjSubjg)}(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.}(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.chKhjSubjg)}(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.chKhjSubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjSubeh}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_assignasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short pcms_counth](h)}(hunsignedh]hunsigned}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hshorth]hshort}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(h pcms_counth]h pcms_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(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]jc.snd_ac97_pcm_assignasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmsh]hpcms}(hjhhhNhNubah}(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}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj9hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjhNhNubj)}(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)}(hj^h]h Parameters}(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.chMhjXubj)}(hhh](j)}(h3``struct snd_ac97_bus *bus`` the ac97 bus instance h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hj}h]hstruct snd_ac97_bus *bus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjwubj)}(hhh]jg)}(hthe ac97 bus instanceh]hthe ac97 bus instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMhjtubj)}(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&]uh1jhjhMhjtubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjtubeh}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hj*h]h Description}(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.chMhjXubjg)}(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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjXubjg)}(h **Return**h]j)}(hjQh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjXubjg)}(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&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjXubeh}(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 }(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]j)}jjsbc.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(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)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj%)}(hrateh]hrate}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(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]j c.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcfgh]hcfg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short slotsh](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%)}(hslotsh]hslots}(hj1hhhNhNubah}(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}(hj[hhhNhNubah}(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!hjXhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM!ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjhNhNubj)}(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)}(hj}h]h Parameters}(hjhhhNhNubah}(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.chM%hjwubj)}(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)}(hjh]henum ac97_pcm_cfg cfg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(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)}(houtput stream characteristicsh]houtput stream characteristics}(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)}(hX``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm h](j)}(h``unsigned short slots``h]j)}(hjGh]hunsigned short slots}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(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%hjAubj)}(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}(hj`hhhNhNubah}(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&]uh1jhjwubjg)}(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'hjwubjg)}(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'hjwubjg)}(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)hjwubjg)}(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)hjwubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_pcm_closeh]j%)}(hsnd_ac97_pcm_closeh]hsnd_ac97_pcm_close}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct ac97_pcm *pcm)h]jF)}(hstruct ac97_pcm *pcmh](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%)}(hac97_pcmh]hac97_pcm}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_closeasbuh1hhj'ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hpcmh]hpcm}(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)}(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&]uh1jahjhhhjhMubeh}(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}(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&]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.}(hj@hhhNhNubah}(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)}(hjQh]hReturn}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(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.}(hjghhhNhNubah}(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 }(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)}jjsb c.snd_ac97_pcm_double_rate_rulesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(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?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}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjhNhNubj)}(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)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjrubj)}(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&]uh1jhjrubjg)}(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.chMhjrubjg)}(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.chMhjrubjg)}(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.chMhjrubjg)}(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.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]ac97-codec-apiah ]h"]ac97 codec apiah$]h&]uh1hhjHhhhhhK9ubh)}(hhh](h)}(hVirtual Master Control APIh]hVirtual Master Control API}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hhhhhK>ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_add_followers (C function)c.snd_ctl_add_followershNtauh1hhj-hhhNhNubh)}(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}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjShhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjehMubj)}(hsnd_ctl_add_followersh]j%)}(hsnd_ctl_add_followersh]hsnd_ctl_add_followers}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjehMubj@)}(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)}jjzsbc.snd_ctl_add_followersasbuh1hhjubj)}(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 *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}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]jc.snd_ctl_add_followersasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *const *listh](jL)}(hj\h]hconst}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjShhhjehMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjehMubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjehMhjLhhubjb)}(hhh]jg)}(h!add multiple followers to vmasterh]h!add multiple followers to vmaster}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahjLhhhjehMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1hhhhj-hNhNubj)}(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)}(hj.h]h Parameters}(hj0hhhNhNubah}(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 hj(ubj)}(hhh](j)}(h(``struct snd_card *card`` card instance 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjGubj)}(hhh]jg)}(h card instanceh]h card instance}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjDubj)}(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&]uh1jhjhMhjDubj)}(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&]uh1jhjhMhjDubeh}(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.chM!hj(ubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM!hj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_make_virtual_master (C function)c.snd_ctl_make_virtual_masterhNtauh1hhj-hhhNhNubh)}(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}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjLhMubh)}(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)}jsnd_ctl_make_virtual_mastersbc.snd_ctl_make_virtual_masterasbuh1hhj;hhhjLhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjLhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhjLhMubj)}(hsnd_ctl_make_virtual_masterh]j%)}(hj|h]hsnd_ctl_make_virtual_master}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhjLhMubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst unsigned int *tlvh](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 }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htlvh]htlvg}(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;hhhjLhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjLhMubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhMhj4hhubjb)}(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&]uh1jahj4hhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj-hNhNubj)}(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}(hjhhhNhNubah}(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)}(hjh]hconst unsigned int *tlv}(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)optional TLV int array for dB informationh]h)optional TLV int array for dB 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)}(hj:h]h Description}(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:63: ./sound/core/vmaster.chMhjubjg)}(huh1jhjhhhjhMubj@)}(hZ(struct snd_kcontrol *kcontrol, void (*hook)(void *private_data, int), void *private_data)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.snd_ctl_add_vmaster_hookasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjqhhhNhNubah}(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)}(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}(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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h,h]h,}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(hjh]h)}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(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 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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj-hNhNubj)}(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&]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)}(h7``struct snd_kcontrol *kcontrol`` vmaster kctl element 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:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h<``void (*hook)(void *private_data, int)`` the hook function h](j)}(h)``void (*hook)(void *private_data, int)``h]j)}(hj=h]h%void (*hook)(void *private_data, int)}(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.chMhj7ubj)}(hhh]jg)}(hthe hook functionh]hthe hook function}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjubj)}(h<``void *private_data`` the private_data pointer to be saved h](j)}(h``void *private_data``h]j)}(hjvh]hvoid *private_data}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjpubj)}(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&]uh1jhjpubeh}(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:63: ./sound/core/vmaster.chMhjubjg)}(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.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:63: ./sound/core/vmaster.chMhjubjg)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_sync_vmaster (C function)c.snd_ctl_sync_vmasterhNtauh1hhj-hhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj+hMubj)}(hsnd_ctl_sync_vmasterh]j%)}(hsnd_ctl_sync_vmasterh]hsnd_ctl_sync_vmaster}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj+hMubj@)}(h/(struct snd_kcontrol *kcontrol, bool hook_only)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj@sbc.snd_ctl_sync_vmasterasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hbool hook_onlyh](h)}(hjh]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>uh1jEhjRubeh}(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#Sync the vmaster followers and hookh]h#Sync the vmaster followers and hook}(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&]jjjj)jj)jjjuh1hhhhj-hNhNubj)}(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)}(hj3h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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)}(hjRh]hstruct snd_kcontrol *kcontrol}(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:63: ./sound/core/vmaster.chMhjLubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghMhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghMhjIubj)}(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&]uh1jhjhMhjIubeh}(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)}(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.chMhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_apply_vmaster_followers (C function)!c.snd_ctl_apply_vmaster_followershNtauh1hhj-hhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj+hMubj)}(hsnd_ctl_apply_vmaster_followersh]j%)}(hsnd_ctl_apply_vmaster_followersh]hsnd_ctl_apply_vmaster_followers}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj+hMubj@)}(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}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj@sb!c.snd_ctl_apply_vmaster_followersasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h vfollowerh]h vfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hj0h]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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hj0h]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hvoidh]hvoid}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(h void *argh](h)}(hvoidh]hvoid}(hjyhhhNhNubah}(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%)}(hargh]harg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(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 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&]uh1jahjhhhj+hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj-hNhNubj)}(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)}(hj h]hstruct snd_kcontrol *kctl}(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:63: ./sound/core/vmaster.chM hjubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(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)}(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)}(hjFh]hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hj@ubj)}(hhh]jg)}(hfunction to applyh]hfunction to apply}(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)``void *arg`` optional function argument h](j)}(h ``void *arg``h]j)}(hjh]h void *arg}(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:63: ./sound/core/vmaster.chM hjyubj)}(hhh]jg)}(hoptional function argumenth]hoptional function argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(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: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}(hj hhhNhNubah}(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&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_find_id_mixer (C function)c.snd_ctl_find_id_mixerhNtauh1hhj-hhhNhNubh)}(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}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhjEhKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jsnd_ctl_find_id_mixersbc.snd_ctl_find_id_mixerasbuh1hhj4hhhjEhKubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhjEhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhjEhKubj)}(hsnd_ctl_find_id_mixerh]j%)}(hjuh]hsnd_ctl_find_id_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhjEhKubj@)}(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]jsc.snd_ctl_find_id_mixerasbuh1hhjubj)}(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)}(hconst char *nameh](jL)}(hj\h]hconst}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4hhhjEhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhjEhKubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhKhj-hhubjb)}(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&]uh1jahj-hhhjEhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj-hNhNubj)}(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)}(hj h]hconst char *name}(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:64: ./include/sound/control.hhKhjubj)}(hhh]jg)}(hthe name stringh]hthe name string}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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&]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 }(hj[hhhNhNubj)}(h**SNDRV_CTL_ELEM_IFACE_MIXER**h]hSNDRV_CTL_ELEM_IFACE_MIXER}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh. Other fields are set to zero.}(hj[hhhNhNubeh}(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().}(hj|hhhNhNubah}(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&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_add_follower (C function)c.snd_ctl_add_followerhNtauh1hhj-hhhNhNubh)}(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&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_ctl_add_followerh]j%)}(hsnd_ctl_add_followerh]hsnd_ctl_add_follower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jF)}(hstruct snd_kcontrol *masterh](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_ctl_add_followerasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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]j[c.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>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)}(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.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhj-hNhNubj)}(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)}(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:64: ./include/sound/control.hhKhj0ubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hjUh]hstruct snd_kcontrol *master}(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:64: ./include/sound/control.hhKhjOubj)}(hhh]jg)}(hvmaster elementh]hvmaster element}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjLubj)}(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&]uh1jhjhKhjLubeh}(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:64: ./include/sound/control.hhKhj0ubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj0ubjg)}(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.hhKhj0ubjg)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj0ubjg)}(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:64: ./include/sound/control.hhKhj0ubjg)}(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:64: ./include/sound/control.hhKhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj-hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_add_follower_uncached (C function)c.snd_ctl_add_follower_uncachedhNtauh1hhj-hhhNhNubh)}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjahM ubj)}(hsnd_ctl_add_follower_uncachedh]j%)}(hsnd_ctl_add_follower_uncachedh]hsnd_ctl_add_follower_uncached}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjahM ubj@)}(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)}jjvsbc.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}(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]jc.snd_ctl_add_follower_uncachedasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(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)}(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&]uh1jahjHhhhjahM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj-hNhNubj)}(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)}(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.hhM hjubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(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)}(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: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.}(hjNhhhNhNubah}(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.}(hj]hhhNhNubah}(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)}(hjnh]hReturn}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(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&]uh1jhj-hhhNhNubeh}(h]virtual-master-control-apiah ]h"]virtual master control apiah$]h&]uh1hhjHhhhhhK>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&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMnubj)}(hsnd_rawmidi_receiveh]j%)}(hsnd_rawmidi_receiveh]hsnd_rawmidi_receive}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMnubj@)}(hQ(struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_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_rawmidi_substreamh]hsnd_rawmidi_substream}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_receiveasbuh1hhjubj)}(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>uh1jEhjubjF)}(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 }(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>uh1jEhjubjF)}(h int counth](h)}(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}(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?hjhhhjhMnubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMnubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMnhjhhubjb)}(hhh]jg)}(h&receive the input data from the deviceh]h&receive the input data from the device}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnhjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhjhNhNubj)}(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)}(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:71: ./sound/core/rawmidi.chMrhjoubj)}(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.chMohjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMohjubj)}(h3``const unsigned char *buffer`` the buffer pointer h](j)}(h``const unsigned char *buffer``h]j)}(hjh]hconst unsigned 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.chMphjubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMphjubj)}(h$``int count`` the data size to read 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.chMqhjubj)}(hhh]jg)}(hthe data size to readh]hthe data size to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjubeh}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h**Description**h]j)}(hjAh]h Description}(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:71: ./sound/core/rawmidi.chMshjoubjg)}(h(Reads the data from the internal buffer.h]h(Reads the data from the internal buffer.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshjoubjg)}(h **Return**h]j)}(hjhh]hReturn}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.cQhMuhjoubjg)}(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.chMuhjoubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/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 hjhhhjhM.ubj)}(hsnd_rawmidi_transmit_emptyh]j%)}(hsnd_rawmidi_transmit_emptyh]hsnd_rawmidi_transmit_empty}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM.ubj@)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_transmit_emptyasbuh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjChhhNhNubah}(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(check whether the output buffer is emptyh]h(check whether the output buffer is empty}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM.hjjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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.chM2hjubj)}(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.chM/hjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hjubjg)}(h31 if the internal output buffer is empty, 0 if not.h]h31 if the internal output buffer is empty, 0 if not.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hjubeh}(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}(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.chMxubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj<hMxubj)}(hsnd_rawmidi_transmit_peekh]j%)}(hsnd_rawmidi_transmit_peekh]hsnd_rawmidi_transmit_peek}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj<hMxubj@)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(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)}jjQsbc.snd_rawmidi_transmit_peekasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(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}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(h int counth](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hcounth]hcount}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj*hhhj<hMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&hhhj<hMxubah}(h]j!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj<hMxhj#hhubjb)}(hhh]jg)}(h"copy data from the internal bufferh]h"copy data from the internal buffer}(hjhhhNhNubah}(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&]uh1jahj#hhhj<hMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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)}(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.chMyhjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMyhjubj)}(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.chMzhjubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubj)}(h$``int count`` data size to transfer h](j)}(h ``int count``h]j)}(hj4h]h int count}(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:71: ./sound/core/rawmidi.chM{hj.ubj)}(hhh]jg)}(hdata size to transferh]hdata size to transfer}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM{hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM{hjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM}hjubjg)}(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}hjubjg)}(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.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)}(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.chMhjubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_rawmidi_transmit_ackh]j%)}(hsnd_rawmidi_transmit_ackh]hsnd_rawmidi_transmit_ack}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h4(struct snd_rawmidi_substream *substream, 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 }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sbc.snd_rawmidi_transmit_ackasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjshhhNhNubah}(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>uh1jEhjubjF)}(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>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)}(hacknowledge the transmissionh]hacknowledge the transmission}(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)}(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&]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)}(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.chMhj ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5 hMhj6 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj5 hMhj ubj)}(h$``int count`` the transferred count h](j)}(h ``int count``h]j)}(hjY h]h int count}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjS ubj)}(hhh]jg)}(hthe transferred counth]hthe transferred count}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjn hMhjo ubah}(h]h ]h"]h$]h&]uh1jhjS ubeh}(h]h ]h"]h$]h&]uh1jhjn hMhj 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:71: ./sound/core/rawmidi.chMhjubjg)}(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.}(hj hhhNhNubah}(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)}(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.chMhjubjg)}(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.}(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](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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubj)}(hsnd_rawmidi_transmith]j%)}(hsnd_rawmidi_transmith]hsnd_rawmidi_transmit}(hj! hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj 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&]uh1jKhj9 ubj)}(h h]h }(hjJ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9 ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj[ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjX ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj] modnameN classnameNjj)}j]j)}jj# sbc.snd_rawmidi_transmitasbuh1hhj9 ubj)}(h h]h }(hj{ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9 ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9 ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5 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 }(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>uh1jEhj5 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>uh1jEhj5 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"copy from the buffer to the deviceh]h"copy from the buffer to the device}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjP hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjk jjk jjjuh1hhhhjhNhNubj)}(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)}(hju h]h Parameters}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjo 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.chMhj ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi 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 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.chMhj ubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer 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 count`` the 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.chMhj ubj)}(hhh]jg)}(hthe data size to transferh]hthe data size to transfer}(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&]uh1jhjo ubjg)}(h**Description**h]j)}(hjA h]h Description}(hjC 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.chMhjo ubjg)}(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.}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjo ubjg)}(h **Return**h]j)}(hjh h]hReturn}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjo ubjg)}(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.}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjo ubeh}(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}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubj)}(hsnd_rawmidi_proceedh]j%)}(hsnd_rawmidi_proceedh]hsnd_rawmidi_proceed}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hMubj@)}(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}(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_proceedasbuh1hhj ubj)}(h h]h }(hj( hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj6 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hjC 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)Discard the all pending bytes and proceedh]h)Discard the all pending bytes and proceed}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjj hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hz**Parameters** ``struct snd_rawmidi_substream *substream`` rawmidi substream **Return** the number of discarded bytesh](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)}(h>``struct snd_rawmidi_substream *substream`` 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.chMhj ubj)}(hhh]jg)}(hrawmidi substreamh]hrawmidi 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)}(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.chMhj ubjg)}(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.chMhj ubeh}(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}(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.chMPubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj<hMPubj)}(hsnd_rawmidi_newh]j%)}(hsnd_rawmidi_newh]hsnd_rawmidi_new}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj<hMPubj@)}(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}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjQsbc.snd_rawmidi_newasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(h int deviceh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hdeviceh]hdevice}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(hint output_counth](h)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(h output_counth]h output_count}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubjF)}(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>uh1jEhjcubjF)}(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 }(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%)}(hrrawmidih]hrrawmidi}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj*hhhj<hMPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&hhhj<hMPubah}(h]j!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj<hMPhj#hhubjb)}(hhh]jg)}(hcreate a rawmidi instanceh]hcreate a rawmidi instance}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPhjIhhubah}(h]h ]h"]h$]h&]uh1jahj#hhhj<hMPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhjhNhNubj)}(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)}(hjnh]h Parameters}(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:71: ./sound/core/rawmidi.chMThjhubj)}(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}(hjhhhNhNubah}(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)}(hjh]h int device}(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.chMShjubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMShjubj)}(h2``int output_count`` the number of output streams h](j)}(h``int output_count``h]j)}(hj8h]hint output_count}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMThj2ubj)}(hhh]jg)}(hthe number of output streamsh]hthe number of output streams}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMThjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMThjubj)}(h0``int input_count`` the number of input streams h](j)}(h``int input_count``h]j)}(hjqh]hint input_count}(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:71: ./sound/core/rawmidi.chMUhjkubj)}(hhh]jg)}(hthe number of input streamsh]hthe number of input streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(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&]uh1jhjhubjg)}(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.chMXhjhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMXhjhubjg)}(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:71: ./sound/core/rawmidi.chM[hjhubjg)}(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:71: ./sound/core/rawmidi.chM[hjhubeh}(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}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM&ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhj_hM&ubj)}(hsnd_rawmidi_set_opsh]j%)}(hsnd_rawmidi_set_opsh]hsnd_rawmidi_set_ops}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj_hM&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)}jjtsbc.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}(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!const struct snd_rawmidi_ops *opsh](jL)}(hj\h]hconst}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubjL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hsnd_rawmidi_opsh]hsnd_rawmidi_ops}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jc.snd_rawmidi_set_opsasbuh1hhj1ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hopsh]hops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjMhhhj_hM&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhj_hM&ubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_hM&hjFhhubjb)}(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&]uh1jahjFhhhj_hM&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)}(hjh]hstruct snd_rawmidi *rmidi}(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'hj ubj)}(hhh]jg)}(hthe rawmidi instanceh]hthe rawmidi 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 stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX h](j)}(h``int stream``h]j)}(hjKh]h int stream}(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:71: ./sound/core/rawmidi.chM(hjEubj)}(hhh]jg)}(h.the stream direction, SNDRV_RAWMIDI_STREAM_XXXh]h.the stream direction, SNDRV_RAWMIDI_STREAM_XXX}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hM(hjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hM(hj ubj)}(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)hj~ubj)}(hhh]jg)}(hthe operator tableh]hthe operator table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(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: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}(hjhhhNhNubah}(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)}(hh]hsnd_mpu401_uart_interrupt}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjAhKqubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubjF)}(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>uh1jEhjgubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjAhKqubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjAhKqubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhKqhjhhubjb)}(hhh]jg)}(h%generic MPU401-UART interrupt handlerh]h%generic MPU401-UART interrupt handler}(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.chKqhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjAhKqubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(hjh]h Parameters}(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.chKuhjubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hj8h]hint irq}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKrhj2ubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhKrhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhKrhj/ubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjqh]h void *dev_id}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKshjkubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKshjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhKshj/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&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKuhjubjg)}(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.chKuhjubjg)}(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.chKwhjubjg)}(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}(hjhhhNhNubah}(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.chKwhjubeh}(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}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jsnd_mpu401_uart_interrupt_txsbc.snd_mpu401_uart_interrupt_txasbuh1hhj4hhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4hhhj\hKubj)}(hsnd_mpu401_uart_interrupt_txh]j%)}(hjYh]hsnd_mpu401_uart_interrupt_tx}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4hhhj\hKubj@)}(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?hj4hhhj\hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhj\hKubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hKhj-hhubjb)}(hhh]jg)}(h(generic MPU401-UART transmit irq handlerh]h(generic MPU401-UART transmit irq handler}(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.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahj-hhhj\hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhjhNhNubj)}(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)}(hj4h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhj.ubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hjSh]hint irq}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjMubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjJubj)}(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&]uh1jhjhKhjJubeh}(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.chKhj.ubjg)}(h/Processes the interrupt for MPU401-UART output.h]h/Processes the interrupt for MPU401-UART output.}(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.chKhj.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.chKhj.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}(hjhhhNhNubah}(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.chKhj.ubeh}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjahMubj)}(hsnd_mpu401_uart_newh]j%)}(hsnd_mpu401_uart_newh]hsnd_mpu401_uart_new}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjahMubj@)}(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}(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)}jjvsbc.snd_mpu401_uart_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)}(h int deviceh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short hardwareh](h)}(hunsignedh]hunsigned}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hshorth]hshort}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj%)}(hhardwareh]hhardware}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long porth](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%)}(hporth]hport}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int info_flagsh](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%)}(h info_flagsh]h info_flags}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint irqh](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj%)}(hirqh]hirq}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_rawmidi **rrawmidih](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%)}(h snd_rawmidih]h snd_rawmidi}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_mpu401_uart_newasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hrrawmidih]hrrawmidi}(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?hjOhhhjahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjahMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhjHhhubjb)}(hhh]jg)}(hcreate an MPU401-UART instanceh]hcreate an MPU401-UART instance}(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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(hjh]h Parameters}(hjhhhNhNubah}(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.chMhj 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}(hj0hhhNhNubah}(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 card instanceh]hthe card instance}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhj%ubj)}(h,``int device`` the device index, zero-based h](j)}(h``int device``h]j)}(hjgh]h int device}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjaubj)}(hhh]jg)}(hthe device index, zero-basedh]hthe device index, zero-based}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhj%ubj)}(h>``unsigned short hardware`` the hardware type, MPU401_HW_XXXX h](j)}(h``unsigned short hardware``h]j)}(hjh]hunsigned short hardware}(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.chMhjubj)}(hhh]jg)}(h!the hardware type, MPU401_HW_XXXXh]h!the hardware type, MPU401_HW_XXXX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubj)}(h7``unsigned long port`` the base address of MPU401 port h](j)}(h``unsigned long port``h]j)}(hjh]hunsigned long port}(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.chMhjubj)}(hhh]jg)}(hthe base address of MPU401 porth]hthe base address of MPU401 port}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubj)}(h5``unsigned int info_flags`` bitflags MPU401_INFO_XXX h](j)}(h``unsigned int info_flags``h]j)}(hjh]hunsigned int info_flags}(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.chMhj ubj)}(hhh]jg)}(hbitflags MPU401_INFO_XXXh]hbitflags MPU401_INFO_XXX}(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 irq`` the ISA irq number, -1 if not to be allocated h](j)}(h ``int irq``h]j)}(hjKh]hint irq}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjEubj)}(hhh]jg)}(h-the ISA irq number, -1 if not to be allocatedh]h-the ISA irq number, -1 if not to be allocated}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMhjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hMhj%ubj)}(hQ``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&]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}(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&]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.chMhj ubjg)}(hCreates a new MPU-401 instance.h]hCreates a new MPU-401 instance.}(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.chMhj 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).}(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.chMhj 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.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&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj 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}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhKNubh)}(hhh](h)}(hProc Info Interfaceh]hProc Info Interface}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhhhhhKQubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_line (C function)c.snd_info_get_linehNtauh1hhjBhhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhhjzhM@ubj)}(hsnd_info_get_lineh]j%)}(hsnd_info_get_lineh]hsnd_info_get_line}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhhjzhM@ubj@)}(h5(struct snd_info_buffer *buffer, char *line, int len)h](jF)}(hstruct snd_info_buffer *bufferh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_info_get_lineasbuh1hhjubj)}(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>uh1jEhjubjF)}(h char *lineh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlineh]hline}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint lenh](h)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hlenh]hlen}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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)}(h$read one line from the procfs bufferh]h$read one line from the procfs buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@hjhhubah}(h]h ]h"]h$]h&]uh1jahjahhhjzhM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(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:82: ./sound/core/info.chMDhjubj)}(hhh](j)}(h5``struct snd_info_buffer *buffer`` the procfs buffer h](j)}(h"``struct snd_info_buffer *buffer``h]j)}(hjh]hstruct snd_info_buffer *buffer}(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:82: ./sound/core/info.chMAhjubj)}(hhh]jg)}(hthe procfs bufferh]hthe procfs buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMAhjubj)}(h#``char *line`` the buffer to store h](j)}(h``char *line``h]j)}(hj h]h char *line}(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.chMBhj ubj)}(hhh]jg)}(hthe buffer to storeh]hthe buffer to store}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2 hMBhj3 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj2 hMBhjubj)}(h!``int len`` the max. buffer size h](j)}(h ``int len``h]j)}(hjV h]hint len}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChjP ubj)}(hhh]jg)}(hthe max. buffer sizeh]hthe max. buffer size}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk hMChjl ubah}(h]h ]h"]h$]h&]uh1jhjP ubeh}(h]h ]h"]h$]h&]uh1jhjk hMChjubeh}(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&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhjubjg)}(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.chMEhjubjg)}(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.chMGhjubjg)}(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.chMGhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_str (C function)c.snd_info_get_strhNtauh1hhjBhhhNhNubh)}(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.chMdubj)}(h h]h }(hj !hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj !hMdubh)}(hcharh]hchar}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhj !hMdubj)}(h h]h }(hj'!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj !hMdubj)}(hjh]h*}(hj5!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj !hMdubj)}(hsnd_info_get_strh]j%)}(hsnd_info_get_strh]hsnd_info_get_str}(hjF!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj !hMdubj@)}(h&(char *dest, const char *src, int len)h](jF)}(h char *desth](h)}(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%)}(hdesth]hdest}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZ!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>uh1jEhjZ!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>uh1jEhjZ!ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj !hMdubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj !hMdubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj !hMdhj hhubjb)}(hhh]jg)}(hparse a string tokenh]hparse a string token}(hjG"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMdhjD"hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj !hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_"jj_"jjjuh1hhhhjBhNhNubj)}(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)}(hji"h]h Parameters}(hjk"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg"ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhjc"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&]uh1jfhj#hMghj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj#hMghj"ubeh}(h]h ]h"]h$]h&]uh1jhjc"ubjg)}(h**Description**h]j)}(hj5#h]h Description}(hj7#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihjc"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.}(hjK#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihjc"ubjg)}(h **Return**h]j)}(hj\#h]hReturn}(hj^#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhjc"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.}(hjr#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhjc"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_info_create_module_entry (C function)c.snd_info_create_module_entryhNtauh1hhjBhhhNhNubh)}(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}(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}(hj9$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;$modnameN classnameNjj)}j]j#c.snd_info_create_module_entryasbuh1hhj$ubj)}(h h]h }(hjW$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hje$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hmoduleh]hmodule}(hjr$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$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}(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_module_entryasbuh1hhj$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%)}(hparenth]hparent}(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)create an info entry for the given moduleh]h)create an info entry for the given module}(hji%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjf%hhubah}(h]h ]h"]h$]h&]uh1jahj#hhhj#hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhjBhNhNubj)}(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)}(hj&h]hstruct snd_info_entry *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:82: ./sound/core/info.chMhj&ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hj5&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1&hMhj2&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj1&hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubjg)}(h**Description**h]j)}(hjW&h]h Description}(hjY&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU&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}(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_cardh]hsnd_card}(hjm'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjo'modnameN classnameNjj)}j]j'c.snd_info_create_card_entryasbuh1hhjK'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%)}(hcardh]hcard}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjK'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjG'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>uh1jEhjG'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}(hj:(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<(modnameN classnameNjj)}j]j'c.snd_info_create_card_entryasbuh1hhj(ubj)}(h h]h }(hjX(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hjf(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hparenth]hparent}(hjs(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjG'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(jjjuh1hhhhjBhNhNubj)}(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)}(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:82: ./sound/core/info.chMhj(ubj)}(hhh]jg)}(hthe card instanceh]hthe card 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(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}(hj0)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,)hMhj-)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj,)hMhj(ubj)}(h8``struct snd_info_entry * parent`` the parent directory h](j)}(h"``struct snd_info_entry * parent``h]j)}(hjP)h]hstruct snd_info_entry * parent}(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:82: ./sound/core/info.chMhjJ)ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hji)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhje)hMhjf)ubah}(h]h ]h"]h$]h&]uh1jhjJ)ubeh}(h]h ]h"]h$]h&]uh1jhje)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)}(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.}(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(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.chMhj(ubjg)}(h8The pointer of the new instance, or ``NULL`` on failure.h](h$The pointer of the new instance, or }(hj)hhhNhNubj)}(h``NULL``h]hNULL}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh on failure.}(hj)hhhNhNubeh}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_info_free_entry (C function)c.snd_info_free_entryhNtauh1hhjBhhhNhNubh)}(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}(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.chMubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*hhhj*hMubj)}(hsnd_info_free_entryh]j%)}(hsnd_info_free_entryh]hsnd_info_free_entry}(hj**hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*hhhj*hMubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](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)}jj,*sbc.snd_info_free_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%)}(hentryh]hentry}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB*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)}(hrelease the info entryh]hrelease the info entry}(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*jjjuh1hhhhjBhNhNubj)}(hm**Parameters** ``struct snd_info_entry * entry`` the info entry **Description** Releases the info entry.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)}(h1``struct snd_info_entry * entry`` the info entry h](j)}(h!``struct snd_info_entry * entry``h]j)}(hj +h]hstruct snd_info_entry * entry}(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 info entryh]hthe info entry}(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)}(hjE+h]h Description}(hjG+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC+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)}(hReleases the info entry.h]hReleases the info entry.}(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*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_register (C function)c.snd_info_registerhNtauh1hhjBhhhNhNubh)}(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}(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.chM$ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+hhhj+hM$ubj)}(hsnd_info_registerh]j%)}(hsnd_info_registerh]hsnd_info_register}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+hhhj+hM$ubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](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}(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_registerasbuh1hhj+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%)}(hentryh]hentry}(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+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)}(hregister the info entryh]hregister the info entry}(hjJ,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$hjG,hhubah}(h]h ]h"]h$]h&]uh1jahj+hhhj+hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjb,jjb,jjjuh1hhhhjBhNhNubj)}(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)}(hjl,h]h Parameters}(hjn,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj,ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM(hjf,ubj)}(hhh]j)}(h0``struct snd_info_entry *entry`` the info entry h](j)}(h ``struct snd_info_entry *entry``h]j)}(hj,h]hstruct snd_info_entry *entry}(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.chM%hj,ubj)}(hhh]jg)}(hthe info entryh]hthe info entry}(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&]uh1jhjf,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.chM'hjf,ubjg)}(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.}(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'hjf,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.chM*hjf,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&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM*hjf,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_rw_proc_new (C function)c.snd_card_rw_proc_newhNtauh1hhjBhhhNhNubh)}(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}(hj2-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.-hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBubj)}(h h]h }(hjA-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.-hhhj@-hMBubj)}(hsnd_card_rw_proc_newh]j%)}(hsnd_card_rw_proc_newh]hsnd_card_rw_proc_new}(hjS-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj.-hhhj@-hMBubj@)}(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}(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_cardh]hsnd_card}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jjU-sbc.snd_card_rw_proc_newasbuh1hhjk-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%)}(hcardh]hcard}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjk-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjg-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>uh1jEhjg-ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj>.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:.ubj)}(h h]h }(hjL.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:.ubj)}(hjh]h*}(hjZ.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:.ubj%)}(h private_datah]h private_data}(hjg.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjg-ubjF)}(h=void (*read)(struct snd_info_entry*, struct snd_info_buffer*)h](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)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|.ubj%)}(hreadh]hread}(hj.hhhNhNubah}(h]h ]j1ah"]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|.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_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-c.snd_card_rw_proc_newasbuh1hhj|.ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|.ubj)}(hj0h]h,}(hj'/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|.ubj)}(h h]h }(hj4/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|.ubjL)}(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_info_bufferh]hsnd_info_buffer}(hj`/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb/modnameN classnameNjj)}j]j-c.snd_card_rw_proc_newasbuh1hhj|.ubj)}(hjh]h*}(hj~/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|.ubj)}(hjh]h)}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjg-ubjF)}(hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)h](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)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hwriteh]hwrite}(hj/hhhNhNubah}(h]h ]j1ah"]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/ubjL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!0modnameN classnameNjj)}j]j-c.snd_card_rw_proc_newasbuh1hhj/ubj)}(h h]h }(hj=0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hjK0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hentryh]hentry}(hjX0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubj)}(hj0h]h,}(hjf0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hjs0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubjL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j-c.snd_card_rw_proc_newasbuh1hhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hbufferh]hbuffer}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubj)}(hjh]h)}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjg-ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj.-hhhj@-hMBubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj*-hhhj@-hMBubah}(h]j%-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@-hMBhj'-hhubjb)}(hhh]jg)}(h5Create a read/write text proc file entry for the cardh]h5Create a read/write text proc file entry for the card}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhj 1hhubah}(h]h ]h"]h$]h&]uh1jahj'-hhhj@-hMBubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'1jj'1jjjuh1hhhhjBhNhNubj)}(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)}(hj11h]h Parameters}(hj31hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/1ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj+1ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjP1h]hstruct snd_card *card}(hjR1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN1ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChjJ1ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hji1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhje1hMChjf1ubah}(h]h ]h"]h$]h&]uh1jhjJ1ubeh}(h]h ]h"]h$]h&]uh1jhje1hMChjG1ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj1h]hconst char *name}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj1ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMDhj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMDhjG1ubj)}(h2``void *private_data`` the arbitrary private data h](j)}(h``void *private_data``h]j)}(hj1h]hvoid *private_data}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj1ubj)}(hhh]jg)}(hthe arbitrary private datah]hthe arbitrary private data}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMEhj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMEhjG1ubj)}(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)}(hj1h]h?void (*read)(struct snd_info_entry *, struct snd_info_buffer *)}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj1ubj)}(hhh]jg)}(hthe read callbackh]hthe read callback}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMFhj2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj2hMFhjG1ubj)}(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)}(hj42h]hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)}(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.chMGhj.2ubj)}(hhh]jg)}(h&the write callback, NULL for read-onlyh]h&the write callback, NULL for read-only}(hjM2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI2hMGhjJ2ubah}(h]h ]h"]h$]h&]uh1jhj.2ubeh}(h]h ]h"]h$]h&]uh1jhjI2hMGhjG1ubeh}(h]h ]h"]h$]h&]uh1jhj+1ubjg)}(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.chMIhj+1ubjg)}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhj+1ubjg)}(h **Return**h]j)}(hj2h]hReturn}(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.chMLhj+1ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMLhj+1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubeh}(h]proc-info-interfaceah ]h"]proc info interfaceah$]h&]uh1hhj1hhhhhKQubeh}(h] proc-info-apiah ]h"] proc info apiah$]h&]uh1hhhhhhhhKNubh)}(hhh](h)}(hCompress Offloadh]hCompress Offload}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hhhhhKUubh)}(hhh](h)}(hCompress Offload APIh]hCompress Offload API}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hhhhhKXubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_stop_error (C function)c.snd_compr_stop_errorhNtauh1hhj2hhhNhNubh)}(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}(hj 3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj 3hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 3hhhj3hMMubj)}(hsnd_compr_stop_errorh]j%)}(hsnd_compr_stop_errorh]hsnd_compr_stop_error}(hj.3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj 3hhhj3hMMubj@)}(h8(struct snd_compr_stream *stream, snd_pcm_state_t state)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjJ3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjF3ubj)}(h h]h }(hjW3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjF3ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjh3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hje3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjj3modnameN classnameNjj)}j]j)}jj03sbc.snd_compr_stop_errorasbuh1hhjF3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjF3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF3ubj%)}(hstreamh]hstream}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjB3ubjF)}(hsnd_pcm_state_t stateh](h)}(hhh]j%)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j3c.snd_compr_stop_errorasbuh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj%)}(hstateh]hstate}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjB3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj 3hhhj3hMMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj3hMMubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hMMhj3hhubjb)}(hhh]jg)}(h Report a fatal error on a streamh]h Report a fatal error on a stream}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMMhj4hhubah}(h]h ]h"]h$]h&]uh1jahj3hhhj3hMMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-4jj-4jjjuh1hhhhj2hNhNubj)}(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)}(hj74h]h Parameters}(hj94hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj54ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj14ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjV4h]hstruct snd_compr_stream *stream}(hjX4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT4ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMNhjP4ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hjo4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk4hMNhjl4ubah}(h]h ]h"]h$]h&]uh1jhjP4ubeh}(h]h ]h"]h$]h&]uh1jhjk4hMNhjM4ubj)}(h<``snd_pcm_state_t state`` state to transition the stream to h](j)}(h``snd_pcm_state_t state``h]j)}(hj4h]hsnd_pcm_state_t state}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMOhj4ubj)}(hhh]jg)}(h!state to transition the stream toh]h!state to transition the stream to}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMOhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMOhjM4ubeh}(h]h ]h"]h$]h&]uh1jhj14ubjg)}(h**Description**h]j)}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj14ubjg)}(h"Stop the stream and set its state.h]h"Stop the stream and set its state.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj14ubjg)}(h2Should be called with compressed device lock held.h]h2Should be called with compressed device lock held.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMShj14ubjg)}(h **Return**h]j)}(hj5h]hReturn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMUhj14ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMUhj14ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_compr_task_finished (C function)c.snd_compr_task_finishedhNtauh1hhj2hhhNhNubh)}(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}(hjE5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjA5hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hjT5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjA5hhhjS5hMubj)}(hsnd_compr_task_finishedh]j%)}(hsnd_compr_task_finishedh]hsnd_compr_task_finished}(hjf5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjA5hhhjS5hMubj@)}(hF(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~5ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjh5sbc.snd_compr_task_finishedasbuh1hhj~5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~5ubj%)}(hstreamh]hstream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjz5ubjF)}(h#struct snd_compr_task_runtime *taskh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_compr_task_runtimeh]hsnd_compr_task_runtime}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j5c.snd_compr_task_finishedasbuh1hhj5ubj)}(h h]h }(hj06hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj>6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(htaskh]htask}(hjK6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjz5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjA5hhhjS5hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=5hhhjS5hMubah}(h]j85ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjS5hMhj:5hhubjb)}(hhh]jg)}(h!Notify that the task was finishedh]h!Notify that the task was finished}(hju6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjr6hhubah}(h]h ]h"]h$]h&]uh1jahj:5hhhjS5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj2hNhNubj)}(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)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj6ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj6h]hstruct snd_compr_stream *stream}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj6ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhj6ubj)}(h?``struct snd_compr_task_runtime *task`` runtime task structure h](j)}(h'``struct snd_compr_task_runtime *task``h]j)}(hj6h]h#struct snd_compr_task_runtime *task}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj6ubj)}(hhh]jg)}(hruntime task structureh]hruntime task structure}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hj*7h]h Description}(hj,7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(7ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj6ubjg)}(h/Set the finished task state and notify waiters.h]h/Set the finished task state and notify waiters.}(hj@7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compress_new (C function)c.snd_compress_newhNtauh1hhj2hhhNhNubh)}(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}(hjo7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjk7hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hj~7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjk7hhhj}7hMubj)}(hsnd_compress_newh]j%)}(hsnd_compress_newh]hsnd_compress_new}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjk7hhhj}7hMubj@)}(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}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jj7sbc.snd_compress_newasbuh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hcardh]hcard}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(h int deviceh](h)}(hinth]hint}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hj,8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj%)}(hdeviceh]hdevice}(hj:8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(hint dirnh](h)}(hinth]hint}(hjS8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjO8ubj)}(h h]h }(hja8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO8ubj%)}(hdirnh]hdirn}(hjo8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hcharh]hchar}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hidh]hid}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubjF)}(hstruct snd_compr *comprh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(h snd_comprh]h snd_compr}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]j7c.snd_compress_newasbuh1hhj8ubj)}(h h]h }(hj!9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj/9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hcomprh]hcompr}(hj<9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjk7hhhj}7hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjg7hhhj}7hMubah}(h]jb7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj}7hMhjd7hhubjb)}(hhh]jg)}(hcreate new compress deviceh]hcreate new compress device}(hjf9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjc9hhubah}(h]h ]h"]h$]h&]uh1jahjd7hhhj}7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~9jj~9jjjuh1hhhhj2hNhNubj)}(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)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj9ubj)}(hhh](j)}(h-``struct snd_card *card`` sound card pointer 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&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj9ubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubj)}(h``int device`` device number h](j)}(h``int device``h]j)}(hj9h]h int device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj9ubj)}(hhh]jg)}(h device numberh]h device number}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubj)}(hJ``int dirn`` device direction, should be of type enum snd_compr_direction h](j)}(h ``int dirn``h]j)}(hj:h]hint dirn}(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)}(huh1jhj;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)}(hcompressed bufferh]hcompressed buffer}(hjM;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjJ;hhubah}(h]h ]h"]h$]h&]uh1jahj;hhhj;hKubeh}(h]h ](jstructeh"]h$]h&]jjjje;jje;jjjuh1hhhhj2hNhNubj)}(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}(hjq;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm;ubh:}(hjm;hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhji;ubj~)}(hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };h]hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };}hj;sbah}(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.hhKhji;ubjg)}(h **Members**h]j)}(hj;h]hMembers}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhji;ubj)}(hhh](j)}(h3``fragment_size`` size of buffer fragment in bytes h](j)}(h``fragment_size``h]j)}(hj;h]h fragment_size}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(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;ubj)}(hhh]jg)}(h size of buffer fragment in bytesh]h size of buffer fragment 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;ubj)}(h&``fragments`` number of such fragmentsh](j)}(h ``fragments``h]j)}(hj;h]h fragments}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(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;ubj)}(hhh]jg)}(hnumber of such fragmentsh]hnumber of such fragments}(hj <hhhNhNubah}(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 <ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hKhj;ubeh}(h]h ]h"]h$]h&]uh1jhji;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_params (C struct)c.snd_compr_paramshNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_paramsh]h)}(hstruct snd_compr_paramsh](jL)}(hjOh]hstruct}(hjM<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjI<hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj[<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI<hhhjZ<hKubj)}(hsnd_compr_paramsh]j%)}(hjG<h]hsnd_compr_params}(hjm<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hji<ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjI<hhhjZ<hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjE<hhhjZ<hKubah}(h]j@<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZ<hKhjB<hhubjb)}(hhh]jg)}(hcompressed stream paramsh]hcompressed stream params}(hj<hhhNhNubah}(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<hhubah}(h]h ]h"]h$]h&]uh1jahjB<hhhjZ<hKubeh}(h]h ](jstructeh"]h$]h&]jjjj<jj<jjjuh1hhhhj2hNhNubj)}(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}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh:}(hj<hhhNhNubeh}(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<ubj~)}(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; };}hj<sbah}(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#hj<ubjg)}(h **Members**h]j)}(hj<h]hMembers}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(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<ubj)}(hhh](j)}(h``buffer`` buffer description h](j)}(h ``buffer``h]j)}(hj<h]hbuffer}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(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<ubj)}(hhh]jg)}(hbuffer descriptionh]hbuffer description}(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``codec`` codec parameters h](j)}(h ``codec``h]j)}(hj5=h]hcodec}(hj7=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3=ubah}(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/=ubj)}(hhh]jg)}(hcodec parametersh]hcodec parameters}(hjN=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJ=hK hjK=ubah}(h]h ]h"]h$]h&]uh1jhj/=ubeh}(h]h ]h"]h$]h&]uh1jhjJ=hK hj<ubj)}(h.``no_wake_mode`` dont wake on fragment elapsedh](j)}(h``no_wake_mode``h]j)}(hjn=h]h no_wake_mode}(hjp=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl=ubah}(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 hjh=ubj)}(hhh]jg)}(hdont wake on fragment elapsedh]hdont wake on fragment elapsed}(hj=hhhNhNubah}(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=ubah}(h]h ]h"]h$]h&]uh1jhjh=ubeh}(h]h ]h"]h$]h&]uh1jhj=hK hj<ubeh}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_tstamp (C struct)c.snd_compr_tstamphNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_tstamph]h)}(hstruct snd_compr_tstamph](jL)}(hjOh]hstruct}(hj=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK'ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=hhhj=hK'ubj)}(hsnd_compr_tstamph]j%)}(hj=h]hsnd_compr_tstamp}(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)}(htimestamp descriptorh]htimestamp descriptor}(hj >hhhNhNubah}(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>hhubah}(h]h ]h"]h$]h&]uh1jahj=hhhj=hK'ubeh}(h]h ](jstructeh"]h$]h&]jjjj">jj">jjjuh1hhhhj2hNhNubj)}(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}(hj.>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*>ubh:}(hj*>hhhNhNubeh}(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&>ubj~)}(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; };}hjG>sbah}(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/hj&>ubjg)}(h **Members**h]j)}(hjX>h]hMembers}(hjZ>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV>ubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK7hj&>ubj)}(hhh](j)}(h2``byte_offset`` Byte offset in ring buffer to DSP h](j)}(h``byte_offset``h]j)}(hjw>h]h byte_offset}(hjy>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju>ubah}(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+hjq>ubj)}(hhh]jg)}(h!Byte offset in ring buffer to DSPh]h!Byte offset in ring buffer to DSP}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hK+hj>ubah}(h]h ]h"]h$]h&]uh1jhjq>ubeh}(h]h ]h"]h$]h&]uh1jhj>hK+hjn>ubj)}(hL``copied_total`` Total number of bytes copied from/to ring buffer to/by DSP h](j)}(h``copied_total``h]j)}(hj>h]h copied_total}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(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>ubj)}(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}(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,hjn>ubj)}(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)}(hj>h]h pcm_frames}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(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>ubj)}(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?hhhNhNubah}(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>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hK/hjn>ubj)}(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)}(hj#?h]h pcm_io_frames}(hj%?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!?ubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK1hj?ubj)}(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.}(hjubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hj]?h]h sampling_rate}(hj_?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[?ubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK1hjW?ubj)}(hhh]jg)}(hsampling rate of audioh]hsampling rate of audio}(hjv?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK2hjs?ubah}(h]h ]h"]h$]h&]uh1jhjW?ubeh}(h]h ]h"]h$]h&]uh1jhjr?hK1hjn>ubeh}(h]h ]h"]h$]h&]uh1jhj&>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_avail (C struct)c.snd_compr_availhNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_availh]h)}(hstruct snd_compr_availh](jL)}(hjOh]hstruct}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK8ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhj?hK8ubj)}(hsnd_compr_availh]j%)}(hj?h]hsnd_compr_avail}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhj?hK8ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhj?hK8ubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hK8hj?hhubjb)}(hhh]jg)}(havail descriptorh]havail descriptor}(hj?hhhNhNubah}(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@ubjg)}(h **Members**h]j)}(hjG@h]hMembers}(hjI@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE@ubah}(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@ubj)}(hhh](j)}(hG``avail`` Number of bytes available in ring buffer for writing/reading h](j)}(h ``avail``h]j)}(hjf@h]havail}(hjh@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd@ubah}(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`@ubj)}(hhh]jg)}(hhj|@ubah}(h]h ]h"]h$]h&]uh1jhj`@ubeh}(h]h ]h"]h$]h&]uh1jhj{@hK>hj]@ubj)}(h ``tstamp`` timestamp informationh](j)}(h ``tstamp``h]j)}(hj@h]htstamp}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(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@ubj)}(hhh]jg)}(htimestamp informationh]htimestamp information}(hj@hhhNhNubah}(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@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hK>hj]@ubeh}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_caps (C struct)c.snd_compr_capshNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_capsh]h)}(hstruct snd_compr_capsh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKEubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjAhKEubj)}(hsnd_compr_capsh]j%)}(hj@h]hsnd_compr_caps}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjAhKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@hhhjAhKEubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhKEhj@hhubjb)}(hhh]jg)}(hcaps descriptorh]hcaps descriptor}(hj;AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKLhj8Ahhubah}(h]h ]h"]h$]h&]uh1jahj@hhhjAhKEubeh}(h]h ](jstructeh"]h$]h&]jjjjSAjjSAjjjuh1hhhhj2hNhNubj)}(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}(hj_AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Aubh:}(hj[AhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhjWAubj~)}(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]; };}hjxAsbah}(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.hhKRhjWAubjg)}(h **Members**h]j)}(hjAh]hMembers}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(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]hjWAubj)}(hhh](j)}(h*``num_codecs`` number of codecs supported h](j)}(h``num_codecs``h]j)}(hjAh]h num_codecs}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKThjAubj)}(hhh]jg)}(hnumber of codecs supportedh]hnumber of codecs supported}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKThjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKThjAubj)}(h?``direction`` direction supported. Of type snd_compr_direction h](j)}(h ``direction``h]j)}(hjAh]h direction}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKOhjAubj)}(hhh]jg)}(h0direction supported. Of type snd_compr_directionh]h0direction supported. Of type snd_compr_direction}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKOhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKOhjAubj)}(h8``min_fragment_size`` minimum fragment supported by DSP h](j)}(h``min_fragment_size``h]j)}(hjBh]hmin_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.hhKPhjBubj)}(hhh]jg)}(h!minimum fragment supported by DSPh]h!minimum fragment supported by DSP}(hj3BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/BhKPhj0Bubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj/BhKPhjAubj)}(h8``max_fragment_size`` maximum fragment supported by DSP h](j)}(h``max_fragment_size``h]j)}(hjSBh]hmax_fragment_size}(hjUBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQBubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKQhjMBubj)}(hhh]jg)}(h!maximum fragment supported by DSPh]h!maximum fragment supported by DSP}(hjlBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhBhKQhjiBubah}(h]h ]h"]h$]h&]uh1jhjMBubeh}(h]h ]h"]h$]h&]uh1jhjhBhKQhjAubj)}(h1``min_fragments`` min fragments supported by DSP h](j)}(h``min_fragments``h]j)}(hjBh]h min_fragments}(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.hhKRhjBubj)}(hhh]jg)}(hmin fragments supported by DSPh]hmin fragments supported by DSP}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKRhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKRhjAubj)}(h1``max_fragments`` max fragments supported by DSP h](j)}(h``max_fragments``h]j)}(hjBh]h max_fragments}(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.hhKShjBubj)}(hhh]jg)}(hmax fragments supported by DSPh]hmax fragments supported by DSP}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKShjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKShjAubj)}(h&``codecs`` pointer to array of codecs h](j)}(h ``codecs``h]j)}(hjBh]hcodecs}(hjChhhNhNubah}(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.hhKNhjBubj)}(hhh]jg)}(hpointer to array of codecsh]hpointer to array of codecs}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKNhjCubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjChKNhjAubj)}(h``reserved`` reserved fieldh](j)}(h ``reserved``h]j)}(hj7Ch]hreserved}(hj9ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5Cubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKThj1Cubj)}(hhh]jg)}(hreserved fieldh]hreserved field}(hjPChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKUhjMCubah}(h]h ]h"]h$]h&]uh1jhj1Cubeh}(h]h ]h"]h$]h&]uh1jhjLChKThjAubeh}(h]h ]h"]h$]h&]uh1jhjWAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_codec_caps (C struct)c.snd_compr_codec_capshNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_codec_capsh]h)}(hstruct snd_compr_codec_capsh](jL)}(hjOh]hstruct}(hjChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjChhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK[ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjChK[ubj)}(hsnd_compr_codec_capsh]j%)}(hjCh]hsnd_compr_codec_caps}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjChK[ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjChK[ubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjChK[hjChhubjb)}(hhh]jg)}(hquery capability of codech]hquery capability of codec}(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.hhKbhjChhubah}(h]h ]h"]h$]h&]uh1jahjChhhjChK[ubeh}(h]h ](jstructeh"]h$]h&]jjjjCjjCjjjuh1hhhhj2hNhNubj)}(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}(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.hhKfhjCubj~)}(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]; };}hjDsbah}(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.hhKhhjCubjg)}(h **Members**h]j)}(hj!Dh]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.hhKnhjCubj)}(hhh](j)}(h0``codec`` codec for which capability is queried h](j)}(h ``codec``h]j)}(hj@Dh]hcodec}(hjBDhhhNhNubah}(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.hhKdhj:Dubj)}(hhh]jg)}(h%codec for which capability is queriedh]h%codec for which capability is queried}(hjYDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUDhKdhjVDubah}(h]h ]h"]h$]h&]uh1jhj:Dubeh}(h]h ]h"]h$]h&]uh1jhjUDhKdhj7Dubj)}(h0``num_descriptors`` number of codec descriptors h](j)}(h``num_descriptors``h]j)}(hjyDh]hnum_descriptors}(hj{DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwDubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKehjsDubj)}(hhh]jg)}(hnumber of codec descriptorsh]hnumber of codec descriptors}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhKehjDubah}(h]h ]h"]h$]h&]uh1jhjsDubeh}(h]h ]h"]h$]h&]uh1jhjDhKehj7Dubj)}(h3``descriptor`` array of codec capability descriptorh](j)}(h``descriptor``h]j)}(hjDh]h descriptor}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKehjDubj)}(hhh]jg)}(h$array of codec capability descriptorh]h$array of codec capability descriptor}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKfhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhKehj7Dubeh}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsndrv_compress_encoder (C enum)c.sndrv_compress_encoderhNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsndrv_compress_encoderh]h)}(henum sndrv_compress_encoderh](jL)}(hj'h]henum}(hj EhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKlubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEhhhjEhKlubj)}(hsndrv_compress_encoderh]j%)}(hjEh]hsndrv_compress_encoder}(hj,EhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(Eubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjEhhhjEhKlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhjEhKlubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhKlhjEhhubjb)}(hhh]jg)}(hencoder metadata keyh]hencoder metadata key}(hjNEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKnhjKEhhubah}(h]h ]h"]h$]h&]uh1jahjEhhhjEhKlubeh}(h]h ](jenumeh"]h$]h&]jjjjfEjjfEjjjuh1hhhhj2hNhNubj)}(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)}(hjpEh]h Constants}(hjrEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnEubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKrhjjEubj)}(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)}(hjEh]hSNDRV_COMPRESS_ENCODER_PADDING}(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.hhKvhjEubj)}(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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKuhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKvhjEubj)}(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)}(hjEh]hSNDRV_COMPRESS_ENCODER_DELAY}(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.hhKyhjEubj)}(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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhKyhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKyhjEubeh}(h]h ]h"]h$]h&]uh1jhjjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_metadata (C struct)c.snd_compr_metadatahNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_metadatah]h)}(hstruct snd_compr_metadatah](jL)}(hjOh]hstruct}(hj"FhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj0FhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhj/FhKubj)}(hsnd_compr_metadatah]j%)}(hjFh]hsnd_compr_metadata}(hjBFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Fubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhj/FhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhj/FhKubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj/FhKhjFhhubjb)}(hhh]jg)}(hcompressed stream metadatah]hcompressed stream metadata}(hjdFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKzhjaFhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhj/FhKubeh}(h]h ](jstructeh"]h$]h&]jjjj|Fjj|Fjjjuh1hhhhj2hNhNubj)}(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}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh:}(hjFhhhNhNubeh}(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~hjFubj~)}(hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };h]hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };}hjFsbah}(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.hhKhjFubjg)}(h **Members**h]j)}(hjFh]hMembers}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjFubj)}(hhh](j)}(h``key`` key id h](j)}(h``key``h]j)}(hjFh]hkey}(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|hjFubj)}(hhh]jg)}(hkey idh]hkey id}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhK|hjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhK|hjFubj)}(h``value`` key valueh](j)}(h ``value``h]j)}(hj Gh]hvalue}(hj GhhhNhNubah}(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)}(h key valueh]h key value}(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.hhK}hj Gubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhK|hjFubeh}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_task (C struct)c.snd_compr_taskhNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_taskh]h)}(hstruct snd_compr_taskh](jL)}(hjOh]hstruct}(hjdGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`Ghhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjrGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`GhhhjqGhKubj)}(hsnd_compr_taskh]j%)}(hj^Gh]hsnd_compr_task}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`GhhhjqGhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj\GhhhjqGhKubah}(h]jWGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjqGhKhjYGhhubjb)}(hhh]jg)}(h)task primitive for non-realtime operationh]h)task primitive for non-realtime operation}(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.hhKhjGhhubah}(h]h ]h"]h$]h&]uh1jahjYGhhhjqGhKubeh}(h]h ](jstructeh"]h$]h&]jjjjGjjGjjjuh1hhhhj2hNhNubj)}(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}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh:}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjGubj~)}(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]; };}hjGsbah}(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.hhKhjGubjg)}(h **Members**h]j)}(hjGh]hMembers}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjGubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjHh]hseqno}(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.hhKhj Hubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hj,HhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(HhKhj)Hubah}(h]h ]h"]h$]h&]uh1jhj Hubeh}(h]h ]h"]h$]h&]uh1jhj(HhKhj Hubj)}(hH``origin_seqno`` previous sequence number (task identifier) - for reuse h](j)}(h``origin_seqno``h]j)}(hjLHh]h origin_seqno}(hjNHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJHubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjFHubj)}(hhh]jg)}(h6previous sequence number (task identifier) - for reuseh]h6previous sequence number (task identifier) - for reuse}(hjeHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjaHhKhjbHubah}(h]h ]h"]h$]h&]uh1jhjFHubeh}(h]h ]h"]h$]h&]uh1jhjaHhKhj Hubj)}(h2``input_fd`` data input file descriptor (dma-buf) h](j)}(h ``input_fd``h]j)}(hjHh]hinput_fd}(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.hhKhjHubj)}(hhh]jg)}(h$data input file descriptor (dma-buf)h]h$data input file descriptor (dma-buf)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhKhj Hubj)}(h4``output_fd`` data output file descriptor (dma-buf) h](j)}(h ``output_fd``h]j)}(hjHh]h output_fd}(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.hhKhjHubj)}(hhh]jg)}(h%data output file descriptor (dma-buf)h]h%data output file descriptor (dma-buf)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhKhj Hubj)}(hQ``input_size`` filled data in bytes (from caller, must not exceed fragment size) h](j)}(h``input_size``h]j)}(hjHh]h input_size}(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.hhKhjHubj)}(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)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj IhKhj Iubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj IhKhj Hubj)}(h*``flags`` see SND_COMPRESS_TFLG_* defines h](j)}(h ``flags``h]j)}(hj0Ih]hflags}(hj2IhhhNhNubah}(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.hhKhj*Iubj)}(hhh]jg)}(hsee SND_COMPRESS_TFLG_* definesh]hsee SND_COMPRESS_TFLG_* defines}(hjIIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEIhKhjFIubah}(h]h ]h"]h$]h&]uh1jhj*Iubeh}(h]h ]h"]h$]h&]uh1jhjEIhKhj Hubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjiIh]hreserved}(hjkIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjcIubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubah}(h]h ]h"]h$]h&]uh1jhjcIubeh}(h]h ]h"]h$]h&]uh1jhj~IhKhj Hubeh}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_state (C enum)c.snd_compr_statehNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_stateh]h)}(henum snd_compr_stateh](jL)}(hj'h]henum}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhjIhKubj)}(hsnd_compr_stateh]j%)}(hjIh]hsnd_compr_state}(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)}(h task stateh]h task state}(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.hhKhjJhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjIhKubeh}(h]h ](jenumeh"]h$]h&]jjjjJjjJjjjuh1hhhhj2hNhNubj)}(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)}(hj'Jh]h Constants}(hj)JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Jubah}(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!Jubj)}(hhh](j)}(h4``SND_COMPRESS_TASK_STATE_IDLE`` task is not queued h](j)}(h ``SND_COMPRESS_TASK_STATE_IDLE``h]j)}(hjFJh]hSND_COMPRESS_TASK_STATE_IDLE}(hjHJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDJubah}(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@Jubj)}(hhh]jg)}(htask is not queuedh]htask is not queued}(hj_JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[JhKhj\Jubah}(h]h ]h"]h$]h&]uh1jhj@Jubeh}(h]h ]h"]h$]h&]uh1jhj[JhKhj=Jubj)}(h8``SND_COMPRESS_TASK_STATE_ACTIVE`` task is in the queue h](j)}(h"``SND_COMPRESS_TASK_STATE_ACTIVE``h]j)}(hjJh]hSND_COMPRESS_TASK_STATE_ACTIVE}(hjJhhhNhNubah}(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.hhKhjyJubj)}(hhh]jg)}(htask is in the queueh]htask is in the queue}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhKhjJubah}(h]h ]h"]h$]h&]uh1jhjyJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhj=Jubj)}(hL``SND_COMPRESS_TASK_STATE_FINISHED`` task was processed, output is availableh](j)}(h$``SND_COMPRESS_TASK_STATE_FINISHED``h]j)}(hjJh]h SND_COMPRESS_TASK_STATE_FINISHED}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjJubj)}(hhh]jg)}(h'task was processed, output is availableh]h'task was processed, output is available}(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.hhKhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhj=Jubeh}(h]h ]h"]h$]h&]uh1jhj!Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_compr_task_status (C struct)c.snd_compr_task_statushNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_task_statush]h)}(hstruct snd_compr_task_statush](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj KhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhjKhKubj)}(hsnd_compr_task_statush]j%)}(hj Kh]hsnd_compr_task_status}(hj2KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.Kubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKhhhjKhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj KhhhjKhKubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKhKhjKhhubjb)}(hhh]jg)}(h task statush]h task status}(hjTKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjQKhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhjKhKubeh}(h]h ](jstructeh"]h$]h&]jjjjlKjjlKjjjuh1hhhhj2hNhNubj)}(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}(hjxKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtKubh:}(hjtKhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjpKubj~)}(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]; };}hjKsbah}(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.hhKhjpKubjg)}(h **Members**h]j)}(hjKh]hMembers}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjpKubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjKh]hseqno}(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.hhKhjKubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhjKubj)}(h6``input_size`` filled data in bytes (from user space) h](j)}(h``input_size``h]j)}(hjKh]h input_size}(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.hhKhjKubj)}(hhh]jg)}(h&filled data in bytes (from user space)h]h&filled data in bytes (from user space)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjKubj)}(h3``output_size`` filled data in bytes (from driver) h](j)}(h``output_size``h]j)}(hj3Lh]h output_size}(hj5LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Lubah}(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-Lubj)}(hhh]jg)}(h"filled data in bytes (from driver)h]h"filled data in bytes (from driver)}(hjLLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHLhKhjILubah}(h]h ]h"]h$]h&]uh1jhj-Lubeh}(h]h ]h"]h$]h&]uh1jhjHLhKhjKubj)}(h?``output_flags`` reserved for future (all zeros - from driver) h](j)}(h``output_flags``h]j)}(hjlLh]h output_flags}(hjnLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjLubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjfLubj)}(hhh]jg)}(h-reserved for future (all zeros - from driver)h]h-reserved for future (all zeros - from driver)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjfLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjKubj)}(h8``state`` actual task state (SND_COMPRESS_TASK_STATE_*) h](j)}(h ``state``h]j)}(hjLh]hstate}(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.hhKhjLubj)}(hhh]jg)}(h-actual task state (SND_COMPRESS_TASK_STATE_*)h]h-actual task state (SND_COMPRESS_TASK_STATE_*)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjKubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjLh]hreserved}(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.hhKhjLubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(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.hhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjKubeh}(h]h ]h"]h$]h&]uh1jhjpKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_vorbis (C struct)c.snd_enc_vorbishNtauh1hhj2hhhu/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}(hj9MhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5Mhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hjGMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5MhhhjFMhKubj)}(hsnd_enc_vorbish]j%)}(hj3Mh]hsnd_enc_vorbis}(hjYMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5MhhhjFMhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1MhhhjFMhKubah}(h]j+Mah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFMhKhj.Mhhubjb)}(hhh]jg)}(hVorbis encoder parametersh]hVorbis encoder parameters}(hj{MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjxMhhubah}(h]h ]h"]h$]h&]uh1jahj.MhhhjFMhKubeh}(h]h ](jstructeh"]h$]h&]jjjjMjjMjjjuh1hhhhj2hj-MhNubj)}(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}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh:}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjMubj~)}(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; };}hjMsbah}(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.hhKhjMubjg)}(h **Members**h]j)}(hjMh]hMembers}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjMubj)}(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)}(hjMh]hquality}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjMubj)}(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.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjMubj)}(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)}(hj"Nh]hmanaged}(hj$NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Nubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubj)}(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.}(hj;NhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj8Nubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhj7NhKhjMubj)}(h1``max_bit_rate`` Enabled only if managed is TRUE h](j)}(h``max_bit_rate``h]j)}(hj\Nh]h max_bit_rate}(hj^NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjVNubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjuNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqNhKhjrNubah}(h]h ]h"]h$]h&]uh1jhjVNubeh}(h]h ]h"]h$]h&]uh1jhjqNhKhjMubj)}(h1``min_bit_rate`` Enabled only if managed is TRUE h](j)}(h``min_bit_rate``h]j)}(hjNh]h min_bit_rate}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjMubj)}(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)}(hjNh]hdownmix}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubj)}(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.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjMubeh}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhj-MhNubjg)}(h**Description**h]j)}(hjOh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj2hhubjg)}(hXThese options were extracted from the OpenMAX IL spec and Gstreamer vorbisenc propertiesh]hXThese options were extracted from the OpenMAX IL spec and Gstreamer vorbisenc properties}(hj&OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj2hhubjg)}(hFFor best quality users should specify VBR mode and set quality levels.h]hFFor best quality users should specify VBR mode and set quality levels.}(hj5OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj2hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_real (C struct)c.snd_enc_realhNtauh1hhj2hhhj-MhNubh)}(hhh](h)}(h snd_enc_realh]h)}(hstruct snd_enc_realh](jL)}(hjOh]hstruct}(hj]OhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYOhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hjkOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYOhhhjjOhKubj)}(h snd_enc_realh]j%)}(hjWOh]h snd_enc_real}(hj}OhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYOhhhjjOhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUOhhhjjOhKubah}(h]jPOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjOhKhjROhhubjb)}(hhh]jg)}(hRealAudio encoder parametersh]hRealAudio encoder parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjOhhubah}(h]h ]h"]h$]h&]uh1jahjROhhhjjOhKubeh}(h]h ](jstructeh"]h$]h&]jjjjOjjOjjjuh1hhhhj2hj-MhNubj)}(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}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh:}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjOubj~)}(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; };}hjOsbah}(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.hhKhjOubjg)}(h **Members**h]j)}(hjOh]hMembers}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjOubj)}(hhh](j)}(hB``quant_bits`` number of coupling quantization bits in the stream h](j)}(h``quant_bits``h]j)}(hj Ph]h quant_bits}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjPubj)}(hhh]jg)}(h2number of coupling quantization bits in the streamh]h2number of coupling quantization bits in the stream}(hj%PhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!PhKhj"Pubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj!PhKhjPubj)}(h5``start_region`` coupling start region in the stream h](j)}(h``start_region``h]j)}(hjEPh]h start_region}(hjGPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCPubah}(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?Pubj)}(hhh]jg)}(h#coupling start region in the streamh]h#coupling start region in the stream}(hj^PhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZPhKhj[Pubah}(h]h ]h"]h$]h&]uh1jhj?Pubeh}(h]h ]h"]h$]h&]uh1jhjZPhKhjPubj)}(h'``num_regions`` number of regions valueh](j)}(h``num_regions``h]j)}(hj~Ph]h num_regions}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Pubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjxPubj)}(hhh]jg)}(hnumber of regions valueh]hnumber of regions value}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjPubah}(h]h ]h"]h$]h&]uh1jhjxPubeh}(h]h ]h"]h$]h&]uh1jhjPhKhjPubeh}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhj-MhNubjg)}(h**Description**h]j)}(hjPh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj2hhubjg)}(h5These options were extracted from the OpenMAX IL spech]h5These options were extracted from the OpenMAX IL spec}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj2hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_flac (C struct)c.snd_enc_flachNtauh1hhj2hhhj-MhNubh)}(hhh](h)}(h snd_enc_flach]h)}(hstruct snd_enc_flach](jL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMubj)}(h h]h }(hj QhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhj QhMubj)}(h snd_enc_flach]j%)}(hjPh]h snd_enc_flac}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhj QhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhj QhMubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj QhMhjPhhubjb)}(hhh]jg)}(hFLAC encoder parametersh]hFLAC encoder parameters}(hjAQhhhNhNubah}(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>Qhhubah}(h]h ]h"]h$]h&]uh1jahjPhhhj QhMubeh}(h]h ](jstructeh"]h$]h&]jjjjYQjjYQjjjuh1hhhhj2hj-MhNubj)}(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}(hjeQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaQubh:}(hjaQhhhNhNubeh}(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]Qubj~)}(h7struct snd_enc_flac { __u32 num; __u32 gain; };h]h7struct snd_enc_flac { __u32 num; __u32 gain; };}hj~Qsbah}(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 hj]Qubjg)}(h **Members**h]j)}(hjQh]hMembers}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(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]Qubj)}(hhh](j)}(hQ``num`` serial number, valid only for OGG formats needs to be set by application h](j)}(h``num``h]j)}(hjQh]hnum}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(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 hjQubj)}(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}(hjQhhhNhNubah}(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 hjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhM hjQubj)}(h``gain`` Add replay gain tagsh](j)}(h``gain``h]j)}(hjQh]hgain}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(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 hjQubj)}(hhh]jg)}(hAdd replay gain tagsh]hAdd replay gain tags}(hjRhhhNhNubah}(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 hjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhM hjQubeh}(h]h ]h"]h$]h&]uh1jhj]Qubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhj-MhNubjg)}(h**Description**h]j)}(hj+Rh]h Description}(hj-RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Rubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj2hhubjg)}(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 }(hjARhhhNhNubh reference)}(h9http://flac.sourceforge.net/documentation_tools_flac.htmlh]h9http://flac.sourceforge.net/documentation_tools_flac.html}(hjKRhhhNhNubah}(h]h ]h"]h$]h&]refurijMRuh1jIRhjARubeh}(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 hj2hhubjg)}(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.}(hjaRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj2hhubjg)}(h1By default the Subset format is used by encoders.h]h1By default the Subset format is used by encoders.}(hjpRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj2hhubjg)}(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.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj2hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_task_runtime (C struct)c.snd_compr_task_runtimehNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_task_runtimeh]h)}(hstruct snd_compr_task_runtimeh](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhjRhKubj)}(hsnd_compr_task_runtimeh]j%)}(hjRh]hsnd_compr_task_runtime}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjRhhhjRhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjRhKubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhKhjRhhubjb)}(hhh]jg)}(htask runtime descriptionh]htask runtime description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjRhhubah}(h]h ]h"]h$]h&]uh1jahjRhhhjRhKubeh}(h]h ](jstructeh"]h$]h&]jjjjSjjSjjjuh1hhhhj2hNhNubj)}(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}(hj ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Subh:}(hj ShhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjSubj~)}(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; };}hj&Ssbah}(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.hhKhjSubjg)}(h **Members**h]j)}(hj7Sh]hMembers}(hj9ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5Subah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK)hjSubj)}(hhh](j)}(h#``list`` list of all managed tasks h](j)}(h``list``h]j)}(hjVSh]hlist}(hjXShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTSubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjPSubj)}(hhh]jg)}(hlist of all managed tasksh]hlist of all managed tasks}(hjoShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkShKhjlSubah}(h]h ]h"]h$]h&]uh1jhjPSubeh}(h]h ]h"]h$]h&]uh1jhjkShKhjMSubj)}(h``input`` input DMA buffer h](j)}(h ``input``h]j)}(hjSh]hinput}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjSubj)}(hhh]jg)}(hinput DMA bufferh]hinput DMA buffer}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjMSubj)}(h``output`` output DMA buffer h](j)}(h ``output``h]j)}(hjSh]houtput}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjSubj)}(hhh]jg)}(houtput DMA bufferh]houtput DMA buffer}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjMSubj)}(h``seqno`` sequence number h](j)}(h ``seqno``h]j)}(hjTh]hseqno}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjSubj)}(hhh]jg)}(hsequence numberh]hsequence number}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjThKhjMSubj)}(h4``input_size`` really used data in the input buffer h](j)}(h``input_size``h]j)}(hj:Th]h input_size}(hjuh1jhjtUhhhjUhK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjpUhhhjUhK'ubah}(h]jkUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhK'hjmUhhubjb)}(hhh]jg)}(hruntime stream descriptionh]hruntime stream description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK/hjUhhubah}(h]h ]h"]h$]h&]uh1jahjmUhhhjUhK'ubeh}(h]h ](jstructeh"]h$]h&]jjjjUjjUjjjuh1hhhhj2hNhNubj)}(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}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubh:}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hjUubj~)}(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; };}hjUsbah}(h]h ]h"]h$]h&]j=j>uh1j~hKp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hjUubjg)}(h **Members**h]j)}(hjVh]hMembers}(hj VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKLhjUubj)}(hhh](j)}(h``state`` stream state h](j)}(h ``state``h]j)}(hj'Vh]hstate}(hj)VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Vubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK1hj!Vubj)}(hhh]jg)}(h stream stateh]h stream state}(hj@VhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhjXubj)}(hhh]jg)}(h6physical buffer address (not accessible from main CPU)h]h6physical buffer address (not accessible from main CPU)}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhK>hjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhK>hjVubj)}(h``dma_bytes`` size of DMA area h](j)}(h ``dma_bytes``h]j)}(hjXh]h dma_bytes}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK?hjXubj)}(hhh]jg)}(hsize of DMA areah]hsize of DMA area}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhK?hjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhK?hjVubj)}(h,``dma_buffer_p`` runtime dma buffer pointer h](j)}(h``dma_buffer_p``h]j)}(hjYh]h dma_buffer_p}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Yubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK@hjYubj)}(hhh]jg)}(hruntime dma buffer pointerh]hruntime dma buffer pointer}(hj'YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#YhK@hj$Yubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhj#YhK@hjVubj)}(h'``active_tasks`` count of active tasks h](j)}(h``active_tasks``h]j)}(hjGYh]h active_tasks}(hjIYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEYubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKAhjAYubj)}(hhh]jg)}(hcount of active tasksh]hcount of active tasks}(hj`YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\YhKAhj]Yubah}(h]h ]h"]h$]h&]uh1jhjAYubeh}(h]h ]h"]h$]h&]uh1jhj\YhKAhjVubj)}(h#``total_tasks`` count of all tasks h](j)}(h``total_tasks``h]j)}(hjYh]h total_tasks}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~Yubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKBhjzYubj)}(hhh]jg)}(hcount of all tasksh]hcount of all tasks}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhKBhjYubah}(h]h ]h"]h$]h&]uh1jhjzYubeh}(h]h ]h"]h$]h&]uh1jhjYhKBhjVubj)}(h0``task_seqno`` last task sequence number (!= 0) h](j)}(h``task_seqno``h]j)}(hjYh]h task_seqno}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChjYubj)}(hhh]jg)}(h last task sequence number (!= 0)h]h last task sequence number (!= 0)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhKChjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhKChjVubj)}(h``tasks`` list of all tasksh](j)}(h ``tasks``h]j)}(hjYh]htasks}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChjYubj)}(hhh]jg)}(hlist of all tasksh]hlist of all tasks}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKDhjZubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjZhKChjVubeh}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_stream (C struct)c.snd_compr_streamhNtauh1hhj2hhhNhNubh)}(hhh](h)}(hsnd_compr_streamh]h)}(hstruct snd_compr_streamh](jL)}(hjOh]hstruct}(hjLZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHZhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKJubj)}(h h]h }(hjZZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHZhhhjYZhKJubj)}(hsnd_compr_streamh]j%)}(hjFZh]hsnd_compr_stream}(hjlZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHZhhhjYZhKJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDZhhhjYZhKJubah}(h]j?Zah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYZhKJhjAZhhubjb)}(hhh]jg)}(hcompressed streamh]hcompressed stream}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK_hjZhhubah}(h]h ]h"]h$]h&]uh1jahjAZhhhjYZhKJubeh}(h]h ](jstructeh"]h$]h&]jjjjZjjZjjjuh1hhhhj2hNhNubj)}(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}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh:}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjZubj~)}(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; };}hjZsbah}(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.hhKehjZubjg)}(h **Members**h]j)}(hjZh]hMembers}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKthjZubj)}(hhh](j)}(h``name`` device name h](j)}(h``name``h]j)}(hjZh]hname}(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.hhKahjZubj)}(hhh]jg)}(h device nameh]h device name}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKahj[ubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj[hKahjZubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hj4[h]hops}(hj6[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2[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)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjM[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI[hKbhjJ[ubah}(h]h ]h"]h$]h&]uh1jhj.[ubeh}(h]h ]h"]h$]h&]uh1jhjI[hKbhjZubj)}(h)``runtime`` pointer to runtime structure h](j)}(h ``runtime``h]j)}(hjm[h]hruntime}(hjo[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjg[ubj)}(hhh]jg)}(hpointer to runtime structureh]hpointer to runtime structure}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKchj[ubah}(h]h ]h"]h$]h&]uh1jhjg[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKchjZubj)}(h``device`` device pointer h](j)}(h ``device``h]j)}(hj[h]hdevice}(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.hhKdhj[ubj)}(hhh]jg)}(hdevice pointerh]hdevice pointer}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKdhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKdhjZubj)}(hI``error_work`` delayed work used when closing the stream due to an error h](j)}(h``error_work``h]j)}(hj[h]h error_work}(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.hhKehj[ubj)}(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[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKehj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKehjZubj)}(h3``direction`` stream direction, playback/recording h](j)}(h ``direction``h]j)}(hj\h]h direction}(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.hhKfhj\ubj)}(hhh]jg)}(h$stream direction, playback/recordingh]h$stream direction, playback/recording}(hj1\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-\hKfhj.\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj-\hKfhjZubj)}(h2``metadata_set`` metadata set flag, true when set h](j)}(h``metadata_set``h]j)}(hjQ\h]h metadata_set}(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.hhKghjK\ubj)}(hhh]jg)}(h metadata set flag, true when seth]h metadata set flag, true when set}(hjj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjf\hKghjg\ubah}(h]h ]h"]h$]h&]uh1jhjK\ubeh}(h]h ]h"]h$]h&]uh1jhjf\hKghjZubj)}(hI``next_track`` has userspace signal next track transition, true when set h](j)}(h``next_track``h]j)}(hj\h]h next_track}(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.hhKhhj\ubj)}(hhh]jg)}(h9has userspace signal next track transition, true when seth]h9has userspace signal next track transition, true when set}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hKhhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hKhhjZubj)}(hE``partial_drain`` undergoing partial_drain for stream, true when set h](j)}(h``partial_drain``h]j)}(hj\h]h partial_drain}(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.hhKihj\ubj)}(hhh]jg)}(h2undergoing partial_drain for stream, true when seth]h2undergoing partial_drain for stream, true when set}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hKihj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hKihjZubj)}(hB``pause_in_draining`` paused during draining state, true when set h](j)}(h``pause_in_draining``h]j)}(hj\h]hpause_in_draining}(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.hhKjhj\ubj)}(hhh]jg)}(h+paused during draining state, true when seth]h+paused during draining state, true when set}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hKjhj]ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj]hKjhjZubj)}(h-``private_data`` pointer to DSP private data h](j)}(h``private_data``h]j)}(hj5]h]h private_data}(hj7]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKkhj/]ubj)}(hhh]jg)}(hpointer to DSP private datah]hpointer to DSP private data}(hjN]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJ]hKkhjK]ubah}(h]h ]h"]h$]h&]uh1jhj/]ubeh}(h]h ]h"]h$]h&]uh1jhjJ]hKkhjZubj)}(h&``dma_buffer`` allocated buffer if anyh](j)}(h``dma_buffer``h]j)}(hjn]h]h dma_buffer}(hjp]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKkhjh]ubj)}(hhh]jg)}(hallocated buffer if anyh]hallocated buffer if any}(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.hhKlhj]ubah}(h]h ]h"]h$]h&]uh1jhjh]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKkhjZubeh}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_ops (C struct)c.snd_compr_opshNtauh1hhj2hhhNhNubh)}(hhh](h)}(h snd_compr_opsh]h)}(hstruct snd_compr_opsh](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.hhKrubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhj]hKrubj)}(h snd_compr_opsh]j%)}(hj]h]h snd_compr_ops}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhj]hKrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj]hhhj]hKrubah}(h]j]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]hKrhj]hhubjb)}(hhh]jg)}(hcompressed path DSP operationsh]hcompressed path DSP operations}(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]hKrubeh}(h]h ](jstructeh"]h$]h&]jjjj"^jj"^jjjuh1hhhhj2hNhNubj)}(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}(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.hhKhj&^ubj~)}(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; };}hjG^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.hhKhj&^ubjg)}(h **Members**h]j)}(hjX^h]hMembers}(hjZ^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV^ubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj&^ubj)}(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)}(hjw^h]hopen}(hjy^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjq^ubj)}(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}(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.hhKhj^ubah}(h]h ]h"]h$]h&]uh1jhjq^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjn^ubj)}(h0``free`` Close the compressed stream, mandatory h](j)}(h``free``h]j)}(hj^h]hfree}(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&Close the compressed stream, mandatoryh]h&Close the compressed stream, mandatory}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjn^ubj)}(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)}(hj^h]h set_params}(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)}(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_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj_ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjn^ubj)}(h8``get_params`` retrieve the codec parameters, mandatory h](j)}(h``get_params``h]j)}(hj$_h]h get_params}(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(retrieve the codec parameters, mandatoryh]h(retrieve the codec parameters, mandatory}(hj=_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9_hKhj:_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj9_hKhjn^ubj)}(h6``set_metadata`` Set the metadata values for a stream h](j)}(h``set_metadata``h]j)}(hj]_h]h set_metadata}(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.hhKhjW_ubj)}(hhh]jg)}(h$Set the metadata values for a streamh]h$Set the metadata values for a stream}(hjv_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjr_hKhjs_ubah}(h]h ]h"]h$]h&]uh1jhjW_ubeh}(h]h ]h"]h$]h&]uh1jhjr_hKhjn^ubj)}(hE``get_metadata`` retrieves the requested metadata values from stream h](j)}(h``get_metadata``h]j)}(hj_h]h get_metadata}(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)}(h3retrieves the requested metadata values from streamh]h3retrieves the requested metadata values from stream}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjn^ubj)}(hb``trigger`` Trigger operations like start, pause, resume, drain, stop. This callback is mandatory h](j)}(h ``trigger``h]j)}(hj_h]htrigger}(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)}(hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatoryh]hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatory}(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.hhKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjn^ubj)}(h@``pointer`` Retrieve current h/w pointer information. Mandatory h](j)}(h ``pointer``h]j)}(hj `h]hpointer}(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)}(h3Retrieve current h/w pointer information. Mandatoryh]h3Retrieve current h/w pointer information. Mandatory}(hj"`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjn^ubj)}(hh``copy`` Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmap h](j)}(h``copy``h]j)}(hjB`h]hcopy}(hjD`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^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}(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.hhKhjX`ubah}(h]h ]h"]h$]h&]uh1jhj<`ubeh}(h]h ]h"]h$]h&]uh1jhjW`hKhjn^ubj)}(h,``mmap`` DSP mmap method to mmap DSP memory h](j)}(h``mmap``h]j)}(hj|`h]hmmap}(hj~`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjv`ubj)}(hhh]jg)}(h"DSP mmap method to mmap DSP memoryh]h"DSP mmap method to mmap DSP memory}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhjv`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjn^ubj)}(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)}(hj`h]hack}(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[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}(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.hhKhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjn^ubj)}(h2``get_caps`` Retrieve DSP capabilities, mandatory h](j)}(h ``get_caps``h]j)}(hj`h]hget_caps}(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$Retrieve DSP capabilities, mandatoryh]h$Retrieve DSP capabilities, mandatory}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhjahKhjn^ubj)}(hI``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory h](j)}(h``get_codec_caps``h]j)}(hj(ah]hget_codec_caps}(hj*ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&aubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj"aubj)}(hhh]jg)}(h5Retrieve capabilities for a specific codec, mandatoryh]h5Retrieve capabilities for a specific codec, mandatory}(hjAahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=ahKhj>aubah}(h]h ]h"]h$]h&]uh1jhj"aubeh}(h]h ]h"]h$]h&]uh1jhj=ahKhjn^ubj)}(hJ``task_create`` Create a set of input/output buffers for accel operations h](j)}(h``task_create``h]j)}(hjaah]h task_create}(hjcahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_aubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[aubj)}(hhh]jg)}(h9Create a set of input/output buffers for accel operationsh]h9Create a set of input/output buffers for accel operations}(hjzahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvahKhjwaubah}(h]h ]h"]h$]h&]uh1jhj[aubeh}(h]h ]h"]h$]h&]uh1jhjvahKhjn^ubj)}(h9``task_start`` Start (queue) a task for accel operations h](j)}(h``task_start``h]j)}(hjah]h task_start}(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.hhKhjaubj)}(hhh]jg)}(h)Start (queue) a task for accel operationsh]h)Start (queue) a task for accel operations}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKhjn^ubj)}(h9``task_stop`` Stop (dequeue) a task for accel operations h](j)}(h ``task_stop``h]j)}(hjah]h task_stop}(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.hhKhjaubj)}(hhh]jg)}(h*Stop (dequeue) a task for accel operationsh]h*Stop (dequeue) a task for accel operations}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKhjn^ubj)}(hE``task_free`` Free a set of input/output buffers for accel operationsh](j)}(h ``task_free``h]j)}(hj bh]h task_free}(hjbhhhNhNubah}(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.hhKhjbubj)}(hhh]jg)}(h7Free a set of input/output buffers for accel operationsh]h7Free a set of input/output buffers for accel operations}(hj%bhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj"bubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj!bhKhjn^ubeh}(h]h ]h"]h$]h&]uh1jhj&^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr (C struct) c.snd_comprhNtauh1hhj2hhhNhNubh)}(hhh](h)}(h snd_comprh]h)}(hstruct snd_comprh](jL)}(hjOh]hstruct}(hjfbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbbhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjtbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbbhhhjsbhKubj)}(h snd_comprh]j%)}(hj`bh]h snd_compr}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbbhhhjsbhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^bhhhjsbhKubah}(h]jYbah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjsbhKhj[bhhubjb)}(hhh]jg)}(hCompressed deviceh]hCompressed device}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjbhhubah}(h]h ]h"]h$]h&]uh1jahj[bhhhjsbhKubeh}(h]h ](jstructeh"]h$]h&]jjjjbjjbjjjuh1hhhhj2hNhNubj)}(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}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh:}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjbubj~)}(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; };}hjbsbah}(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.hhKhjbubjg)}(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.hhKhjbubj)}(hhh](j)}(h``name`` DSP device name h](j)}(h``name``h]j)}(hjch]hname}(hjchhhNhNubah}(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.hhKhjcubj)}(hhh]jg)}(hDSP device nameh]hDSP device name}(hj.chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*chKhj+cubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj*chKhj cubj)}(h#``dev`` associated device instance h](j)}(h``dev``h]j)}(hjNch]hdev}(hjPchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLcubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjHcubj)}(hhh]jg)}(hassociated device instanceh]hassociated device instance}(hjgchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjcchKhjdcubah}(h]h ]h"]h$]h&]uh1jhjHcubeh}(h]h ]h"]h$]h&]uh1jhjcchKhj cubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjch]hops}(hjchhhNhNubah}(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.hhKhjcubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKhj cubj)}(h)``private_data`` pointer to DSP pvt data h](j)}(h``private_data``h]j)}(hjch]h private_data}(hjchhhNhNubah}(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.hhKhjcubj)}(hhh]jg)}(hpointer to DSP pvt datah]hpointer to DSP pvt data}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKhj cubj)}(h``card`` sound card pointer h](j)}(h``card``h]j)}(hjch]hcard}(hjchhhNhNubah}(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.hhKhjcubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhKhj cubj)}(h,``direction`` Playback or capture direction h](j)}(h ``direction``h]j)}(hj2dh]h direction}(hj4dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0dubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj,dubj)}(hhh]jg)}(hPlayback or capture directionh]hPlayback or capture direction}(hjKdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGdhKhjHdubah}(h]h ]h"]h$]h&]uh1jhj,dubeh}(h]h ]h"]h$]h&]uh1jhjGdhKhj cubj)}(h``lock`` device lock h](j)}(h``lock``h]j)}(hjkdh]hlock}(hjmdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjidubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjedubj)}(hhh]jg)}(h device lockh]h device lock}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjedubeh}(h]h ]h"]h$]h&]uh1jhjdhKhj cubj)}(h``device`` device id h](j)}(h ``device``h]j)}(hjdh]hdevice}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjdubj)}(hhh]jg)}(h device idh]h device id}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKhj cubj)}(h@``use_pause_in_draining`` allow pause in draining, true when seth](j)}(h``use_pause_in_draining``h]j)}(hjdh]huse_pause_in_draining}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjdubj)}(hhh]jg)}(h&allow pause in draining, true when seth]h&allow pause in draining, true when set}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKhj cubeh}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_compr_use_pause_in_draining (C function)!c.snd_compr_use_pause_in_draininghNtauh1hhj2hhhNhNubh)}(hhh](h)}(hIvoid snd_compr_use_pause_in_draining (struct snd_compr_stream *substream)h]h)}(hHvoid snd_compr_use_pause_in_draining(struct snd_compr_stream *substream)h](h)}(hvoidh]hvoid}(hj7ehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ehhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjFehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ehhhjEehKubj)}(hsnd_compr_use_pause_in_drainingh]j%)}(hsnd_compr_use_pause_in_drainingh]hsnd_compr_use_pause_in_draining}(hjXehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTeubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3ehhhjEehKubj@)}(h$(struct snd_compr_stream *substream)h]jF)}(h"struct snd_compr_stream *substreamh](jL)}(hjOh]hstruct}(hjtehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpeubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jjZesb!c.snd_compr_use_pause_in_drainingasbuh1hhjpeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpeubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpeubj%)}(h substreamh]h substream}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjleubah}(h]h ]h"]h$]h&]j=j>uh1j?hj3ehhhjEehKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/ehhhjEehKubah}(h]j*eah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEehKhj,ehhubjb)}(hhh]jg)}(h(Allow pause and resume in draining stateh]h(Allow pause and resume in draining state}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjehhubah}(h]h ]h"]h$]h&]uh1jahj,ehhhjEehKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1hhhhj2hNhNubj)}(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)}(hjfh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]j)}(hA``struct snd_compr_stream *substream`` compress substream to set h](j)}(h&``struct snd_compr_stream *substream``h]j)}(hj8fh]h"struct snd_compr_stream *substream}(hj:fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6fubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj2fubj)}(hhh]jg)}(hcompress substream to seth]hcompress substream to set}(hjQfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMfhKhjNfubah}(h]h ]h"]h$]h&]uh1jhj2fubeh}(h]h ]h"]h$]h&]uh1jhjMfhKhj/fubah}(h]h ]h"]h$]h&]uh1jhjfubjg)}(h**Description**h]j)}(hjsfh]h Description}(hjufhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqfubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubjg)}(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.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_compr_set_runtime_buffer (C function)c.snd_compr_set_runtime_bufferhNtauh1hhj2hhhNhNubh)}(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}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhjfhMubj)}(hsnd_compr_set_runtime_bufferh]j%)}(hsnd_compr_set_runtime_bufferh]hsnd_compr_set_runtime_buffer}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfhhhjfhMubj@)}(h>(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j)}jjfsbc.snd_compr_set_runtime_bufferasbuh1hhjfubj)}(h h]h }(hj3ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hjAghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(hstreamh]hstream}(hjNghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hstruct snd_dma_buffer *bufph](jL)}(hjOh]hstruct}(hjgghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcgubj)}(h h]h }(hjtghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcgubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j/gc.snd_compr_set_runtime_bufferasbuh1hhjcgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcgubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcgubj%)}(hbufph]hbufp}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(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)}(hSet the Compress runtime bufferh]hSet the Compress runtime buffer}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjghhubah}(h]h ]h"]h$]h&]uh1jahjfhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj2hNhNubj)}(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)}(hj hh]h Parameters}(hj hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjhubj)}(hhh](j)}(h;``struct snd_compr_stream *stream`` compress stream to set h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj)hh]hstruct snd_compr_stream *stream}(hj+hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'hubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj#hubj)}(hhh]jg)}(hcompress stream to seth]hcompress stream to set}(hjBhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hhMhj?hubah}(h]h ]h"]h$]h&]uh1jhj#hubeh}(h]h ]h"]h$]h&]uh1jhj>hhMhj hubj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hjbhh]hstruct snd_dma_buffer *bufp}(hjdhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`hubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj\hubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hj{hhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhhMhjxhubah}(h]h ]h"]h$]h&]uh1jhj\hubeh}(h]h ]h"]h$]h&]uh1jhjwhhMhj hubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjhubjg)}(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 }(hjhhhhNhNubj)}(h**bufp**h]hbufp}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubhA is non-NULL. Otherwise it clears the current buffer information.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj2hhhNhNubeh}(h]compress-offload-apiah ]h"]compress offload apiah$]h&]uh1hhj2hhhhhKXubeh}(h]compress-offloadah ]h"]compress offloadah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hASoCh]hASoC}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhK_ubh)}(hhh](h)}(h ASoC Core APIh]h ASoC Core API}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhhKbubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_kcontrol_component (C function)c.snd_soc_kcontrol_componenthNtauh1hhjhhhhNhNubh)}(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}(hj&ihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ihhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMubj)}(h h]h }(hj4ihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ihhhj3ihMubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjEihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGimodnameN classnameNjj)}j]j)}jsnd_soc_kcontrol_componentsbc.snd_soc_kcontrol_componentasbuh1hhj"ihhhj3ihMubj)}(h h]h }(hjfihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ihhhj3ihMubj)}(hjh]h*}(hjtihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ihhhj3ihMubj)}(hsnd_soc_kcontrol_componenth]j%)}(hjcih]hsnd_soc_kcontrol_component}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"ihhhj3ihMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jaic.snd_soc_kcontrol_componentasbuh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(hkcontrolh]hkcontrol}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubah}(h]h ]h"]h$]h&]j=j>uh1j?hj"ihhhj3ihMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhj3ihMubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3ihMhjihhubjb)}(hhh]jg)}(h1Returns the component that registered the controlh]h1Returns the component that registered the control}(hj!jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjjhhubah}(h]h ]h"]h$]h&]uh1jahjihhhj3ihMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jjj9jjjjuh1hhhhjhhNhNubj)}(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)}(hjCjh]h Parameters}(hjEjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj=jubj)}(hhh]j)}(hM``struct snd_kcontrol *kcontrol`` The control for which to get the component h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjbjh]hstruct snd_kcontrol *kcontrol}(hjdjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`jubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj\jubj)}(hhh]jg)}(h*The control for which to get the componenth]h*The control for which to get the component}(hj{jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwjhMhjxjubah}(h]h ]h"]h$]h&]uh1jhj\jubeh}(h]h ]h"]h$]h&]uh1jhjwjhMhjYjubah}(h]h ]h"]h$]h&]uh1jhj=jubjg)}(h**Note**h]j)}(hjjh]hNote}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj=jubjg)}(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.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj=jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_find_dai (C function)c.snd_soc_find_daihNtauh1hhjhhhhNhNubh)}(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}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjhhhjjhMubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jsnd_soc_find_daisbc.snd_soc_find_daiasbuh1hhjjhhhjjhMubj)}(h h]h }(hj"khhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjhhhjjhMubj)}(hjh]h*}(hj0khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhjjhMubj)}(hsnd_soc_find_daih]j%)}(hjkh]hsnd_soc_find_dai}(hjAkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=kubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjjhhhjjhMubj@)}(h.(const struct snd_soc_dai_link_component *dlc)h]jF)}(h,const struct snd_soc_dai_link_component *dlch](jL)}(hj\h]hconst}(hj\khhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXkubj)}(h h]h }(hjikhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXkubjL)}(hjOh]hstruct}(hjwkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXkubh)}(hhh]j%)}(hsnd_soc_dai_link_componenth]hsnd_soc_dai_link_component}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jkc.snd_soc_find_daiasbuh1hhjXkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXkubj%)}(hdlch]hdlc}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTkubah}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhjjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjjhMubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMhjjhhubjb)}(hhh]jg)}(hFind a registered DAIh]hFind a registered DAI}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjhhNhNubj)}(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)}(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:100: ./sound/soc/soc-core.chMhjlubj)}(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)}(hj9lh]h,const struct snd_soc_dai_link_component *dlc}(hj;lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7lubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj3lubj)}(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}(hjRlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNlhMhjOlubah}(h]h ]h"]h$]h&]uh1jhj3lubeh}(h]h ]h"]h$]h&]uh1jhjNlhMhj0lubah}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjtlh]h Description}(hjvlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrlubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjlubjg)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.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:100: ./sound/soc/soc-core.chMhjlubjg)}(h%pointer of DAI, or NULL if not found.h]h%pointer of DAI, or NULL if not found.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_remove_pcm_runtime (C function)c.snd_soc_remove_pcm_runtimehNtauh1hhjhhhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhMmubj)}(hsnd_soc_remove_pcm_runtimeh]j%)}(hsnd_soc_remove_pcm_runtimeh]hsnd_soc_remove_pcm_runtime}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhMmubj@)}(h<(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hj*mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj;mhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=mmodnameN classnameNjj)}j]j)}jjmsbc.snd_soc_remove_pcm_runtimeasbuh1hhjmubj)}(h h]h }(hj[mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjimhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hcardh]hcard}(hjvmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jWmc.snd_soc_remove_pcm_runtimeasbuh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hrtdh]hrtd}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhMmubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhMmubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhMmhjlhhubjb)}(hhh]jg)}(hRemove a pcm_runtime from cardh]hRemove a pcm_runtime from card}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmhj nhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(njj(njjjuh1hhhhjhhNhNubj)}(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)}(hj2nh]h Parameters}(hj4nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0nubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhj,nubj)}(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)}(hjQnh]hstruct snd_soc_card *card}(hjSnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOnubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMnhjKnubj)}(hhh]jg)}(h*The ASoC card to which the pcm_runtime hash]h*The ASoC card to which the pcm_runtime has}(hjjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfnhMnhjgnubah}(h]h ]h"]h$]h&]uh1jhjKnubeh}(h]h ]h"]h$]h&]uh1jhjfnhMnhjHnubj)}(h>``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjnh]hstruct snd_soc_pcm_runtime *rtd}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMohjnubj)}(hhh]jg)}(hThe pcm_runtime to removeh]hThe pcm_runtime to remove}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMohjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhMohjHnubeh}(h]h ]h"]h$]h&]uh1jhj,nubjg)}(h**Description**h]j)}(hjnh]h Description}(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:100: ./sound/soc/soc-core.chMqhj,nubjg)}(h7This function removes a pcm_runtime from the ASoC card.h]h7This function removes a pcm_runtime from the ASoC card.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhj,nubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_add_pcm_runtime (C function)c.snd_soc_add_pcm_runtimehNtauh1hhjhhhhNhNubh)}(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}(hj ohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjohMubj)}(hsnd_soc_add_pcm_runtimeh]j%)}(hsnd_soc_add_pcm_runtimeh]hsnd_soc_add_pcm_runtime}(hj+ohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'oubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjohMubj@)}(h>(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjGohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCoubj)}(h h]h }(hjTohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCoubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjeohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjboubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgomodnameN classnameNjj)}j]j)}jj-osbc.snd_soc_add_pcm_runtimeasbuh1hhjCoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCoubj%)}(hcardh]hcard}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?oubjF)}(h!struct snd_soc_dai_link *dai_linkh](jL)}(hjOh]hstruct}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hhh]j%)}(hsnd_soc_dai_linkh]hsnd_soc_dai_link}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]joc.snd_soc_add_pcm_runtimeasbuh1hhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hdai_linkh]hdai_link}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?oubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjohMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjohMubah}(h]jnah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohMhjnhhubjb)}(hhh]jg)}(h*Add a pcm_runtime dynamically via dai_linkh]h*Add a pcm_runtime dynamically via dai_link}(hj:phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj7phhubah}(h]h ]h"]h$]h&]uh1jahjnhhhjohMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRpjjRpjjjuh1hhhhjhhNhNubj)}(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)}(hj\ph]h Parameters}(hj^phhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZpubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjVpubj)}(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)}(hj{ph]hstruct snd_soc_card *card}(hj}phhhNhNubah}(h]h ]h"]h$]h&]uh1jhjypubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjupubj)}(hhh]jg)}(h/The ASoC card to which the pcm_runtime is addedh]h/The ASoC card to which the pcm_runtime is added}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjpubah}(h]h ]h"]h$]h&]uh1jhjupubeh}(h]h ]h"]h$]h&]uh1jhjphMhjrpubj)}(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)}(hjph]h!struct snd_soc_dai_link *dai_link}(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:100: ./sound/soc/soc-core.chMhjpubj)}(hhh]jg)}(h The DAI link to find pcm_runtimeh]h The DAI link to find pcm_runtime}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphMhjrpubeh}(h]h ]h"]h$]h&]uh1jhjVpubjg)}(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:100: ./sound/soc/soc-core.chMhjVpubjg)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjVpubjg)}(h**Note**h]j)}(hjqh]hNote}(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:100: ./sound/soc/soc-core.chMhjVpubjg)}(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.}(hj,qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjVpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_runtime_set_dai_fmt (C function)c.snd_soc_runtime_set_dai_fmthNtauh1hhjhhhhNhNubh)}(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}(hj[qhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWqhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWqhhhjiqhMubj)}(hsnd_soc_runtime_set_dai_fmth]j%)}(hsnd_soc_runtime_set_dai_fmth]hsnd_soc_runtime_set_dai_fmt}(hj|qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjWqhhhjiqhMubj@)}(h7(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj~qsbc.snd_soc_runtime_set_dai_fmtasbuh1hhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj%)}(hrtdh]hrtd}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hunsigned int dai_fmth](h)}(hunsignedh]hunsigned}(hj rhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hinth]hint}(hj&rhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hj4rhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(hdai_fmth]hdai_fmt}(hjBrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjWqhhhjiqhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjSqhhhjiqhMubah}(h]jNqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjiqhMhjPqhhubjb)}(hhh]jg)}(h)Change DAI link format for a ASoC runtimeh]h)Change DAI link format for a ASoC runtime}(hjlrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjirhhubah}(h]h ]h"]h$]h&]uh1jahjPqhhhjiqhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1hhhhjhhNhNubj)}(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)}(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:100: ./sound/soc/soc-core.chMhjrubj)}(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)}(hjrh]hstruct snd_soc_pcm_runtime *rtd}(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:100: ./sound/soc/soc-core.chMhjrubj)}(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}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhMhjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjrubj)}(h1``unsigned int dai_fmt`` The new DAI link format h](j)}(h``unsigned int dai_fmt``h]j)}(hjrh]hunsigned int dai_fmt}(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:100: ./sound/soc/soc-core.chMhjrubj)}(hhh]jg)}(hThe new DAI link formath]hThe new DAI link format}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhMhjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjrubeh}(h]h ]h"]h$]h&]uh1jhjrubjg)}(h**Description**h]j)}(hj!sh]h Description}(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:100: ./sound/soc/soc-core.chMhjrubjg)}(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.}(hj7shhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjrubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(hjFshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjrubjg)}(h**Note**h]j)}(hjWsh]hNote}(hjYshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjrubjg)}(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.}(hjmshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_set_dmi_name (C function)c.snd_soc_set_dmi_namehNtauh1hhjhhhhNhNubh)}(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}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjshhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMaubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjshhhjshMaubj)}(hsnd_soc_set_dmi_nameh]j%)}(hsnd_soc_set_dmi_nameh]hsnd_soc_set_dmi_name}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjshhhjshMaubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jjssbc.snd_soc_set_dmi_nameasbuh1hhjsubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hj%thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(hcardh]hcard}(hj2thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubah}(h]h ]h"]h$]h&]j=j>uh1j?hjshhhjshMaubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjshhhjshMaubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshMahjshhubjb)}(hhh]jg)}(hRegister DMI names to cardh]hRegister DMI names to card}(hj\thhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMahjYthhubah}(h]h ]h"]h$]h&]uh1jahjshhhjshMaubeh}(h]h ](jfunctioneh"]h$]h&]jjjjttjjttjjjuh1hhhhjhhNhNubj)}(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~th]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|tubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMehjxtubj)}(hhh]j)}(h=``struct snd_soc_card *card`` The card to register DMI names h](j)}(h``struct snd_soc_card *card``h]j)}(hjth]hstruct snd_soc_card *card}(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:100: ./sound/soc/soc-core.chMbhjtubj)}(hhh]jg)}(hThe card to register DMI namesh]hThe card to register DMI names}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMbhjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthMbhjtubah}(h]h ]h"]h$]h&]uh1jhjxtubjg)}(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:100: ./sound/soc/soc-core.chMdhjxtubjg)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMdhjxtubjg)}(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}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMohjxtubjg)}(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”.}(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.chMthjxtubjg)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMwhjxtubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(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.chM|hjxtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_cnew (C function)c.snd_soc_cnewhNtauh1hhjhhhhNhNubh)}(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}(hjYuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUuhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMm ubj)}(h h]h }(hjguhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUuhhhjfuhMm ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjxuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzumodnameN classnameNjj)}j]j)}j snd_soc_cnewsbc.snd_soc_cnewasbuh1hhjUuhhhjfuhMm ubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUuhhhjfuhMm ubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUuhhhjfuhMm ubj)}(h snd_soc_cnewh]j%)}(hjuh]h snd_soc_cnew}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUuhhhjfuhMm 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}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubjL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hj vhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj vubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]juc.snd_soc_cnewasbuh1hhjuubj)}(h h]h }(hj*vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hj8vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(h _templateh]h _template}(hjEvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj^vhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZvubj)}(h h]h }(hjlvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZvubj)}(hjh]h*}(hjzvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZvubj%)}(hdatah]hdata}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(hconst char *long_nameh](jL)}(hj\h]hconst}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hcharh]hchar}(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 long_nameh]h long_name}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(hconst char *prefixh](jL)}(hj\h]hconst}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hj whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hcharh]hchar}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvubj)}(h h]h }(hj&whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hj4whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hprefixh]hprefix}(hjAwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjUuhhhjfuhMm ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQuhhhjfuhMm ubah}(h]jLuah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfuhMm hjNuhhubjb)}(hhh]jg)}(hcreate new controlh]hcreate new control}(hjkwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMm hjhwhhubah}(h]h ]h"]h$]h&]uh1jahjNuhhhjfuhMm ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjhhNhNubj)}(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)}(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.chMq hjwubj)}(hhh](j)}(h>``const struct snd_kcontrol_new *_template`` control template h](j)}(h,``const struct snd_kcontrol_new *_template``h]j)}(hjwh]h(const struct snd_kcontrol_new *_template}(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.chMn hjwubj)}(hhh]jg)}(hcontrol templateh]hcontrol template}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMn hjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMn hjwubj)}(h$``void *data`` control private data h](j)}(h``void *data``h]j)}(hjwh]h void *data}(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.chMo hjwubj)}(hhh]jg)}(hcontrol private datah]hcontrol private data}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMo hjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMo hjwubj)}(h,``const char *long_name`` control long name h](j)}(h``const char *long_name``h]j)}(hjxh]hconst char *long_name}(hj xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMp hjxubj)}(hhh]jg)}(hcontrol long nameh]hcontrol long name}(hj7xhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3xhMp hj4xubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhj3xhMp hjwubj)}(h+``const char *prefix`` control name prefix h](j)}(h``const char *prefix``h]j)}(hjWxh]hconst char *prefix}(hjYxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUxubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMq hjQxubj)}(hhh]jg)}(hcontrol name prefixh]hcontrol name prefix}(hjpxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlxhMq hjmxubah}(h]h ]h"]h$]h&]uh1jhjQxubeh}(h]h ]h"]h$]h&]uh1jhjlxhMq hjwubeh}(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.chMs hjwubjg)}(h3Create a new mixer control from a template control.h]h3Create a new mixer control from a template control.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMs hjwubjg)}(h"Returns 0 for success, else error.h]h"Returns 0 for success, else error.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu hjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_add_component_controls (C function) c.snd_soc_add_component_controlshNtauh1hhjhhhhNhNubh)}(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}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhjxhM ubj)}(hsnd_soc_add_component_controlsh]j%)}(hsnd_soc_add_component_controlsh]hsnd_soc_add_component_controls}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhjxhM 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}(hj#yhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hj0yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjAyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCymodnameN classnameNjj)}j]j)}jj ysb c.snd_soc_add_component_controlsasbuh1hhjyubj)}(h h]h }(hjayhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjoyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(h componenth]h component}(hj|yhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubjL)}(hjOh]hstruct}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j]y c.snd_soc_add_component_controlsasbuh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hcontrolsh]hcontrols}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hunsigned int num_controlsh](h)}(hunsignedh]hunsigned}(hj zhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hj.zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hinth]hint}(hjuh1jEhjyubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhjxhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxhhhjxhM ubah}(h]jxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhM hjxhhubjb)}(hhh]jg)}(h(Add an array of controls to a component.h]h(Add an array of controls to a component.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjzhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhjxhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjhhNhNubj)}(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)}(hjzh]h Parameters}(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.chM hjzubj)}(hhh](j)}(hE``struct snd_soc_component *component`` Component to add controls to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjzh]h#struct snd_soc_component *component}(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.chM hjzubj)}(hhh]jg)}(hComponent to add controls toh]hComponent to add controls to}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhM hjzubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjzhM hjzubj)}(hE``const struct snd_kcontrol_new *controls`` Array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjzh]h'const struct snd_kcontrol_new *controls}(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.chM hjzubj)}(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&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj{hM hjzubj)}(h>``unsigned int num_controls`` Number of elements in the array h](j)}(h``unsigned int num_controls``h]j)}(hj5{h]hunsigned int num_controls}(hj7{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3{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)}(hNumber of elements in the arrayh]hNumber of elements in the array}(hjN{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJ{hM hjK{ubah}(h]h ]h"]h$]h&]uh1jhj/{ubeh}(h]h ]h"]h$]h&]uh1jhjJ{hM hjzubeh}(h]h ]h"]h$]h&]uh1jhjzubjg)}(h **Return**h]j)}(hjp{h]hReturn}(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:100: ./sound/soc/soc-core.chM hjzubjg)}(h0 for success, else error.h]h0 for success, else error.}(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 hjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_add_card_controls (C function)c.snd_soc_add_card_controlshNtauh1hhjhhhhNhNubh)}(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 }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{hhhj{hM ubj)}(hsnd_soc_add_card_controlsh]j%)}(hsnd_soc_add_card_controlsh]hsnd_soc_add_card_controls}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj{hhhj{hM 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}(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_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)}jj{sbc.snd_soc_add_card_controlsasbuh1hhj{ubj)}(h h]h }(hj0|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj)}(hjh]h*}(hj>|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj%)}(hsoc_cardh]hsoc_card}(hjK|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjd|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`|ubj)}(h h]h }(hjq|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}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j,|c.snd_soc_add_card_controlsasbuh1hhj`|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%)}(hcontrolsh]hcontrols}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{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}(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{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)}(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.}(hj5}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 hj2}hhubah}(h]h ]h"]h$]h&]uh1jahj{hhhj{hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjM}jjM}jjjuh1hhhhjhhNhNubj)}(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)}(hjW}h]h Parameters}(hjY}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU}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 hjQ}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)}(hjv}h]hstruct snd_soc_card *soc_card}(hjx}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt}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 hjp}ubj)}(hhh]jg)}(hSoC card to add controls toh]hSoC card to add controls to}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hM hj}ubah}(h]h ]h"]h$]h&]uh1jhjp}ubeh}(h]h ]h"]h$]h&]uh1jhj}hM hjm}ubj)}(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 hjm}ubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hj}h]hint num_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)}(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 hjm}ubeh}(h]h ]h"]h$]h&]uh1jhjQ}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.chM hjQ}ubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hj9~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 hjQ}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_add_dai_controls (C function)c.snd_soc_add_dai_controlshNtauh1hhjhhhhNhNubh)}(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}(hjh~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjd~hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjw~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd~hhhjv~hM ubj)}(hsnd_soc_add_dai_controlsh]j%)}(hsnd_soc_add_dai_controlsh]hsnd_soc_add_dai_controls}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjd~hhhjv~hM 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}(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_add_dai_controlsasbuh1hhj~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%)}(hdaih]hdai}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(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}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j~c.snd_soc_add_dai_controlsasbuh1hhjubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubjF)}(hint num_controlsh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h num_controlsh]h num_controls}(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?hjd~hhhjv~hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`~hhhjv~hM ubah}(h]j[~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjv~hM hj]~hhubjb)}(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&]uh1jahj]~hhhjv~hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(hj h]h Parameters}(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:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(h3``struct snd_soc_dai *dai`` DAI to add controls to h](j)}(h``struct snd_soc_dai *dai``h]j)}(hj)h]hstruct snd_soc_dai *dai}(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)}(hDAI to add controls toh]hDAI to add controls to}(hjBhhhNhNubah}(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)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjbh]h'const struct snd_kcontrol_new *controls}(hjdhhhNhNubah}(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&]uh1jfhjwhM hjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhM hj ubj)}(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 hjubj)}(hhh]jg)}(hnumber of elements in the arrayh]hnumber of elements in the array}(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)}(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.chM hjubjg)}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_card (C function)c.snd_soc_register_cardhNtauh1hhjhhhhNhNubh)}(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}(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 }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj)hM ubj)}(hsnd_soc_register_cardh]j%)}(hsnd_soc_register_cardh]hsnd_soc_register_card}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj)hM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jj>sbc.snd_soc_register_cardasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hcardh]hcard}(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)}(h"Register a card with the ASoC coreh]h"Register 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&]uh1jahjhhhj)hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(h@**Parameters** ``struct snd_soc_card *card`` Card to registerh](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)}(h.``struct snd_soc_card *card`` Card to registerh](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 registerh]hCard to register}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_card (C function)c.snd_soc_unregister_cardhNtauh1hhjhhhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhf/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 hjrhhhjhM 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>uh1jhjrhhhjhM 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 }(hjhhhNhNubah}(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_unregister_cardasbuh1hhjubj)}(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>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)}(h$Unregister a card with the ASoC coreh]h$Unregister a card with the ASoC core}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj3hhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjhhNhNubj)}(hB**Parameters** ``struct snd_soc_card *card`` Card to unregisterh](jg)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjRubj)}(hhh]j)}(h0``struct snd_soc_card *card`` Card to unregisterh](j)}(h``struct snd_soc_card *card``h]j)}(hjwh]hstruct snd_soc_card *card}(hjyhhhNhNubah}(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.chM hjqubj)}(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&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhM hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_register_dai (C function)c.snd_soc_register_daihNtauh1hhjhhhhNhNubh)}(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}(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.chMl ubj)}(h h]h }(hj߃hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj̓hhhjރhMl 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_daiasbuh1hhj̓hhhjރhMl ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj̓hhhjރhMl ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj̓hhhjރhMl ubj)}(hsnd_soc_register_daih]j%)}(hjh]hsnd_soc_register_dai}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj̓hhhjރhMl 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}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(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 c.snd_soc_register_daiasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(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}(hjلhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjքubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjۄmodnameN classnameNjj)}j]j c.snd_soc_register_daiasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(hbool legacy_dai_namingh](h)}(hjh]hbool}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj%)}(hlegacy_dai_namingh]hlegacy_dai_naming}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj̓hhhjރhMl ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjɃhhhjރhMl ubah}(h]jăah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjރhMl hjƃhhubjb)}(hhh]jg)}(h/Register a DAI dynamically & create its widgetsh]h/Register a DAI dynamically & create its widgets}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMl hjmhhubah}(h]h ]h"]h$]h&]uh1jahjƃhhhjރhMl ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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.chMp 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.chMn hjubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjʅhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjƅhMn hjDžubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjƅhMn hjubj)}(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.chMo hjubj)}(hhh]jg)}(hDAI driver to use for the DAIh]hDAI driver to use for the DAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMo hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMo hjubj)}(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)}(hj#h]hbool legacy_dai_naming}(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.chMq hjubj)}(hhh]jg)}(hSif ``true``, use legacy single-name format; if ``false``, use multiple-name format;h](hif }(hj<hhhNhNubj)}(h``true``h]htrue}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh$, use legacy single-name format; if }(hj<hhhNhNubj)}(h ``false``h]hfalse}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh, use multiple-name format;}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMp hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hMq 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:100: ./sound/soc/soc-core.chMs 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMs hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_dais (C function)c.snd_soc_unregister_daishNtauh1hhjhhhhNhNubh)}(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}(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 }(hj׆hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjĆhhhjֆhM 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>uh1jhjĆhhhjֆhM ubj@)}(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}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjsbc.snd_soc_unregister_daisasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(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Ćhhhjֆ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"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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjֆhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(hq**Parameters** ``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](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)}(h_``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](j)}(h'``struct snd_soc_component *component``h]j)}(hjɇh]h#struct snd_soc_component *component}(hjˇhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLJubah}(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)}(h7The component for which the DAIs should be unregisteredh]h7The component for which the DAIs should be unregistered}(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߇ubah}(h]h ]h"]h$]h&]uh1jhjÇubeh}(h]h ]h"]h$]h&]uh1jhjއhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_dais (C function)c.snd_soc_register_daishNtauh1hhjhhhhNhNubh)}(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}(hj#hhhNhNubah}(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 }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hM ubj)}(hsnd_soc_register_daish]j%)}(hsnd_soc_register_daish]hsnd_soc_register_dais}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hM 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}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(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 reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_soc_register_daisasbuh1hhj\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>uh1jEhjXubjF)}(h"struct snd_soc_dai_driver *dai_drvh](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_dai_driverh]hsnd_soc_dai_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_register_daisasbuh1hhjΈubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjΈubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΈubj%)}(hdai_drvh]hdai_drv}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjΈubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jc.snd_soc_register_daisasbuh1hhj>ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj%)}(hcounth]hcount}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hM hjhhubjb)}(hhh]jg)}(h!Register a DAI with the ASoC coreh]h!Register a DAI 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&]uh1jahjhhhj1hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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)}(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)}(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 DAIsh]hDAI driver to use for the DAIs}(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)}(h``size_t count`` Number of DAIsh](j)}(h``size_t count``h]j)}(hjNh]h size_t count}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjHubj)}(hhh]jg)}(hNumber of DAIsh]hNumber of DAIs}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchM hjӉubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_unregister_component_by_driver (C function)(c.snd_soc_unregister_component_by_driverhNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMi ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMi ubj)}(h&snd_soc_unregister_component_by_driverh]j%)}(h&snd_soc_unregister_component_by_driverh]h&snd_soc_unregister_component_by_driver}(hjɊhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjŊubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMi 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&]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ˊsb(c.snd_soc_unregister_component_by_driverasbuh1hhjubj)}(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)}(h7const struct snd_soc_component_driver *component_driverh](jL)}(hj\h]hconst}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubjL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(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]j(c.snd_soc_unregister_component_by_driverasbuh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hcomponent_driverh]hcomponent_driver}(hjɋhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj݊ubeh}(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)}(huh1jhjÌhhhjՌhKubj@)}(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}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsb!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hj]hhhNhNubah}(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}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(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]j>!c.devm_snd_soc_register_componentasbuh1hhjrubj)}(h h]h }(hj͍hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjۍhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(h cmpnt_drvh]h cmpnt_drv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(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 reftargetj!modnameN classnameNjj)}j]j>!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int num_daih](h)}(hinth]hint}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(hnum_daih]hnum_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjÌhhhjՌhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjՌhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjՌhKhjhhubjb)}(hhh]jg)}(h'resource managed component registrationh]h'resource managed component registration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjՌhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjώjjώjjjuh1hhhhjhhNhNubj)}(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.chKhjӎubj)}(hhh](j)}(h7``struct device *dev`` Device used to manage component 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.chKhjubj)}(hhh]jg)}(hDevice used to manage componenth]hDevice used to manage component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hF``const struct snd_soc_component_driver *cmpnt_drv`` Component driver h](j)}(h4``const struct snd_soc_component_driver *cmpnt_drv``h]j)}(hj1h]h0const struct snd_soc_component_driver *cmpnt_drv}(hj3hhhNhNubah}(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)}(hComponent driverh]hComponent driver}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhKhjubj)}(h2``struct snd_soc_dai_driver *dai_drv`` DAI driver h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjjh]h"struct snd_soc_dai_driver *dai_drv}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjdubj)}(hhh]jg)}(h DAI driverh]h DAI driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h+``int num_dai`` Number of DAIs to register h](j)}(h``int num_dai``h]j)}(hjh]h int num_dai}(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)}(hNumber of DAIs to registerh]hNumber of DAIs to register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjӎubjg)}(h**Description**h]j)}(hjޏh]h Description}(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:101: ./sound/soc/soc-devres.chKhjӎubjg)}(hSRegister a component with automatic unregistration when the device is unregistered.h]hSRegister a component 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.chKhjӎubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'devm_snd_soc_register_card (C function)c.devm_snd_soc_register_cardhNtauh1hhjhhhhNhNubh)}(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}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK:ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hK:ubj)}(hdevm_snd_soc_register_cardh]j%)}(hdevm_snd_soc_register_cardh]hdevm_snd_soc_register_card}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hK:ubj@)}(h/(struct device *dev, struct snd_soc_card *card)h](jF)}(hstruct device *devh](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%)}(hdeviceh]hdevice}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.devm_snd_soc_register_cardasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(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>uh1jEhjXubjF)}(hstruct snd_soc_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%)}(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]jc.devm_snd_soc_register_cardasbuh1hhjΐ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>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hK:ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hK:ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hK:hjhhubjb)}(hhh]jg)}(h"resource managed card registrationh]h"resource managed card registration}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK:hjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj1hK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhjhhNhNubj)}(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)}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK>hjoubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK;hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(h/``struct snd_soc_card *card`` Card to register 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&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjoubjg)}(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>hjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_dmaengine_pcm_register (C function)!c.devm_snd_dmaengine_pcm_registerhNtauh1hhjhhhhNhNubh)}(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}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKeubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhj[hKeubj)}(hdevm_snd_dmaengine_pcm_registerh]j%)}(hdevm_snd_dmaengine_pcm_registerh]hdevm_snd_dmaengine_pcm_register}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhj[hKeubj@)}(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 ]jXaCh"]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)}jjpsb!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj)}(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)}(h-const struct snd_dmaengine_pcm_config *configh](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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]jĒ!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hconfigh]hconfig}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int flagsh](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%)}(hflagsh]hflags}(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[hKeubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhj[hKeubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hKehjBhhubjb)}(hhh]jg)}(h+resource managed dmaengine PCM registrationh]h+resource managed dmaengine PCM registration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKehjhhubah}(h]h ]h"]h$]h&]uh1jahjBhhhj[hKeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chKihjubj)}(hhh](j)}(h<``struct device *dev`` The parent device for the PCM device h](j)}(h``struct device *dev``h]j)}(hj*h]hstruct device *dev}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKfhj$ubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hKfhj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hKfhj!ubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjch]h-const struct snd_dmaengine_pcm_config *config}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKghj]ubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhKghjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhKghj!ubj)}(h0``unsigned int flags`` Platform specific quirks h](j)}(h``unsigned int flags``h]j)}(hjh]hunsigned int 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:101: ./sound/soc/soc-devres.chKhhjubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhhj!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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKjhjubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKjhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_set_sysclk (C function)c.snd_soc_component_set_sysclkhNtauh1hhjhhhhNhNubh)}(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.chKEubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj*hKEubj)}(hsnd_soc_component_set_sysclkh]j%)}(hsnd_soc_component_set_sysclkh]hsnd_soc_component_set_sysclk}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj*hKEubj@)}(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}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj?sbc.snd_soc_component_set_sysclkasbuh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubjF)}(h int clk_idh](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%)}(hclk_idh]hclk_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjǕubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubjF)}(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>uh1jEhjQubjF)}(hunsigned int freqh](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%)}(hfreqh]hfreq}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubjF)}(hint dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj*hKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj*hKEubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hKEhjhhubjb)}(hhh]jg)}(h+configure COMPONENT system or master clock.h]h+configure COMPONENT system or master clock.}(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.chKEhjɖhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj*hKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chKIhjubj)}(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}(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.chKFhjubj)}(hhh]jg)}(h COMPONENTh]h COMPONENT}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hKFhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hKFhjubj)}(h%``int clk_id`` DAI specific clock ID h](j)}(h``int clk_id``h]j)}(hjFh]h int clk_id}(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.chKGhj@ubj)}(hhh]jg)}(hDAI specific clock IDh]hDAI specific clock ID}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKGhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hKGhjubj)}(h$``int source`` Source for the clock h](j)}(h``int source``h]j)}(hjh]h int source}(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.chKHhjyubj)}(hhh]jg)}(hSource for the clockh]hSource for the clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjubj)}(h0``unsigned int freq`` new clock frequency in Hz h](j)}(h``unsigned int freq``h]j)}(hjh]hunsigned int freq}(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.chKIhjubj)}(hhh]jg)}(hnew clock frequency in Hzh]hnew clock frequency in Hz}(hjїhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj͗hKIhjΗubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj͗hKIhjubj)}(h0``int dir`` new clock direction - input/output. h](j)}(h ``int dir``h]j)}(hjh]hint dir}(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.chKJhjubj)}(hhh]jg)}(h#new clock direction - input/output.h]h#new clock direction - input/output.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubeh}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjubjg)}(h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.h]h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_component_set_jack (C function)c.snd_soc_component_set_jackhNtauh1hhjhhhhNhNubh)}(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}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmhhhk/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 hjmhhhjhM ubj)}(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>uh1jhjmhhhjhM ubj@)}(hL(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)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}(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_set_jackasbuh1hhjubj)}(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>uh1jEhjubjF)}(hstruct snd_soc_jack *jackh](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_soc_jackh]h snd_soc_jack}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]jc.snd_soc_component_set_jackasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjackh]hjack}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *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%)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjhM ubah}(h]jdah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjfhhubjb)}(hhh]jg)}(hconfigure component jack.h]hconfigure component jack.}(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 hjhhubah}(h]h ]h"]h$]h&]uh1jahjfhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chM hjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hM hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hM hjubj)}(h<``struct snd_soc_jack *jack`` structure to use for the 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&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjWubj)}(hhh]jg)}(hstructure to use for the jackh]hstructure to use for the jack}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhM hjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhM 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}(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&]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.}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_component_get_jack_type (C function)!c.snd_soc_component_get_jack_typehNtauh1hhjhhhhNhNubh)}(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.chMubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj$hMubj)}(hsnd_soc_component_get_jack_typeh]j%)}(hsnd_soc_component_get_jack_typeh]hsnd_soc_component_get_jack_type}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(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}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(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)}jj9sb!c.snd_soc_component_get_jack_typeasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubah}(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]h}(h]h ]h"]h$]h&]uh1jahj hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjߛjjߛjjjuh1hhhhjhhNhNubj)}(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)}(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}(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.chMhjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(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**Description**h]j)}(hjCh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(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)}(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.}(hjYhhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_init_regmap (C function)c.snd_soc_component_init_regmaphNtauh1hhjhhhhNhNubh)}(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}(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_init_regmaph]j%)}(hsnd_soc_component_init_regmaph]hsnd_soc_component_init_regmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h<(struct snd_soc_component *component, struct regmap *regmap)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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.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%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct regmap *regmaph](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(hregmaph]hregmap}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jc.snd_soc_component_init_regmapasbuh1hhj3ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(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)}(h,Initialize regmap instance for the componenth]h,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}hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjНjjНjjjuh1hhhhjhhNhNubj)}(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}(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.chMhjԝubj)}(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)}(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)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hS``struct regmap *regmap`` The regmap instance that should be used by the component h](j)}(h``struct regmap *regmap``h]j)}(hj2h]hstruct regmap *regmap}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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)}(h8The regmap instance that should be used by the componenth]h8The regmap instance that should be used by the component}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubeh}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjԝubjg)}(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.chMhjԝubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_exit_regmap (C function)c.snd_soc_component_exit_regmaphNtauh1hhjhhhhNhNubh)}(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}(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_exit_regmaph]j%)}(hsnd_soc_component_exit_regmaph]hsnd_soc_component_exit_regmap}(hjӞhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjϞubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj՞sbc.snd_soc_component_exit_regmapasbuh1hhjubj)}(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}(hjHhhhNhNubah}(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/De-initialize regmap instance for the componenth]h/De-initialize regmap instance for the component}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjohhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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)}(hhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhjPhMubh)}(hinth]hint}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>hhhjPhMubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhjPhMubj)}(hsnd_soc_component_readh]j%)}(hsnd_soc_component_readh]hsnd_soc_component_read}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhjPhMubj@)}(h7(struct snd_soc_component *component, unsigned int reg)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)}jjsbc.snd_soc_component_readasbuh1hhjubj)}(h h]h }(hj٠hhhNhNubah}(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>uh1jEhjubjF)}(hunsigned int regh](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}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hregh]hreg}(hjEhhhNhNubah}(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>hhhjPhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:hhhjPhMubah}(h]j5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhMhj7hhubjb)}(hhh]jg)}(hRead register valueh]hRead register value}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlhhubah}(h]h ]h"]h$]h&]uh1jahj7hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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 read fromh]hComponent to read from}(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 reg`` Register to read 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.chMhjubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(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}(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.chMhjubjg)}(h read valueh]h read 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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_component_write (C function)c.snd_soc_component_writehNtauh1hhjhhhhNhNubh)}(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}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjwhM ubj)}(hsnd_soc_component_writeh]j%)}(hsnd_soc_component_writeh]hsnd_soc_component_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhjwhM ubj@)}(hI(struct snd_soc_component *component, unsigned int reg, unsigned int val)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}(hjĢhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƢmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_writeasbuh1hhjubj)}(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>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjeubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhjwhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjwhM ubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjwhM hj^hhubjb)}(hhh]jg)}(hWrite register valueh]hWrite register 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.chM hjȣhhubah}(h]h ]h"]h$]h&]uh1jahj^hhhjwhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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 write to 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.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(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 reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjEh]hunsigned int reg}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(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}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhMhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjubj)}(h4``unsigned int val`` Value to write to the register h](j)}(h``unsigned int val``h]j)}(hj~h]hunsigned int val}(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)}(hValue to write to the registerh]hValue to write to the register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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.0 on success, a negative error code otherwise.h]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:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_update_bits (C function)c.snd_soc_component_update_bitshNtauh1hhjhhhhNhNubh)}(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.chM7ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM7ubj)}(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>uh1jhjhhhj hM7ubj@)}(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&]uh1jKhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.snd_soc_component_update_bitsasbuh1hhj7ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubjF)}(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>uh1jEhj3ubjF)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(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>uh1jEhj3ubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hM7ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM7ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM7hjhhubjb)}(hhh]jg)}(hPerform read/modify/write cycleh]hPerform read/modify/write cycle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM7hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hM7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjɦjjɦjjjuh1hhhhjhhNhNubj)}(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)}(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:102: ./sound/soc/soc-component.chM;hjͦubj)}(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.chM8hjubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubj)}(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.chM9hj%ubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hM9hjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hM9hjubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjdh]hunsigned int mask}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(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)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhM:hjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhM:hjubj)}(h>``unsigned int val`` New value for the bits specified by mask 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.chM;hjubj)}(hhh]jg)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(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&]uh1jhjͦ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:102: ./sound/soc/soc-component.chM=hjͦubjg)}(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.chM=hjͦubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_soc_component_update_bits_async (C function)%c.snd_soc_component_update_bits_asynchNtauh1hhjhhhhNhNubh)}(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.chMUubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj+hMUubj)}(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$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj+hMUubj@)}(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}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jj@sb%c.snd_soc_component_update_bits_asyncasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hunsigned int regh](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%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjȨubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(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}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj+hMUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj+hMUubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj+hMUhjhhubjb)}(hhh]jg)}(h,Perform asynchronous read/modify/write cycleh]h,Perform asynchronous read/modify/write cycle}(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.chMUhjͩhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj+hMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chMYhjubj)}(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.chMWhj ubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hMWhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hMWhjubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hjJh]hunsigned int reg}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMXhjDubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hMXhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMXhjubj)}(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.chMYhj}ubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMYhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(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)}(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.chMZhjubj)}(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&]uh1jfhjѪhMZhjҪubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѪhMZhjubeh}(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.chM\hjubjg)}(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.}(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\hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hj hhhNhNubah}(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.chMahjubjg)}(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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMahjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_read_field (C function)c.snd_soc_component_read_fieldhNtauh1hhjhhhhNhNubh)}(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}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMyubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_hhhjqhMyubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_hhhjqhMyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_hhhjqhMyubj)}(hsnd_soc_component_read_fieldh]j%)}(hsnd_soc_component_read_fieldh]hsnd_soc_component_read_field}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_hhhjqhMyubj@)}(hJ(struct snd_soc_component *component, unsigned int reg, unsigned int mask)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 reftargetjܫmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_read_fieldasbuh1hhjubj)}(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>uh1jEhjubjF)}(hunsigned int regh](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}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*ubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj%)}(hregh]hreg}(hjfhhhNhNubah}(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&]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%)}(hmaskh]hmask}(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_hhhjqhMyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[hhhjqhMyubah}(h]jVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjqhMyhjXhhubjb)}(hhh]jg)}(hRead register field valueh]hRead register field 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.chMyhjެhhubah}(h]h ]h"]h$]h&]uh1jahjXhhhjqhMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chMzhjubj)}(hhh]jg)}(hComponent to read fromh]hComponent to read from}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMzhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMzhjubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hj[h]hunsigned int reg}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM{hjUubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphM{hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphM{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}(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 **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~hjubjg)}(hread value of register field.h]hread value of register field.}(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~hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_write_field (C function)c.snd_soc_component_write_fieldhNtauh1hhjhhhhNhNubh)}(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 }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hMubj)}(hsnd_soc_component_write_fieldh]j%)}(hsnd_soc_component_write_fieldh]hsnd_soc_component_write_field}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj"hMubj@)}(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}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.snd_soc_component_write_fieldasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjîhhhNhNubah}(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%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(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}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(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)}(hwrite to register fieldh]hwrite to register field}(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&]uh1jahj hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj߯jj߯jjjuh1hhhhjhhNhNubj)}(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)}(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 write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(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.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hj!hhhNhNubah}(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)}(hjAh]hunsigned int reg}(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.chMhj;ubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMhjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjubj)}(h;``unsigned int mask`` mask of the register field to update h](j)}(h``unsigned int mask``h]j)}(hjzh]hunsigned int mask}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjtubj)}(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&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h1``unsigned int val`` value of the field to write 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 of the field to writeh]hvalue of the field to write}(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 **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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_component_async_complete (C function)"c.snd_soc_component_async_completehNtauh1hhjhhhhNhNubh)}(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}(hj3hhhNhNubah}(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 }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhjAhMubj)}(h snd_soc_component_async_completeh]j%)}(h snd_soc_component_async_completeh]h snd_soc_component_async_complete}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhjAhMubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(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)}jjVsb"c.snd_soc_component_async_completeasbuh1hhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(h componenth]h component}(hjɱhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjhubah}(h]h ]h"]h$]h&]j=j>uh1j?hj/hhhjAhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj+hhhjAhMubah}(h]j&ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhMhj(hhubjb)}(hhh]jg)}(h%Ensure asynchronous I/O has completedh]h%Ensure asynchronous I/O has completed}(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(hhhjAhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhhNhNubj)}(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)}(hj4h]h#struct snd_soc_component *component}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(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 for which to waith]hComponent for which to wait}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhj+ubah}(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&]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.}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_component_test_bits (C function)c.snd_soc_component_test_bitshNtauh1hhjhhhhNhNubh)}(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}(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)}(hsnd_soc_component_test_bitsh]j%)}(hsnd_soc_component_test_bitsh]hsnd_soc_component_test_bits}(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, unsigned int reg, unsigned int mask, unsigned int value)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$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjײsbc.snd_soc_component_test_bitsasbuh1hhjubj)}(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}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int regh](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}(hjhhhNhNubah}(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>uh1jEhjubjF)}(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 }(hj޳hhhNhNubah}(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 valueh](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%)}(hvalueh]hvalue}(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?hjhhhj²hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj²hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj²hMhjhhubjb)}(hhh]jg)}(hTest register for changeh]hTest register for change}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj²hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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&]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)}(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.chMhjubj)}(hhh]jg)}(h componenth]h component}(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 test 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.chMhj۴ubj)}(hhh]jg)}(hRegister to testh]hRegister to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj۴ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubj)}(h-``unsigned int value`` Value to test against h](j)}(h``unsigned int value``h]j)}(hjSh]hunsigned int value}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjMubj)}(hhh]jg)}(hValue to test againsth]hValue to test against}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhMhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjubeh}(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.}(hjhhhNhNubah}(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)}(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)}(h1 for change, otherwise 0.h]h1 for change, otherwise 0.}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_runtime_action (C function)c.snd_soc_runtime_actionhNtauh1hhjhhhhNhNubh)}(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&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMXubj)}(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>uh1jhjhhhjhMXubj@)}(h9(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_actionasbuh1hhj3ubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(hrtdh]hrtd}(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}(hjŶhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(h int actionh](h)}(hinth]hint}(hj޶hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjڶubj)}(h h]h }(hjhhhNhNubah}(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>uh1jEhj/ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMXubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMXhjhhubjb)}(hhh]jg)}(h;Increment/Decrement active count for PCM runtime componentsh]h;Increment/Decrement active count for PCM runtime components}(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.chMXhj!hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhjhhNhNubj)}(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)}(hjFh]h Parameters}(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: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)}(hjeh]hstruct snd_soc_pcm_runtime *rtd}(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:103: ./sound/soc/soc-pcm.chMZhj_ubj)}(hhh]jg)}(h"ASoC PCM runtime that is activatedh]h"ASoC PCM runtime that is activated}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMZhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhMZhj\ubj)}(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.chM[hjubj)}(hhh]jg)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hj\ubj)}(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&]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\hjѷubj)}(hhh]jg)}(h'Activate stream if 1. Deactivate if -1.h]h'Activate stream if 1. Deactivate if -1.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM\hjubah}(h]h ]h"]h$]h&]uh1jhjѷubeh}(h]h ]h"]h$]h&]uh1jhjhM\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: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.}(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^hj@ubjg)}(h7Must be called with the rtd->card->pcm_mutex being heldh]h7Must be called with the rtd->card->pcm_mutex being held}(hj7hhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_runtime_ignore_pmdown_time (C function)$c.snd_soc_runtime_ignore_pmdown_timehNtauh1hhjhhhhNhNubh)}(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)}(hjh]hbool}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjshMzubj)}(h"snd_soc_runtime_ignore_pmdown_timeh]j%)}(h"snd_soc_runtime_ignore_pmdown_timeh]h"snd_soc_runtime_ignore_pmdown_time}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbhhhjshMzubj@)}(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 reftargetj¸modnameN classnameNjj)}j]j)}jjsb$c.snd_soc_runtime_ignore_pmdown_timeasbuh1hhjubj)}(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>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjbhhhjshMzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhjshMzubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshMzhj[hhubjb)}(hhh]jg)}(h,Check whether to ignore the power down delayh]h,Check whether to ignore the power down 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.chMzhj"hhubah}(h]h ]h"]h$]h&]uh1jahj[hhhjshMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhjhhNhNubj)}(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)}(hjGh]h Parameters}(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:103: ./sound/soc/soc-pcm.chM~hjAubj)}(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)}(hjfh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM{hj`ubj)}(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&]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&]uh1jhjAubjg)}(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}hjAubjg)}(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.}(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}hjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_runtime_calc_hw (C function)c.snd_soc_runtime_calc_hwhNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMcubj)}(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>uh1jhjhhhjhMcubj@)}(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}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hj|hhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j]c.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjѺhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjߺhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhwh]hhw}(hjhhhNhNubah}(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}(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?hjhhhjhMcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj޹hhhjhMcubah}(h]jٹah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMchj۹hhubjb)}(hhh]jg)}(h$Calculate hw limits for a PCM streamh]h$Calculate hw limits for a PCM stream}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMchjHhhubah}(h]h ]h"]h$]h&]uh1jahj۹hhhjhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhjhhNhNubj)}(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)}(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:103: ./sound/soc/soc-pcm.chMghjgubj)}(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.chMdhjubj)}(hhh]jg)}(hASoC PCM runtimeh]hASoC PCM runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMdhjubj)}(hA``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjŻh]hstruct snd_pcm_hardware *hw}(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.chMehjubj)}(hhh]jg)}(h PCM hardware parameters (output)h]h PCM hardware parameters (output)}(hj޻hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjڻhMehjۻubah}(h]h ]h"]h$]h&]uh1jhjubeh}(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.chMfhjubj)}(hhh]jg)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjubeh}(h]h ]h"]h$]h&]uh1jhjgubjg)}(h**Description**h]j)}(hj9h]h Description}(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:103: ./sound/soc/soc-pcm.chMhhjgubjg)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMhhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_info_enum_double (C function)c.snd_soc_info_enum_doublehNtauh1hhjhhhhNhNubh)}(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}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzhhhjhKubj)}(hsnd_soc_info_enum_doubleh]j%)}(hsnd_soc_info_enum_doubleh]hsnd_soc_info_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjzhhhjhKubj@)}(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}(hjټhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjּubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjۼmodnameN classnameNjj)}j]j)}jjsbc.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%)}(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}(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}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]jc.snd_soc_info_enum_doubleasbuh1hhj)ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(huinfoh]huinfo}(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?hjzhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjhKubah}(h]jqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjshhubjb)}(hhh]jg)}(h%enumerated double mixer info callbackh]h%enumerated double mixer 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.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahjshhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjƽjjƽjjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chK"hjʽubj)}(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.chKhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK hj"ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hK hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hK hjubeh}(h]h ]h"]h$]h&]uh1jhjʽubjg)}(h**Description**h]j)}(hjch]h Description}(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:104: ./sound/soc/soc-ops.chK"hjʽubjg)}(hHCallback to provide information about a double enumerated mixer control.h]hHCallback to provide information about a double enumerated mixer control.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hjʽubjg)}(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.chK%hjʽubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_get_enum_double (C function)c.snd_soc_get_enum_doublehNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2ubj)}(h h]h }(hjƾhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjžhK2ubj)}(hsnd_soc_get_enum_doubleh]j%)}(hsnd_soc_get_enum_doubleh]hsnd_soc_get_enum_double}(hjؾhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjԾubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjžhK2ubj@)}(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_get_enum_doubleasbuh1hhjubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjMhhhNhNubah}(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}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(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_get_enum_doubleasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjžhK2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjžhK2ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjžhK2hjhhubjb)}(hhh]jg)}(h$enumerated double mixer get callbackh]h$enumerated double 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.chK2hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjžhK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chK6hjubj)}(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.chK3hj"ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hK3hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hK3hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjah]h#struct snd_ctl_elem_value *ucontrol}(hjchhhNhNubah}(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.chK4hj[ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhK4hjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhK4hjubeh}(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.chK6hjubjg)}(h7Callback to get the value of a double enumerated mixer.h]h7Callback to get the value of a double enumerated mixer.}(hjhhhNhNubah}(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.}(hjhhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_put_enum_double (C function)c.snd_soc_put_enum_doublehNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKQubj)}(hsnd_soc_put_enum_doubleh]j%)}(hsnd_soc_put_enum_doubleh]hsnd_soc_put_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKQubj@)}(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}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_enum_doubleasbuh1hhj)ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjyhhhNhNubah}(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}(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]jgc.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%)}(hucontrolh]hucontrol}(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?hjhhhjhKQubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKQubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKQhjhhubjb)}(hhh]jg)}(h$enumerated double mixer put callbackh]h$enumerated double mixer put 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.chKQhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKQubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chKUhj<ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjah]hstruct snd_kcontrol *kcontrol}(hjchhhNhNubah}(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.chKRhj[ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhKRhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKRhjXubj)}(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.chKShjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjXubeh}(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:104: ./sound/soc/soc-ops.chKUhj<ubjg)}(h7Callback to set the value of a double enumerated mixer.h]h7Callback to set the value of a double enumerated mixer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhj<ubjg)}(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.chKWhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_volsw (C function)c.snd_soc_info_volswhNtauh1hhjhhhhNhNubh)}(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}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj%hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj7hMubj)}(hsnd_soc_info_volswh]j%)}(hsnd_soc_info_volswh]hsnd_soc_info_volsw}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj7hMubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(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)}jjLsbc.snd_soc_info_volswasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(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]jc.snd_soc_info_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(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%hhhj7hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj7hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hMhjhhubjb)}(hhh]jg)}(h&single mixer info callback with range.h]h&single mixer info callback with range.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chMhjuubj)}(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)}(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.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&]uh1jhjuubjg)}(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:104: ./sound/soc/soc-ops.chMhjuubjg)}(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.}(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.chMhjuubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_info_volsw_sx (C function)c.snd_soc_info_volsw_sxhNtauh1hhjhhhhNhNubh)}(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}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM&ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjphM&ubj)}(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>uh1jhj^hhhjphM&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 }(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_volsw_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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(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 reftargetj1modnameN classnameNjj)}j]jc.snd_soc_info_volsw_sxasbuh1hhj ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(huinfoh]huinfo}(hjhhhhNhNubah}(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^hhhjphM&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjphM&ubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphM&hjWhhubjb)}(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&]uh1jahjWhhhjphM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.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&]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)}(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}(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:104: ./sound/soc/soc-ops.chM(hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj%hhhNhNubah}(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**Description**h]j)}(hjGh]h Description}(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:104: ./sound/soc/soc-ops.chM*hjubjg)}(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.}(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.chM*hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM0hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_volsw (C function)c.snd_soc_get_volswhNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM=ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM=ubj)}(hsnd_soc_get_volswh]j%)}(hsnd_soc_get_volswh]hsnd_soc_get_volsw}(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}(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_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hj1hhhNhNubah}(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}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jc.snd_soc_get_volswasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(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$single mixer get callback with rangeh]h$single mixer get 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.chM=hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM=ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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.chMAhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj h]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chM>hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(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)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjEh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chM?hj?ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj^hhhNhNubah}(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&]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:104: ./sound/soc/soc-ops.chMAhjubjg)}(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.chMAhjubjg)}(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.chMDhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_volsw (C function)c.snd_soc_put_volswhNtauh1hhjhhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMRubj)}(hsnd_soc_put_volswh]j%)}(hsnd_soc_put_volswh]hsnd_soc_put_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMRubj@)}(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&]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 reftargetj1modnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_volswasbuh1hhj ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hjjhhhNhNubah}(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}(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]jKc.snd_soc_put_volswasbuh1hhjubj)}(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>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMRubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMRhjhhubjb)}(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&]uh1jahjhhhjhMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chMVhj ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjEh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMShj?ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhMShj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhMShj<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}(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:104: ./sound/soc/soc-ops.chMThjxubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMThj<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:104: ./sound/soc/soc-ops.chMVhj ubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMVhj ubjg)}(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.chMYhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_get_volsw_sx (C function)c.snd_soc_get_volsw_sxhNtauh1hhjhhhhNhNubh)}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMgubj)}(hsnd_soc_get_volsw_sxh]j%)}(hsnd_soc_get_volsw_sxh]hsnd_soc_get_volsw_sx}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMgubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sbc.snd_soc_get_volsw_sxasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(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_volsw_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>uh1jEhjBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMgubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMghjhhubjb)}(hhh]jg)}(hsingle mixer get callbackh]hsingle mixer 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.chMghj:hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhjhhNhNubj)}(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)}(hj_h]h Parameters}(hjahhhNhNubah}(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.chMkhjYubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj~h]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhhjxubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhhjuubj)}(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.chMihjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMihjuubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMkhjYubjg)}(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.chMkhjYubjg)}(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.chMnhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_put_volsw_sx (C function)c.snd_soc_put_volsw_sxhNtauh1hhjhhhhNhNubh)}(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}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM|ubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjThM|ubj)}(hsnd_soc_put_volsw_sxh]j%)}(hsnd_soc_put_volsw_sxh]hsnd_soc_put_volsw_sx}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjThM|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)}jjisbc.snd_soc_put_volsw_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>uh1jEhj{ubjF)}(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_put_volsw_sxasbuh1hhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj{ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjBhhhjThM|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>hhhjThM|ubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjThM|hj;hhubjb)}(hhh]jg)}(hdouble mixer set callbackh]hdouble mixer set callback}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM|hjshhubah}(h]h ]h"]h$]h&]uh1jahj;hhhjThM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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}(hj hhhNhNubah}(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: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.}(hjAhhhNhNubah}(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.}(hjPhhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_limit_volume (C function)c.snd_soc_limit_volumehNtauh1hhjhhhhNhNubh)}(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&]uh1hhj{hhhe/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 hj{hhhjhMubj)}(hsnd_soc_limit_volumeh]j%)}(hsnd_soc_limit_volumeh]hsnd_soc_limit_volume}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj{hhhjhMubj@)}(h6(struct snd_soc_card *card, const char *name, int max)h](jF)}(hstruct snd_soc_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%)}(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)}jjsbc.snd_soc_limit_volumeasbuh1hhjubj)}(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)}(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}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*ubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(hnameh]hname}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint maxh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaxh]hmax}(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{hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhMubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjthhubjb)}(hhh]jg)}(h,Set new limit to an existing volume control.h]h,Set new limit to an existing volume 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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_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.chMhj ubj)}(hhh]jg)}(hwhere to look for the controlh]hwhere to look for the 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)``const char *name`` Name of the control h](j)}(h``const char *name``h]j)}(hjKh]hconst char *name}(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:104: ./sound/soc/soc-ops.chMhjEubj)}(hhh]jg)}(hName of the controlh]hName of the control}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hMhjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hMhj ubj)}(h``int max`` new maximum limit h](j)}(h ``int max``h]j)}(hjh]hint max}(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.chMhj~ubj)}(hhh]jg)}(hnew maximum limith]hnew maximum limit}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_xr_sx (C function)c.snd_soc_info_xr_sxhNtauh1hhjhhhhNhNubh)}(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.chMhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMhubj)}(hsnd_soc_info_xr_sxh]j%)}(hsnd_soc_info_xr_sxh]hsnd_soc_info_xr_sx}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMhubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](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}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.snd_soc_info_xr_sxasbuh1hhj=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>uh1jEhj9ubjF)}(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_xr_sxasbuh1hhjubj)}(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>uh1jEhj9ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMhubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMhubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhhjhhubjb)}(hhh]jg)}(h#signed multi register info callbackh]h#signed multi register info callback}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhhj1hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhjhhNhNubj)}(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)}(hjVh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjPubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMihjoubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhMihjlubj)}(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.chMjhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMjhjlubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(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.chMlhjPubjg)}(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.chMlhjPubjg)}(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.chMqhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_xr_sx (C function)c.snd_soc_get_xr_sxhNtauh1hhjhhhhNhNubh)}(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}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9hhhjKhMubj)}(hsnd_soc_get_xr_sxh]j%)}(hsnd_soc_get_xr_sxh]hsnd_soc_get_xr_sx}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9hhhjKhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(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_xr_sxasbuh1hhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubjF)}(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_xr_sxasbuh1hhjubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj9hhhjKhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj5hhhjKhMubah}(h]j0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKhMhj2hhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get callback}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjjhhubah}(h]h ]h"]h$]h&]uh1jahj2hhhjKhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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 mreg controlh]h mreg 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)}(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.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.}(hj8hhhNhNubah}(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.}(hjGhhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_xr_sx (C function)c.snd_soc_put_xr_sxhNtauh1hhjhhhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhe/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 hjrhhhjhMubj)}(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>uh1jhjrhhhjhMubj@)}(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_xr_sxasbuh1hhjubj)}(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 }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jc.snd_soc_put_xr_sxasbuh1hhj!ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjohhhNhNubah}(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?hjrhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnhhhjhMubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjkhhubjb)}(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&]uh1jahjkhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(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)}(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 mreg controlh]h mreg 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)}(hj h]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.chMhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj[h]h Description}(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:104: ./sound/soc/soc-ops.chMhjubjg)}(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.}(hjqhhhNhNubah}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_strobe (C function)c.snd_soc_get_strobehNtauh1hhjhhhhNhNubh)}(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}(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_strobeh]j%)}(hsnd_soc_get_strobeh]hsnd_soc_get_strobe}(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$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_strobeasbuh1hhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjEhhhNhNubah}(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&]uh1jKhjZubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j&c.snd_soc_get_strobeasbuh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(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)}(hstrobe get callbackh]hstrobe 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&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(hj h]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}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjYh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chMhjSubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjubeh}(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.}(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&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_strobe (C function)c.snd_soc_put_strobehNtauh1hhjhhhhNhNubh)}(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}(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_strobeh]j%)}(hsnd_soc_put_strobeh]hsnd_soc_put_strobe}(hj hhhNhNubah}(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}(hj%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_put_strobeasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjqhhhNhNubah}(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)}(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_put_strobeasbuh1hhjubj)}(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?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhjhhNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chMhj4ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjYh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhjSubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjPubj)}(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&]uh1jhjhMhjPubeh}(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:104: ./sound/soc/soc-ops.chMhj4ubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj4ubjg)}(hReturns 1 for success.h]hReturns 1 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.chM hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_new_compress (C function)c.snd_soc_new_compresshNtauh1hhjhhhhNhNubh)}(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}(hj!hhhNhNubah}(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 }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj/hMubj)}(hsnd_soc_new_compressh]j%)}(hsnd_soc_new_compressh]hsnd_soc_new_compress}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj/hMubj@)}(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&]uh1jKhjZubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j)}jjDsbc.snd_soc_new_compressasbuh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjVubah}(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)}(hcreate a new compress.h]hcreate a new compress.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhhNhNubj)}(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)}(hj"h]hstruct snd_soc_pcm_runtime *rtd}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(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}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubah}(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&]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.}(hjshhhNhNubah}(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&]uh1jhjhhhhNhNubeh}(h] asoc-core-apiah ]h"] asoc core apiah$]h&]uh1hhjhhhhhhKbubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMFubh)}(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_kcontrol_widgetsbc.snd_soc_dapm_kcontrol_widgetasbuh1hhjhhhjhMFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMFubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMFubj)}(hsnd_soc_dapm_kcontrol_widgeth]j%)}(hjh]hsnd_soc_dapm_kcontrol_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMFubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jc.snd_soc_dapm_kcontrol_widgetasbuh1hhj1ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubah}(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+Returns the widget associated to a kcontrolh]h+Returns the widget 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.chMFhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMFubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h@**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrolh](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.chMJhjubj)}(hhh]j)}(h.``struct snd_kcontrol *kcontrol`` The kcontrolh](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.chMLhjubj)}(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.chMHhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMLhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(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}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMRubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhj^hMRubh)}(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)}jsnd_soc_dapm_kcontrol_dapmsbc.snd_soc_dapm_kcontrol_dapmasbuh1hhjMhhhj^hMRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhj^hMRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMhhhj^hMRubj)}(hsnd_soc_dapm_kcontrol_dapmh]j%)}(hjh]hsnd_soc_dapm_kcontrol_dapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj^hMRubj@)}(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]jc.snd_soc_dapm_kcontrol_dapmasbuh1hhjubj)}(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>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjMhhhj^hMRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhj^hMRubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMRhjFhhubjb)}(hhh]jg)}(h1Returns the dapm context associated to a kcontrolh]h1Returns the dapm context associated to a kcontrol}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMRhjIhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhj^hMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhjhNhNubj)}(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)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVhjhubj)}(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.chMThjubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjhubjg)}(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.chMVhjhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVhjhubeh}(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}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_soc_dapm_force_bias_levelh]j%)}(hsnd_soc_dapm_force_bias_levelh]hsnd_soc_dapm_force_bias_level}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(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}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj0sbc.snd_soc_dapm_force_bias_levelasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(henum snd_soc_bias_level levelh](jL)}(hj'h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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]jc.snd_soc_dapm_force_bias_levelasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hlevelh]hlevel}(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)}(hSets the DAPM bias levelh]hSets the DAPM bias level}(hj0hhhNhNubah}(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&]jjjjHjjHjjjuh1hhhhjhNhNubj)}(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)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjLubj)}(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)}(hjqh]h!struct snd_soc_dapm_context *dapm}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjkubj)}(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&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(h3``enum snd_soc_bias_level level`` The level to set h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hjh]henum snd_soc_bias_level level}(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)}(hThe level to seth]hThe level to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjLubjg)}(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.chMhjLubjg)}(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.}(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.chMhjLubeh}(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}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5hhhjGhMubj)}(hsnd_soc_dapm_set_bias_levelh]j%)}(hsnd_soc_dapm_set_bias_levelh]hsnd_soc_dapm_set_bias_level}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5hhhjGhMubj@)}(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}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(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)}jj\sbc.snd_soc_dapm_set_bias_levelasbuh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjnubjF)}(henum snd_soc_bias_level levelh](jL)}(hj'h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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]jc.snd_soc_dapm_set_bias_levelasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hlevelh]hlevel}(hj2hhhNhNubah}(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)}(h!set the bias level for the systemh]h!set the bias level for the system}(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.chMhjYhhubah}(h]h ]h"]h$]h&]uh1jahj.hhhjGhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhjhNhNubj)}(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)}(hj~h]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.chMhjxubj)}(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)}(h5``enum snd_soc_bias_level level`` level to configure h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hjh]henum snd_soc_bias_level level}(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)}(hlevel to configureh]hlevel to configure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(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.chMhjxubjg)}(h;Configure the bias (power) levels for the SoC audio device.h]h;Configure the bias (power) levels for the SoC audio device.}(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.chMhjxubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjxubeh}(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}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjahhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjshMubj)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjahhhjshMubj@)}(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}(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]j)}jjsb(c.snd_soc_dapm_dai_get_connected_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>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hj0hhhNhNubah}(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}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hsnd_soc_dapm_widget_listh]hsnd_soc_dapm_widget_list}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hWbool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction)h](h)}(hjh]hbool}(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%)}(hcustom_stop_conditionh]hcustom_stop_condition}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hjOh]hstruct}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hj0h]h,}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hj'h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_directionh]hsnd_soc_dapm_direction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjahhhjshMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj]hhhjshMubah}(h]jXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshMhjZhhubjb)}(hhh]jg)}(h"query audio path and it's widgets.h]h$query audio path and it’s 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjZhhhjshMubeh}(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&]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 hjubj)}(hhh](j)}(h)``struct snd_soc_dai *dai`` the soc DAI. h](j)}(h``struct snd_soc_dai *dai``h]j)}(hj-h]hstruct snd_soc_dai *dai}(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 the soc DAI.h]h the soc DAI.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhj$ubj)}(h!``int stream`` stream direction. h](j)}(h``int stream``h]j)}(hjfh]h int stream}(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)}(hstream direction.h]hstream direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj$ubj)}(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)}(hjh]h&struct snd_soc_dapm_widget_list **list}(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'list of active widgets for this stream.h]h'list of active widgets for this stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj$ubj)}(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)}(hjh]hXbool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)}(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)}(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.}(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 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&]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.}(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 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.}(hj9hhhNhNubah}(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.}(hjHhhhNhNubah}(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)}(huh1jhjshhhjhM ubj@)}(h(struct snd_soc_dapm_widget *w)h]jF)}(hstruct snd_soc_dapm_widget *wh](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_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_free_widgetasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hw}(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?hjshhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjhM ubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjlhhubjb)}(hhh]jg)}(hFree specified widgeth]hFree specified widget}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj3hhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjhNhNubj)}(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)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjRubj)}(hhh]j)}(h1``struct snd_soc_dapm_widget *w`` widget to free h](j)}(h!``struct snd_soc_dapm_widget *w``h]j)}(hjwh]hstruct snd_soc_dapm_widget *w}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjqubj)}(hhh]jg)}(hwidget to freeh]hwidget to free}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhM hjnubah}(h]h ]h"]h$]h&]uh1jhjRubjg)}(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 hjRubjg)}(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.}(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 hjRubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMp ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMp 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>uh1jhjhhhjhMp ubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(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)}jjsbc.snd_soc_dapm_sync_unlockedasbuh1hhj0ubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj,ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMp ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMp ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMp 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.chMp hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMp 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. Requires external locking. 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.chMt 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.chMq hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMq hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMq hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj3h]h Description}(hj5hhhNhNubah}(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.chMs 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.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMs hjubjg)}(hRequires external locking.h]hRequires external locking.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMx hjubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_synch]j%)}(hsnd_soc_dapm_synch]hsnd_soc_dapm_sync}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM 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_syncasbuh1hhjubj)}(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>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)}(hscan and power dapm pathsh]hscan and power dapm paths}(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 hjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjhNhNubj)}(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)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjrubj)}(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 hjubah}(h]h ]h"]h$]h&]uh1jhjrubjg)}(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 hjrubjg)}(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.chM hjrubjg)}(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 hjrubeh}(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}(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.chMW ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj4hMW ubj)}(hsnd_soc_dapm_add_routesh]j%)}(hsnd_soc_dapm_add_routesh]hsnd_soc_dapm_add_routes}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhj4hMW 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}(hjchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj_ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjIsbc.snd_soc_dapm_add_routesasbuh1hhj_ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj)}(hjh]h*}(hjhhhNhNubah}(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)}(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$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_add_routesasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(hint numh](h)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj%)}(hnumh]hnum}(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"hhhj4hMW ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj4hMW ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMW hjhhubjb)}(hhh]jg)}(hAdd routes between DAPM widgetsh]hAdd 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.chMW hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj4hMW 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** 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)}(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.chMX hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMX hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMX hjubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hj h]h&const struct snd_soc_dapm_route *route}(hj"hhhNhNubah}(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}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMY hj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMY hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjYh]hint num}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMZ hjSubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMZ hjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMZ 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)}(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.}(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)}(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().}(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_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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMv ubj)}(hsnd_soc_dapm_del_routesh]j%)}(hsnd_soc_dapm_del_routesh]hsnd_soc_dapm_del_routes}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMv 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&]uh1jKhj!ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_dapm_del_routesasbuh1hhj!ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hjqhhhNhNubah}(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>uh1jEhjubjF)}(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 reftargetjmodnameN classnameNjj)}j]j_c.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%)}(hrouteh]hroute}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint numh](h)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnumh]hnum}(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?hjhhhjhMv ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMv ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMv hjhhubjb)}(hhh]jg)}(h"Remove routes between DAPM widgetsh]h"Remove routes between DAPM widgets}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv hjehhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMv 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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMz 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.chMw hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMw hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMw 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.chMx hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMx hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMx hjubj)}(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}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMy hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMy 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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM{ hjubjg)}(h%Removes routes from the DAPM context.h]h%Removes routes from the DAPM context.}(hjlhhhNhNubah}(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_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}(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_weak_routesh]j%)}(hsnd_soc_dapm_weak_routesh]hsnd_soc_dapm_weak_routes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM 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_weak_routesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hj1hhhNhNubah}(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}(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_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_weak_routesasbuh1hhjFubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hrouteh]hroute}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(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?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM 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&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhjhNhNubj)}(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)}(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.chM hj7ubj)}(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&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjVubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhM hjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhM hjSubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjSubj)}(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.chM hjubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjSubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(h**Description**h]j)}(hj h]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 hj7ubjg)}(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 hj7ubjg)}(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.}(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 hj7ubeh}(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}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjkhM ubj)}(hsnd_soc_dapm_new_widgetsh]j%)}(hsnd_soc_dapm_new_widgetsh]hsnd_soc_dapm_new_widgets}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjkhM 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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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)}jjsbc.snd_soc_dapm_new_widgetsasbuh1hhjubj)}(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?hjYhhhjkhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhjkhM ubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhM hjRhhubjb)}(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&]uh1jahjRhhhjkhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhjhNhNubj)}(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)}(hj?h]h Parameters}(hjAhhhNhNubah}(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 hj9ubj)}(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)}(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:109: ./sound/soc/soc-dapm.chM hjXubj)}(hhh]jg)}(h'card to be checked for new dapm widgetsh]h'card to be checked for new dapm widgets}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshM hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(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 hj9ubjg)}(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.}(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 hj9ubjg)}(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 hj9ubeh}(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}(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_volswh]j%)}(hsnd_soc_dapm_get_volswh]hsnd_soc_dapm_get_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(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&]uh1jKhj&ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_get_volswasbuh1hhj&ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hjvhhhNhNubah}(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}(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]jdc.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%)}(hucontrolh]hucontrol}(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)}(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&]uh1jahjhhhjhM' ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhjhNhNubj)}(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)}(hj?h]h Parameters}(hjAhhhNhNubah}(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+ hj9ubj)}(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( hjXubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM( hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshM( hjUubj)}(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) hjUubeh}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(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+ hj9ubjg)}(h2Callback to get the value of a dapm mixer control.h]h2Callback to get 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.chM+ hj9ubjg)}(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- hj9ubeh}(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}(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.chMa ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj4hMa ubj)}(hsnd_soc_dapm_put_volswh]j%)}(hsnd_soc_dapm_put_volswh]hsnd_soc_dapm_put_volsw}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhj4hMa ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](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%)}(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)}jjIsbc.snd_soc_dapm_put_volswasbuh1hhj_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>uh1jEhj[ubjF)}(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_dapm_put_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jaDh"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(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"hhhj4hMa ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj4hMa ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMa hjhhubjb)}(hhh]jg)}(hdapm mixer set callbackh]hdapm mixer set callback}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMa hjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhj4hMa ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjhNhNubj)}(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)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMe hjrubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMb hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMb 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.chMc hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMc hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMc hjubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMe hjrubjg)}(h2Callback to set the value of a dapm mixer control.h]h2Callback to set the value of a dapm 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.chMe hjrubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMg hjrubeh}(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}(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 }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhjmhM 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$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhjmhM 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_enum_doubleasbuh1hhjubj)}(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&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(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]jc.snd_soc_dapm_get_enum_doubleasbuh1hhj ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hucontrolh]hucontrol}(hjehhhNhNubah}(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[hhhjmhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWhhhjmhM ubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmhM hjThhubjb)}(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&]uh1jahjThhhjmhM 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 enumerated double 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)}(hj h]h#struct snd_ctl_elem_value *ucontrol}(hj hhhNhNubah}(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}(hj"hhhNhNubah}(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)}(hjDh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(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)}(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.}(hjZhhhNhNubah}(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.}(hjihhhNhNubah}(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_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}(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_put_enum_doubleh]j%)}(hsnd_soc_dapm_put_enum_doubleh]hsnd_soc_dapm_put_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}(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_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj!hhhNhNubah}(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}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jc.snd_soc_dapm_put_enum_doubleasbuh1hhjCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(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 set callbackh]h)dapm enumerated double 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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM 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 enumerated double 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)}(hj h]hstruct snd_kcontrol *kcontrol}(hj hhhNhNubah}(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}(hj"hhhNhNubah}(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)}(hjBh]h#struct snd_ctl_elem_value *ucontrol}(hjDhhhNhNubah}(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&]uh1jfhjWhM hjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhM hjubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(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.}(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)}(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 hjubeh}(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}(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_info_pin_switchh]j%)}(hsnd_soc_dapm_info_pin_switchh]hsnd_soc_dapm_info_pin_switch}(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&]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_soc_dapm_info_pin_switchasbuh1hhj 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}(hjghhhNhNubah}(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&]uh1jKhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(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]jHc.snd_soc_dapm_info_pin_switchasbuh1hhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(huinfoh]huinfo}(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)}(hInfo for a pin switchh]hInfo 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjBh]hstruct snd_kcontrol *kcontrol}(hjDhhhNhNubah}(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&]uh1jfhjWhMhjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMhj9ubj)}(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&]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)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhMhj9ubeh}(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;Callback to provide information about a pin switch control.h]h;Callback to provide information about a pin switch 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.chMhjubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM9ubj)}(hsnd_soc_dapm_get_pin_switchh]j%)}(hsnd_soc_dapm_get_pin_switchh]hsnd_soc_dapm_get_pin_switch}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hM9ubj@)}(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_dapm_get_pin_switchasbuh1hhj4ubj)}(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_dapm_get_pin_switchasbuh1hhjubj)}(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 hM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM9ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM9hjhhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information 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.chM9hj(hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Value **Description** Callback to provide information for a pin switch added at the card level.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)}(h0``struct snd_kcontrol *kcontrol`` mixer 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&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM;hjfubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM;hjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhM;hjcubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value 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)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM<hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM<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)}(hICallback to provide information for a pin switch added at the card level.h]hICallback to provide information for a pin switch added at the card 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.chM>hjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_get_component_pin_switch (C function)'c.snd_soc_dapm_get_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hnint snd_soc_dapm_get_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hmint snd_soc_dapm_get_component_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.chMLubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!hhhj3hMLubj)}(h%snd_soc_dapm_get_component_pin_switchh]j%)}(h%snd_soc_dapm_get_component_pin_switchh]h%snd_soc_dapm_get_component_pin_switch}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!hhhj3hMLubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(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)}jjHsb'c.snd_soc_dapm_get_component_pin_switchasbuh1hhj^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>uh1jEhjZubjF)}(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_component_pin_switchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(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>uh1jEhjZubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj!hhhj3hMLubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj3hMLubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hMLhjhhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information for a pin switch}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMLhjRhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj3hMLubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Value **Description** Callback to provide information for a pin switch added at the component level.h](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(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.chMPhjqubj)}(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.chMNhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMNhjubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value 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.chMOhjubj)}(hhh]jg)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMOhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMOhjubeh}(h]h ]h"]h$]h&]uh1jhjqubjg)}(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.chMQhjqubjg)}(hNCallback to provide information for a pin switch added at the component level.h]hNCallback to provide information for a pin switch added at the component level.}(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.chMQhjqubeh}(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}(hjO hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjK hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMnubj)}(h h]h }(hj^ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjK hhhj] hMnubj)}(hsnd_soc_dapm_put_pin_switchh]j%)}(hsnd_soc_dapm_put_pin_switchh]hsnd_soc_dapm_put_pin_switch}(hjp hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjK hhhj] hMnubj@)}(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)}jjr sbc.snd_soc_dapm_put_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)}(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_pin_switchasbuh1hhj ubj)}(h h]h }(hj: hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjH hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hucontrolh]hucontrol}(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] hMnubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjG hhhj] hMnubah}(h]jB ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj] hMnhjD hhubjb)}(hhh]jg)}(h Set information for a pin switchh]h Set information 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.chMnhj| hhubah}(h]h ]h"]h$]h&]uh1jahjD hhhj] hMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Value **Description** Callback to provide information for a pin switch added at the card level.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.chMrhj 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.chMphj ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(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.``struct snd_ctl_elem_value *ucontrol`` Value 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.chMqhj ubj)}(hhh]jg)}(hValueh]hValue}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMqhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMqhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj4 h]h Description}(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.chMshj ubjg)}(hICallback to provide information for a pin switch added at the card level.h]hICallback to provide information for a pin switch added at the card level.}(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.chMshj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_put_component_pin_switch (C function)'c.snd_soc_dapm_put_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hnint snd_soc_dapm_put_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hmint snd_soc_dapm_put_component_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)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)}(h%snd_soc_dapm_put_component_pin_switchh]j%)}(h%snd_soc_dapm_put_component_pin_switchh]h%snd_soc_dapm_put_component_pin_switch}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhju hhhj hMubj@)}(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 sb'c.snd_soc_dapm_put_component_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)}(h#struct snd_ctl_elem_value *ucontrolh](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_ctl_elem_valueh]hsnd_ctl_elem_value}(hjF hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjH modnameN classnameNjj)}j]j 'c.snd_soc_dapm_put_component_pin_switchasbuh1hhj$ ubj)}(h h]h }(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ ubj)}(hjh]h*}(hjr 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>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)}(h Set information for a pin switchh]h Set information 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&]uh1jahjn hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` Value **Description** Callback to provide information for a pin switch added at the component level.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_value *ucontrol`` Value 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.chMhj ubj)}(hhh]jg)}(hValueh]hValue}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8 hMhj9 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj8 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)}(hNCallback to provide information for a pin switch added at the component level.h]hNCallback to provide information for a pin switch added at the component level.}(hjt 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_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}(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.chM"ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM"ubh)}(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 reftargetj modnameN classnameNjj)}j]j)}jsnd_soc_dapm_new_controlsbc.snd_soc_dapm_new_controlasbuh1hhj hhhj hM"ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM"ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hM"ubj)}(hsnd_soc_dapm_new_controlh]j%)}(hj h]hsnd_soc_dapm_new_control}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hM"ubj@)}(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 }(hj*hhhNhNubah}(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$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j c.snd_soc_dapm_new_controlasbuh1hhjubj)}(h h]h }(hjYhhhNhNubah}(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)}(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]j c.snd_soc_dapm_new_controlasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hwidgeth]hwidget}(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 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)}(hcreate new dapm controlh]hcreate new dapm 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"hj&hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhjhNhNubj)}(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)}(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.chM&hjEubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjjh]h!struct snd_soc_dapm_context *dapm}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM#hjdubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjaubj)}(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.chM$hjubj)}(hhh]jg)}(hwidget templateh]hwidget template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM$hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM$hjaubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM&hjEubjg)}(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.chM&hjEubjg)}(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.chM(hjEubeh}(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}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.hhhj@hM9ubj)}(hsnd_soc_dapm_new_controlsh]j%)}(hsnd_soc_dapm_new_controlsh]hsnd_soc_dapm_new_controls}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj.hhhj@hM9ubj@)}(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}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjkubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(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)}jjUsbc.snd_soc_dapm_new_controlsasbuh1hhjkubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubjF)}(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 }(hj hhhNhNubah}(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 }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hwidgeth]hwidget}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubjF)}(hunsigned int numh](h)}(hunsignedh]hunsigned}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubeh}(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)}(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.chM9hjhhubah}(h]h ]h"]h$]h&]uh1jahj'hhhj@hM9ubeh}(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.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&]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 DAPM contexth]h DAPM context}(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:``const struct snd_soc_dapm_widget *widget`` widget array h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hjHh]h(const struct snd_soc_dapm_widget *widget}(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:109: ./sound/soc/soc-dapm.chM;hjBubj)}(hhh]jg)}(h widget arrayh]h widget array}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hM;hj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hM;hjubj)}(h'``unsigned int num`` number of widgets h](j)}(h``unsigned int num``h]j)}(hjh]hunsigned int 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.chM<hj{ubj)}(hhh]jg)}(hnumber of widgetsh]hnumber of widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM<hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM>hjubjg)}(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.chM>hjubjg)}(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.chM@hjubeh}(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&]uh1hhj hhhf/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 hj hhhjhMubj)}(hsnd_soc_dapm_new_dai_widgetsh]j%)}(hsnd_soc_dapm_new_dai_widgetsh]hsnd_soc_dapm_new_dai_widgets}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(h<(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](jF)}(h!struct snd_soc_dapm_context *dapmh](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_dapm_contexth]hsnd_soc_dapm_context}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sbc.snd_soc_dapm_new_dai_widgetsasbuh1hhjIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(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]jc.snd_soc_dapm_new_dai_widgetsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdaih]hdai}(hjhhhNhNubah}(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)}(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&]jjjjXjjXjjjuh1hhhhjhNhNubj)}(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)}(hjbh]h Parameters}(hjdhhhNhNubah}(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)}(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.chMhj{ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(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&]uh1jhjhMhjxubeh}(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+Returns 0 on success, error code otherwise.h]h+Returns 0 on success, error code otherwise.}(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_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}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjHhMubj)}(hsnd_soc_dapm_stream_eventh]j%)}(hsnd_soc_dapm_stream_eventh]hsnd_soc_dapm_stream_event}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhjHhMubj@)}(h8(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(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)}jj]sbc.snd_soc_dapm_stream_eventasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubjF)}(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>uh1jEhjoubjF)}(h int eventh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(heventh]hevent}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhjHhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhjHhMubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhMhj/hhubjb)}(hhh]jg)}(h$send a stream event to the dapm coreh]h$send a stream event to the dapm core}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjahhubah}(h]h ]h"]h$]h&]uh1jahj/hhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|jj|jjjuh1hhhhjhNhNubj)}(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)}(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)}(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}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.}(hjhhhhNhNubah}(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.}(hjwhhhNhNubah}(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_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 }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj/hhhNhNubah}(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}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubh)}(hcharh]hchar}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj%)}(hpinh]hpin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(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 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.chMhj7ubj)}(hhh]jg)}(hpin nameh]hpin name}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjxh]h Description}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(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)}(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.chM'ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM'ubj)}(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>uh1jhjhhhjhM'ubj@)}(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&]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}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_enable_pinasbuh1hhj,ubj)}(h h]h }(hjnhhhNhNubah}(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)}(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?hjhhhjhM'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM'ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM'hjhhubjb)}(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.chM'hj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM'ubeh}(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)}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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,ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjQh]h!struct snd_soc_dapm_context *dapm}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM(hjKubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhM(hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM(hjHubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjh]hconst char *pin}(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)}(hpin nameh]hpin name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hjHubeh}(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)}(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.chM+hj,ubjg)}(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.chM.hj,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.}(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](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}(hj1hhhNhNubah}(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)}(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}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj?hM@ubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](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_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)}jjTsb(c.snd_soc_dapm_force_enable_pin_unlockedasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpinh]hpin}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(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)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM@hjKhhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj?hM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1hhhhjhNhNubj)}(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)}(hjph]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMDhjjubj)}(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.chMAhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMAhjubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjh]hconst char *pin}(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.chMBhjubj)}(hhh]jg)}(hpin nameh]hpin name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMBhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMBhjubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMDhjjubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMDhjjubjg)}(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.chMHhjjubjg)}(h**NOTE**h]j)}(hj9h]hNOTE}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJhjjubjg)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJhjjubeh}(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}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzhhhjhMiubj)}(hsnd_soc_dapm_force_enable_pinh]j%)}(hsnd_soc_dapm_force_enable_pinh]hsnd_soc_dapm_force_enable_pin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjzhhhjhMiubj@)}(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)}jjsbc.snd_soc_dapm_force_enable_pinasbuh1hhjubj)}(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)}(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}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hpinh]hpin}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjzhhhjhMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjhMiubah}(h]jqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMihjshhubjb)}(hhh]jg)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMihjhhubah}(h]h ]h"]h$]h&]uh1jahjshhhjhMiubeh}(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 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)}(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.chMmhjubj)}(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.chMjhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMjhjubj)}(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.chMkhj ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj* hMkhj+ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj* hMkhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjP h]h Description}(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:109: ./sound/soc/soc-dapm.chMmhjubjg)}(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.}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMmhjubjg)}(h**NOTE**h]j)}(hjw h]hNOTE}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMqhjubjg)}(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.chMqhjubeh}(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.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubj)}(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 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 sb#c.snd_soc_dapm_disable_pin_unlockedasbuh1hhj ubj)}(h h]h }(hj7!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjE!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hdapmh]hdapm}(hjR!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}(hjk!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjg!ubj)}(h h]h }(hjx!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg!ubh)}(hcharh]hchar}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjg!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg!ubj%)}(hpinh]hpin}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg!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 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.chMhj!hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(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.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}(hj3"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/"hMhj0"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)}(hjS"h]hconst char *pin}(hjU"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ"ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjM"ubj)}(hhh]jg)}(hpin nameh]hpin name}(hjl"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjh"hMhji"ubah}(h]h ]h"]h$]h&]uh1jhjM"ubeh}(h]h ]h"]h$]h&]uh1jhjh"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)}(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.chMhj!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.chMhj!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.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_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.chMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#hhhj#hMubj)}(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#hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](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_soc_dapm_contexth]hsnd_soc_dapm_context}(hjd#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf#modnameN classnameNjj)}j]j)}jj,#sbc.snd_soc_dapm_disable_pinasbuh1hhjB#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%)}(hdapmh]hdapm}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB#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#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 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.chMhj#$hhubah}(h]h ]h"]h$]h&]uh1jahj"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** 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)}(hjH$h]h Parameters}(hjJ$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF$ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjB$ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjg$h]h!struct snd_soc_dapm_context *dapm}(hji$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje$ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhja$ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|$hMhj}$ubah}(h]h ]h"]h$]h&]uh1jhja$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&]uh1jhjB$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.chMhjB$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.chMhjB$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.chMhjB$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.chMhjB$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}(hjG%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjC%hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjV%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC%hhhjU%hMubj)}(hsnd_soc_dapm_nc_pin_unlockedh]j%)}(hsnd_soc_dapm_nc_pin_unlockedh]hsnd_soc_dapm_nc_pin_unlocked}(hjh%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd%ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjC%hhhjU%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)}jjj%sbc.snd_soc_dapm_nc_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}(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?hjC%hhhjU%hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?%hhhjU%hMubah}(h]j:%ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjU%hMhj<%hhubjb)}(hhh]jg)}(hpermanently disable pin.h]hpermanently disable pin.}(hjd&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhja&hhubah}(h]h ]h"]h$]h&]uh1jahj<%hhhjU%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. 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.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)}(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)}(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.chMhj&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.chMhj&ubjg)}(h**NOTE**h]j)}(hjO'h]hNOTE}(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.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.}(hje'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_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}(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_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>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_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}(hjC(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?(ubj)}(h h]h }(hjP(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?(ubh)}(hcharh]hchar}(hj^(hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?(ubj)}(h h]h }(hjl(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?(ubj)}(hjh]h*}(hjz(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'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.}(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)}(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}(hjD)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@)hMhjA)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)}(hjf)h]h Description}(hjh)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd)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.}(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**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.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 }(hjM*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj *ubj)}(hjh]h*}(hj[*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj *ubj%)}(hdapmh]hdapm}(hjh*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)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)}(hj0+h]h!struct snd_soc_dapm_context *dapm}(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:109: ./sound/soc/soc-dapm.chMhj*+ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjI+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjE+hMhjF+ubah}(h]h ]h"]h$]h&]uh1jhj*+ubeh}(h]h ]h"]h$]h&]uh1jhjE+hMhj'+ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hji+h]hconst char *pin}(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:109: ./sound/soc/soc-dapm.chMhjc+ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~+hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjc+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&]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}(hj5,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1,ubj)}(h h]h }(hjB,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1,ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjS,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjP,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjU,modnameN classnameNjj)}j]j)}jj,sbc.snd_soc_dapm_ignore_suspendasbuh1hhj1,ubj)}(h h]h }(hjs,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1,ubj%)}(hdapmh]hdapm}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1,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,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}(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)}(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)}(hj7-h]h Parameters}(hj9-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5-ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj1-ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjV-h]h!struct snd_soc_dapm_context *dapm}(hjX-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT-ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjP-ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjo-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk-hMhjl-ubah}(h]h ]h"]h$]h&]uh1jhjP-ubeh}(h]h ]h"]h$]h&]uh1jhjk-hMhjM-ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) 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)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hMhjM-ubeh}(h]h ]h"]h$]h&]uh1jhj1-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.chMhj1-ubjg)}(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.}(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.chMhj1-ubeh}(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}(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_freeh]j%)}(hsnd_soc_dapm_freeh]hsnd_soc_dapm_free}(hj0.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,.ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj .hhhj.hMubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjL.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjH.ubj)}(h h]h }(hjY.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjH.ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjl.modnameN classnameNjj)}j]j)}jj2.sbc.snd_soc_dapm_freeasbuh1hhjH.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjH.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjH.ubj%)}(hdapmh]hdapm}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjH.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjD.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)}(hfree dapm resourcesh]hfree dapm resources}(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 **Description** Free all dapm widgets and resources.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/ubah}(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)}(h$Free all dapm widgets and resources.h]h$Free all dapm widgets and resources.}(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.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] asoc-dapm-apiah ]h"] asoc dapm apiah$]h&]uh1hhjhhhhhhKlubh)}(hhh](h)}(hASoC DMA Engine APIh]hASoC DMA Engine API}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhKpubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_dmaengine_pcm_prepare_slave_config (C function)(c.snd_dmaengine_pcm_prepare_slave_confighNtauh1hhj/hhhNhNubh)}(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}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhj/hK&ubj)}(h&snd_dmaengine_pcm_prepare_slave_configh]j%)}(h&snd_dmaengine_pcm_prepare_slave_configh]h&snd_dmaengine_pcm_prepare_slave_config}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhj/hK&ubj@)}(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}(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}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj/sb(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj/ubj)}(h h]h }(hj$0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj20hhhNhNubah}(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)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hjX0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjT0ubj)}(h h]h }(hje0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT0ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjv0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjx0modnameN classnameNjj)}j]j 0(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhjT0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT0ubj%)}(hparamsh]hparams}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjT0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j 0(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj0ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(h slave_configh]h slave_config}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(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%Generic prepare_slave_config callbackh]h%Generic prepare_slave_config callback}(hjI1hhhNhNubah}(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&hjF1hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj/hK&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjja1jja1jjjuh1hhhhj/hNhNubj)}(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)}(hjk1h]h Parameters}(hjm1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji1ubah}(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*hje1ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj1h]h#struct snd_pcm_substream *substream}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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'hj1ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hK'hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hK'hj1ubj)}(h/``struct snd_pcm_hw_params *params`` hw_params h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hj1h]h struct snd_pcm_hw_params *params}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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(hj1ubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hK(hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hK(hj1ubj)}(hF``struct dma_slave_config *slave_config`` DMA slave config to prepare h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj1h]h%struct dma_slave_config *slave_config}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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)hj1ubj)}(hhh]jg)}(hDMA slave config to prepareh]hDMA slave config to prepare}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hK)hj2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj2hK)hj1ubeh}(h]h ]h"]h$]h&]uh1jhje1ubjg)}(h**Description**h]j)}(hj72h]h Description}(hj92hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj52ubah}(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+hje1ubjg)}(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.}(hjM2hhhNhNubah}(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+hje1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj/hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_dmaengine_pcm_register (C function)c.snd_dmaengine_pcm_registerhNtauh1hhj/hhhNhNubh)}(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}(hj|2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjx2hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjx2hhhj2hMubj)}(hsnd_dmaengine_pcm_registerh]j%)}(hsnd_dmaengine_pcm_registerh]hsnd_dmaengine_pcm_register}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjx2hhhj2hMubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jj2sbc.snd_dmaengine_pcm_registerasbuh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(hdevh]hdev}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubjF)}(h-const struct snd_dmaengine_pcm_config *configh](jL)}(hj\h]hconst}(hj+3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'3ubj)}(h h]h }(hj83hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'3ubjL)}(hjOh]hstruct}(hjF3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj'3ubj)}(h h]h }(hjS3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'3ubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hjd3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf3modnameN classnameNjj)}j]j2c.snd_dmaengine_pcm_registerasbuh1hhj'3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'3ubj%)}(hconfigh]hconfig}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj%)}(hflagsh]hflags}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjx2hhhj2hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjt2hhhj2hMubah}(h]jo2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2hMhjq2hhubjb)}(hhh]jg)}(h%Register a dmaengine based PCM deviceh]h%Register a dmaengine based PCM device}(hj4hhhNhNubah}(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.chMhj4hhubah}(h]h ]h"]h$]h&]uh1jahjq2hhhj2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj04jj04jjjuh1hhhhj/hNhNubj)}(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)}(hj:4h]h Parameters}(hj<4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj84ubah}(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.chMhj44ubj)}(hhh](j)}(h<``struct device *dev`` The parent device for the PCM device h](j)}(h``struct device *dev``h]j)}(hjY4h]hstruct device *dev}(hj[4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW4ubah}(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.chMhjS4ubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hjr4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjn4hMhjo4ubah}(h]h ]h"]h$]h&]uh1jhjS4ubeh}(h]h ]h"]h$]h&]uh1jhjn4hMhjP4ubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hj4h]h-const struct snd_dmaengine_pcm_config *config}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(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.chMhj4ubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjP4ubj)}(h/``unsigned int flags`` Platform specific quirksh](j)}(h``unsigned int flags``h]j)}(hj4h]hunsigned int flags}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(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.chMhj4ubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hj4hhhNhNubah}(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.chMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjP4ubeh}(h]h ]h"]h$]h&]uh1jhj44ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj/hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_dmaengine_pcm_unregister (C function)c.snd_dmaengine_pcm_unregisterhNtauh1hhj/hhhNhNubh)}(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%5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!5hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj)}(h h]h }(hj45hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!5hhhj35hMubj)}(hsnd_dmaengine_pcm_unregisterh]j%)}(hsnd_dmaengine_pcm_unregisterh]hsnd_dmaengine_pcm_unregister}(hjF5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!5hhhj35hMubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjb5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^5ubj)}(h h]h }(hjo5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^5ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjH5sbc.snd_dmaengine_pcm_unregisterasbuh1hhj^5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^5ubj%)}(hdevh]hdev}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZ5ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj!5hhhj35hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj5hhhj35hMubah}(h]j5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj35hMhj5hhubjb)}(hhh]jg)}(h$Removes a dmaengine based PCM deviceh]h$Removes a dmaengine based PCM device}(hj5hhhNhNubah}(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.chMhj5hhubah}(h]h ]h"]h$]h&]uh1jahj5hhhj35hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj/hNhNubj)}(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)}(hj6h]h Parameters}(hj 6hhhNhNubah}(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.chMhj6ubj)}(hhh]j)}(h?``struct device *dev`` Parent device the PCM was register with h](j)}(h``struct device *dev``h]j)}(hj&6h]hstruct device *dev}(hj(6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$6ubah}(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 6ubj)}(hhh]jg)}(h'Parent device the PCM was register withh]h'Parent device the PCM was register with}(hj?6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;6hMhj<6ubah}(h]h ]h"]h$]h&]uh1jhj 6ubeh}(h]h ]h"]h$]h&]uh1jhj;6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hja6h]h Description}(hjc6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_6ubah}(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.chMhj6ubjg)}(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.}(hjw6hhhNhNubah}(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.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj/hhhNhNubeh}(h]asoc-dma-engine-apiah ]h"]asoc dma engine apiah$]h&]uh1hhjhhhhhhKpubeh}(h]asocah ]h"]asocah$]h&]uh1hhhhhhhhK_ubh)}(hhh](h)}(hMiscellaneous Functionsh]hMiscellaneous Functions}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKtubh)}(hhh](h)}(hHardware-Dependent Devices APIh]hHardware-Dependent Devices API}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hhhhhKwubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_hwdep_new (C function)c.snd_hwdep_newhNtauh1hhj6hhhNhNubh)}(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}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhj6hM_ubj)}(h snd_hwdep_newh]j%)}(h snd_hwdep_newh]h snd_hwdep_new}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhj6hM_ubj@)}(hH(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](jF)}(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}(hj37hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj07ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj57modnameN classnameNjj)}j]j)}jj6sbc.snd_hwdep_newasbuh1hhj7ubj)}(h h]h }(hjS7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hja7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hcardh]hcard}(hjn7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 7ubjF)}(hchar *idh](h)}(hcharh]hchar}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hidh]hid}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 7ubjF)}(h int deviceh](h)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hdeviceh]hdevice}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 7ubjF)}(hstruct snd_hwdep **rhwdeph](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj 8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(h snd_hwdeph]h snd_hwdep}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]jO7c.snd_hwdep_newasbuh1hhj7ubj)}(h h]h }(hj:8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjH8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(hjh]h*}(hjU8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hrhwdeph]hrhwdep}(hjb8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj 7ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhj6hM_ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhj6hM_ubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj6hM_hj6hhubjb)}(hhh]jg)}(hcreate a new hwdep instanceh]hcreate a new hwdep instance}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_hj8hhubah}(h]h ]h"]h$]h&]uh1jahj6hhhj6hM_ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhj6hNhNubj)}(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)}(hj8h]h Parameters}(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:120: ./sound/core/hwdep.chMchj8ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj8h]hstruct snd_card *card}(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:120: ./sound/core/hwdep.chM`hj8ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hM`hj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hM`hj8ubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hj9h]hchar *id}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMahj9ubj)}(hhh]jg)}(h the id stringh]h the id string}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMahj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMahj8ubj)}(h-``int device`` the device index (zero-based) h](j)}(h``int device``h]j)}(hj?9h]h int device}(hjA9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=9ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMbhj99ubj)}(hhh]jg)}(hthe device index (zero-based)h]hthe device index (zero-based)}(hjX9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjT9hMbhjU9ubah}(h]h ]h"]h$]h&]uh1jhj99ubeh}(h]h ]h"]h$]h&]uh1jhjT9hMbhj8ubj)}(hJ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance h](j)}(h``struct snd_hwdep **rhwdep``h]j)}(hjx9h]hstruct snd_hwdep **rhwdep}(hjz9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv9ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjr9ubj)}(hhh]jg)}(h+the pointer to store the new hwdep instanceh]h+the pointer to store the new hwdep instance}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMchj9ubah}(h]h ]h"]h$]h&]uh1jhjr9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMchj8ubeh}(h]h ]h"]h$]h&]uh1jhj8ubjg)}(h**Description**h]j)}(hj9h]h Description}(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:120: ./sound/core/hwdep.chMehj8ubjg)}(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.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMehj8ubjg)}(h **Return**h]j)}(hj9h]hReturn}(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:120: ./sound/core/hwdep.chMihj8ubjg)}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj6hhhNhNubeh}(h]hardware-dependent-devices-apiah ]h"]hardware-dependent devices apiah$]h&]uh1hhj6hhhhhKwubh)}(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}(hj9:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5:hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKubj)}(h h]h }(hjG:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5:hhhjF:hKubj)}(hsnd_jack_typesh]j%)}(hj3:h]hsnd_jack_types}(hjY:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjU:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj5:hhhjF:hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1:hhhjF:hKubah}(h]j+:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjF: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.hhKhjx:hhubah}(h]h ]h"]h$]h&]uh1jahj.:hhhjF:hKubeh}(h]h ](jenumeh"]h$]h&]jjjj:jj: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_USB`` USB audio device ``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}(hj0;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}(hjG;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjC;hKhjD;ubah}(h]h ]h"]h$]h&]uh1jhj(;ubeh}(h]h ]h"]h$]h&]uh1jhjC;hKhj:ubj)}(h``SND_JACK_LINEOUT`` Line out h](j)}(h``SND_JACK_LINEOUT``h]j)}(hjg;h]hSND_JACK_LINEOUT}(hji;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje;ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hja;ubj)}(hhh]jg)}(hLine outh]hLine out}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|;hK hj};ubah}(h]h ]h"]h$]h&]uh1jhja;ubeh}(h]h ]h"]h$]h&]uh1jhj|;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)}(hjK<h]hSND_JACK_LINEIN}(hjM<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI<ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK,hjE<ubj)}(hhh]jg)}(hLine inh]hLine in}(hjd<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`<hK,hja<ubah}(h]h ]h"]h$]h&]uh1jhjE<ubeh}(h]h ]h"]h$]h&]uh1jhj`<hK,hj:ubj)}(h"``SND_JACK_USB`` USB audio device h](j)}(h``SND_JACK_USB``h]j)}(hj<h]h SND_JACK_USB}(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)}(hUSB audio deviceh]hUSB audio device}(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_BTN_0`` Button 0 h](j)}(h``SND_JACK_BTN_0``h]j)}(hj<h]hSND_JACK_BTN_0}(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 0h]hButton 0}(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_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.hhK5hj<ubj)}(hhh]jg)}(hButton 1h]hButton 1}(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_2`` Button 2 h](j)}(h``SND_JACK_BTN_2``h]j)}(hj/=h]hSND_JACK_BTN_2}(hj1=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.hhK8hj)=ubj)}(hhh]jg)}(hButton 2h]hButton 2}(hjH=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjD=hK8hjE=ubah}(h]h ]h"]h$]h&]uh1jhj)=ubeh}(h]h ]h"]h$]h&]uh1jhjD=hK8hj:ubj)}(h``SND_JACK_BTN_3`` Button 3 h](j)}(h``SND_JACK_BTN_3``h]j)}(hjh=h]hSND_JACK_BTN_3}(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:124: ./include/sound/jack.hhK;hjb=ubj)}(hhh]jg)}(hButton 3h]hButton 3}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}=hK;hj~=ubah}(h]h ]h"]h$]h&]uh1jhjb=ubeh}(h]h ]h"]h$]h&]uh1jhj}=hK;hj:ubj)}(h``SND_JACK_BTN_4`` Button 4 h](j)}(h``SND_JACK_BTN_4``h]j)}(hj=h]hSND_JACK_BTN_4}(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)}(hButton 4h]hButton 4}(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_BTN_5`` Button 5h](j)}(h``SND_JACK_BTN_5``h]j)}(hj=h]hSND_JACK_BTN_5}(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)}(hButton 5h]hButton 5}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKAhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hK@hj:ubeh}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj:hhhj-:hNubjg)}(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:124: ./include/sound/jack.hhKChj:hhubjg)}(h#These values are used as a bitmask.h]h#These values are used as a bitmask.}(hj3>hhhNhNubah}(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.}(hjB>hhhNhNubah}(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}(hjj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjf>hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hjy>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjf>hhhjx>hMubj)}(hsnd_jack_add_new_kctlh]j%)}(hsnd_jack_add_new_kctlh]hsnd_jack_add_new_kctl}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjf>hhhjx>hMubj@)}(h3(struct snd_jack *jack, const char *name, int mask)h](jF)}(hstruct snd_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%)}(hsnd_jackh]hsnd_jack}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]j)}jj>sbc.snd_jack_add_new_kctlasbuh1hhj>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>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}(hj4?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hjB?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjP?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)}(hint maskh](h)}(hinth]hint}(hjv?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjr?ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjr?ubj%)}(hmaskh]hmask}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj>ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjf>hhhjx>hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjb>hhhjx>hMubah}(h]j]>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjx>hMhj_>hhubjb)}(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}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj?hhubah}(h]h ]h"]h$]h&]uh1jahj_>hhhjx>hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1hhhhj: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)}(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:125: ./sound/core/jack.chMhj?ubj)}(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)}(hj?h]hstruct snd_jack *jack}(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:125: ./sound/core/jack.chMhj?ubj)}(hhh]jg)}(h2the jack instance which the kctl will attaching toh]h2the jack instance which the kctl will attaching to}(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 name for the snd_kcontrol object h](j)}(h``const char * name``h]j)}(hj6@h]hconst char * name}(hj8@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4@ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj0@ubj)}(hhh]jg)}(h$the name for the snd_kcontrol objecth]h$the name for the snd_kcontrol object}(hjO@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjK@hMhjL@ubah}(h]h ]h"]h$]h&]uh1jhj0@ubeh}(h]h ]h"]h$]h&]uh1jhjK@hMhj?ubj)}(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)}(hjo@h]hint mask}(hjq@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm@ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhji@ubj)}(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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj@ubah}(h]h ]h"]h$]h&]uh1jhji@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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj?ubjg)}(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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj?ubjg)}(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:125: ./sound/core/jack.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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj?ubeh}(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}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hj&AhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhj%AhMubj)}(h snd_jack_newh]j%)}(h snd_jack_newh]h snd_jack_new}(hj8AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4Aubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhj%AhMubj@)}(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}(hjTAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPAubj)}(h h]h }(hjaAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPAubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjrAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtAmodnameN classnameNjj)}j]j)}jj:Asbc.snd_jack_newasbuh1hhjPAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPAubj%)}(hcardh]hcard}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hcharh]hchar}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj%)}(hidh]hid}(hj BhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubjF)}(hint typeh](h)}(hinth]hint}(hj#BhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hj1BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(htypeh]htype}(hj?BhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubjF)}(hstruct snd_jack **jjackh](jL)}(hjOh]hstruct}(hjXBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTBubj)}(h h]h }(hjeBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTBubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjvBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxBmodnameN classnameNjj)}j]jAc.snd_jack_newasbuh1hhjTBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTBubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTBubj%)}(hjjackh]hjjack}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubjF)}(hbool initial_kctlh](h)}(hjh]hbool}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(h initial_kctlh]h initial_kctl}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubjF)}(hbool phantom_jackh](h)}(hjh]hbool}(hj ChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(h phantom_jackh]h phantom_jack}(hj$ChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLAubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhj%AhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhj%AhMubah}(h]j Aah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%AhMhj Ahhubjb)}(hhh]jg)}(hCreate a new jackh]hCreate a new jack}(hjNChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKChhubah}(h]h ]h"]h$]h&]uh1jahj Ahhhj%AhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfCjjfCjjjuh1hhhhj: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)}(hjpCh]h Parameters}(hjrChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnCubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjjCubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjCh]hstruct snd_card *card}(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)}(hthe card instanceh]hthe card instance}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(h7``const char *id`` an identifying string for this jack h](j)}(h``const char *id``h]j)}(hjCh]hconst char *id}(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#an identifying string for this jackh]h#an identifying string for this jack}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChMhjCubj)}(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)}(hjDh]hint type}(hjDhhhNhNubah}(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)}(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}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjDubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjCubj)}(hU``struct snd_jack **jjack`` Used to provide the allocated jack object to the caller. h](j)}(h``struct snd_jack **jjack``h]j)}(hj;Dh]hstruct snd_jack **jjack}(hj=DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Dubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj5Dubj)}(hhh]jg)}(h8Used to provide the allocated jack object to the caller.h]h8Used to provide the allocated jack object to the caller.}(hjTDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPDhMhjQDubah}(h]h ]h"]h$]h&]uh1jhj5Dubeh}(h]h ]h"]h$]h&]uh1jhjPDhMhjCubj)}(hN``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. h](j)}(h``bool initial_kctl``h]j)}(hjtDh]hbool initial_kctl}(hjvDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrDubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjnDubj)}(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.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjDubah}(h]h ]h"]h$]h&]uh1jhjnDubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjCubj)}(hE``bool phantom_jack`` Don't create a input device for phantom jacks. h](j)}(h``bool phantom_jack``h]j)}(hjDh]hbool phantom_jack}(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)}(h.Don't create a input device for phantom jacks.h]h0Don’t create a input device for phantom jacks.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjCubeh}(h]h ]h"]h$]h&]uh1jhjjCubjg)}(h**Description**h]j)}(hjDh]h Description}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjjCubjg)}(hCreates a new jack object.h]hCreates a new jack object.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjjCubjg)}(h **Return**h]j)}(hjEh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Eubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjjCubjg)}(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 }(hj%EhhhNhNubj)}(h **jjack**h]hjjack}(hj-EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Eubh will be initialised.}(hj%EhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjjCubeh}(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}(hjfEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbEhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDubj)}(h h]h }(hjuEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbEhhhjtEhMDubj)}(hsnd_jack_set_keyh]j%)}(hsnd_jack_set_keyh]hsnd_jack_set_key}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbEhhhjtEhMDubj@)}(h>(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjEhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]j)}jjEsbc.snd_jack_set_keyasbuh1hhjEubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(hjackh]hjack}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(henum snd_jack_types typeh](jL)}(hj'h]henum}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hj"FhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(hsnd_jack_typesh]hsnd_jack_types}(hj3FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0Fubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5FmodnameN classnameNjj)}j]jEc.snd_jack_set_keyasbuh1hhjFubj)}(h h]h }(hjQFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(htypeh]htype}(hj_FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(h int keytypeh](h)}(hinth]hint}(hjxFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjtFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtFubj%)}(hkeytypeh]hkeytype}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjbEhhhjtEhMDubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^EhhhjtEhMDubah}(h]jYEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjtEhMDhj[Ehhubjb)}(hhh]jg)}(hSet a key mapping on a jackh]hSet a key mapping on a jack}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDhjFhhubah}(h]h ]h"]h$]h&]uh1jahj[EhhhjtEhMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhj: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)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjFubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure h](j)}(h``struct snd_jack *jack``h]j)}(hjFh]hstruct snd_jack *jack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMFhjFubj)}(hhh]jg)}(hThe jack to configureh]hThe jack to configure}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMFhjGubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjGhMFhjFubj)}(h;``enum snd_jack_types type`` Jack report type for this key h](j)}(h``enum snd_jack_types type``h]j)}(hj8Gh]henum snd_jack_types type}(hj:GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Gubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMGhj2Gubj)}(hhh]jg)}(hJack report type for this keyh]hJack report type for this key}(hjQGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMGhMGhjNGubah}(h]h ]h"]h$]h&]uh1jhj2Gubeh}(h]h ]h"]h$]h&]uh1jhjMGhMGhjFubj)}(h4``int keytype`` Input layer key type to be reported h](j)}(h``int keytype``h]j)}(hjqGh]h int keytype}(hjsGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjkGubj)}(hhh]jg)}(h#Input layer key type to be reportedh]h#Input layer key type to be reported}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMHhjGubah}(h]h ]h"]h$]h&]uh1jhjkGubeh}(h]h ]h"]h$]h&]uh1jhjGhMHhjFubeh}(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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMJhjFubjg)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMJhjFubjg)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMOhjFubjg)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMRhjFubjg)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMXhjFubjg)}(h **Return**h]j)}(hjHh]hReturn}(hjHhhhNhNubah}(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.chMZhjFubjg)}(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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMZhjFubeh}(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}(hjEHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAHhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnubj)}(h h]h }(hjTHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAHhhhjSHhMnubj)}(hsnd_jack_reporth]j%)}(hsnd_jack_reporth]hsnd_jack_report}(hjfHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAHhhhjSHhMnubj@)}(h#(struct snd_jack *jack, int status)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~Hubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~Hubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjhHsbc.snd_jack_reportasbuh1hhj~Hubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~Hubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Hubj%)}(hjackh]hjack}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~Hubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzHubjF)}(h int statush](h)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(hstatush]hstatus}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzHubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAHhhhjSHhMnubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=HhhhjSHhMnubah}(h]j8Hah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjSHhMnhj:Hhhubjb)}(hhh]jg)}(h#Report the current status of a jackh]h#Report the current status of a jack}(hj:IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnhj7Ihhubah}(h]h ]h"]h$]h&]uh1jahj:HhhhjSHhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRIjjRIjjjuh1hhhhj: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)}(hj\Ih]h Parameters}(hj^IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZIubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjVIubj)}(hhh](j)}(h8``struct snd_jack *jack`` The jack to report status for h](j)}(h``struct snd_jack *jack``h]j)}(hj{Ih]hstruct snd_jack *jack}(hj}IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyIubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjuIubj)}(hhh]jg)}(hThe jack to report status forh]hThe jack to report status for}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMrhjIubah}(h]h ]h"]h$]h&]uh1jhjuIubeh}(h]h ]h"]h$]h&]uh1jhjIhMrhjrIubj)}(h.``int status`` The current status of the jack h](j)}(h``int status``h]j)}(hjIh]h int status}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMshjIubj)}(hhh]jg)}(hThe current status of the jackh]hThe current status of the jack}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMshjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhMshjrIubeh}(h]h ]h"]h$]h&]uh1jhjVIubjg)}(h**Note**h]j)}(hjIh]hNote}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMuhjVIubjg)}(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).}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMohjVIubeh}(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}(hj4JhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0Jhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjCJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0JhhhjBJhKubj)}(hsnd_soc_jack_reporth]j%)}(hsnd_soc_jack_reporth]hsnd_soc_jack_report}(hjUJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0JhhhjBJhKubj@)}(h1(struct snd_soc_jack *jack, int status, int mask)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjqJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmJubj)}(h h]h }(hj~JhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmJubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjWJsbc.snd_soc_jack_reportasbuh1hhjmJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmJubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmJubj%)}(hjackh]hjack}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiJubjF)}(h int statush](h)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hstatush]hstatus}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiJubjF)}(hint maskh](h)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hj&KhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(hmaskh]hmask}(hj4KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiJubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0JhhhjBJhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,JhhhjBJhKubah}(h]j'Jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBJhKhj)Jhhubjb)}(hhh]jg)}(h$Report the current status for a jackh]h$Report the current status for a jack}(hj^KhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj[Khhubah}(h]h ]h"]h$]h&]uh1jahj)JhhhjBJhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvKjjvKjjjuh1hhhhj: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)}(hjKh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~Kubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjzKubj)}(hhh](j)}(h'``struct snd_soc_jack *jack`` the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjKh]hstruct snd_soc_jack *jack}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjKubj)}(hhh]jg)}(hthe jackh]hthe jack}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhjKubj)}(hS``int status`` a bitmask of enum snd_jack_type values that are currently detected. h](j)}(h``int status``h]j)}(hjKh]h int status}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjKubj)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhjKubj)}(hI``int mask`` a bitmask of enum snd_jack_type values that being reported. h](j)}(h ``int mask``h]j)}(hjLh]hint mask}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj Lubj)}(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.}(hj*LhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&LhKhj'Lubah}(h]h ]h"]h$]h&]uh1jhj Lubeh}(h]h ]h"]h$]h&]uh1jhj&LhKhjKubeh}(h]h ]h"]h$]h&]uh1jhjzKubjg)}(h**Description**h]j)}(hjLLh]h Description}(hjNLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjzKubjg)}(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.}(hjbLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjzKubjg)}(h**Note**h]j)}(hjsLh]hNote}(hjuLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjzKubjg)}(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).}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjzKubeh}(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}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhhhjLhKPubj)}(hsnd_soc_jack_add_zonesh]j%)}(hsnd_soc_jack_add_zonesh]hsnd_soc_jack_add_zones}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhjLhKPubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjLsbc.snd_soc_jack_add_zonesasbuh1hhjLubj)}(h h]h }(hj3MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj)}(hjh]h*}(hjAMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj%)}(hjackh]hjack}(hjNMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(h int counth](h)}(hinth]hint}(hjgMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcMubj)}(h h]h }(hjuMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcMubj%)}(hcounth]hcount}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(hstruct snd_soc_jack_zone *zonesh](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(hsnd_soc_jack_zoneh]hsnd_soc_jack_zone}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j/Mc.snd_soc_jack_add_zonesasbuh1hhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(hzonesh]hzones}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhjLhKPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjLhKPubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhKPhjLhhubjb)}(hhh]jg)}(h!Associate voltage zones with jackh]h!Associate voltage zones with jack}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPhjNhhubah}(h]h ]h"]h$]h&]uh1jahjLhhhjLhKPubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5Njj5Njjjuh1hhhhj: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)}(hj?Nh]h Parameters}(hjANhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Nubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThj9Nubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj^Nh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chKRhjXNubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjwNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjsNhKRhjtNubah}(h]h ]h"]h$]h&]uh1jhjXNubeh}(h]h ]h"]h$]h&]uh1jhjsNhKRhjUNubj)}(h``int count`` Number of zones h](j)}(h ``int count``h]j)}(hjNh]h int count}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKShjNubj)}(hhh]jg)}(hNumber of zonesh]hNumber of zones}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKShjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKShjUNubj)}(h3``struct snd_soc_jack_zone *zones`` Array of zones h](j)}(h#``struct snd_soc_jack_zone *zones``h]j)}(hjNh]hstruct snd_soc_jack_zone *zones}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjNubj)}(hhh]jg)}(hArray of zonesh]hArray of zones}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKThjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKThjUNubeh}(h]h ]h"]h$]h&]uh1jhj9Nubjg)}(h**Description**h]j)}(hj Oh]h Description}(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:126: ./sound/soc/soc-jack.chKVhj9Nubjg)}(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.}(hj!OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKVhj9Nubeh}(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}(hjPOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLOhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKgubj)}(h h]h }(hj_OhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLOhhhj^OhKgubj)}(hsnd_soc_jack_get_typeh]j%)}(hsnd_soc_jack_get_typeh]hsnd_soc_jack_get_type}(hjqOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLOhhhj^OhKgubj@)}(h0(struct snd_soc_jack *jack, int micbias_voltage)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsOsbc.snd_soc_jack_get_typeasbuh1hhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hjackh]hjack}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubjF)}(hint micbias_voltageh](h)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hj PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hmicbias_voltageh]hmicbias_voltage}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjLOhhhj^OhKgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHOhhhj^OhKgubah}(h]jCOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^OhKghjEOhhubjb)}(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}(hjEPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKghjBPhhubah}(h]h ]h"]h$]h&]uh1jahjEOhhhj^OhKgubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]Pjj]Pjjjuh1hhhhj: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)}(hjgPh]h Parameters}(hjiPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjePubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhjaPubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjPh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chKjhjPubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKjhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKjhj}Pubj)}(hP``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in h](j)}(h``int micbias_voltage``h]j)}(hjPh]hint micbias_voltage}(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:126: ./sound/soc/soc-jack.chKkhjPubj)}(hhh]jg)}(h7mic bias voltage at adc channel when jack is plugged inh]h7mic bias voltage at adc channel when jack is plugged in}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKkhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKkhj}Pubeh}(h]h ]h"]h$]h&]uh1jhjaPubjg)}(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:126: ./sound/soc/soc-jack.chKmhjaPubjg)}(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}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhjaPubeh}(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}(hj?QhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;Qhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~ubj)}(h h]h }(hjNQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;QhhhjMQhK~ubj)}(hsnd_soc_jack_add_pinsh]j%)}(hsnd_soc_jack_add_pinsh]hsnd_soc_jack_add_pins}(hj`QhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\Qubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;QhhhjMQhK~ubj@)}(hE(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj|QhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxQubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jjbQsbc.snd_soc_jack_add_pinsasbuh1hhjxQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxQubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxQubj%)}(hjackh]hjack}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtQubjF)}(h int counth](h)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj%)}(hcounth]hcount}(hj RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtQubjF)}(hstruct snd_soc_jack_pin *pinsh](jL)}(hjOh]hstruct}(hj#RhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hj0RhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hsnd_soc_jack_pinh]hsnd_soc_jack_pin}(hjARhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCRmodnameN classnameNjj)}j]jQc.snd_soc_jack_add_pinsasbuh1hhjRubj)}(h h]h }(hj_RhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjmRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hpinsh]hpins}(hjzRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtQubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;QhhhjMQhK~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7QhhhjMQhK~ubah}(h]j2Qah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMQhK~hj4Qhhubjb)}(hhh]jg)}(h%Associate DAPM pins with an ASoC jackh]h%Associate DAPM pins with an ASoC jack}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~hjRhhubah}(h]h ]h"]h$]h&]uh1jahj4QhhhjMQhK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1hhhhj: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)}(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:126: ./sound/soc/soc-jack.chKhjRubj)}(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)}(hjRh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chKhjRubj)}(hhh]jg)}(h3ASoC jack created with snd_soc_card_jack_new_pins()h]h3ASoC jack created with snd_soc_card_jack_new_pins()}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhKhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhjRubj)}(h``int count`` Number of pins h](j)}(h ``int count``h]j)}(hjSh]h int count}(hj ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjSubj)}(hhh]jg)}(hNumber of pinsh]hNumber of pins}(hj7ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3ShKhj4Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj3ShKhjRubj)}(h0``struct snd_soc_jack_pin *pins`` Array of pins h](j)}(h!``struct snd_soc_jack_pin *pins``h]j)}(hjWSh]hstruct snd_soc_jack_pin *pins}(hjYShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQSubj)}(hhh]jg)}(h Array of pinsh]h Array of pins}(hjpShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlShKhjmSubah}(h]h ]h"]h$]h&]uh1jhjQSubeh}(h]h ]h"]h$]h&]uh1jhjlShKhjRubeh}(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:126: ./sound/soc/soc-jack.chKhjRubjg)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjRubeh}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjShhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjShKubj)}(hsnd_soc_jack_notifier_registerh]j%)}(hsnd_soc_jack_notifier_registerh]hsnd_soc_jack_notifier_register}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjShKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hj!ThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj2ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/Tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4TmodnameN classnameNjj)}j]j)}jjSsb c.snd_soc_jack_notifier_registerasbuh1hhjTubj)}(h h]h }(hjRThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hj`ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hjackh]hjack}(hjmThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj TubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jNT c.snd_soc_jack_notifier_registerasbuh1hhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hnbh]hnb}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj Tubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjShhhjShKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjShhhjShKubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShKhjShhubjb)}(hhh]jg)}(h#Register a notifier for jack statush]h#Register a notifier for jack status}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjUhhubah}(h]h ]h"]h$]h&]uh1jahjShhhjShKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj: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)}(hj)Uh]h Parameters}(hj+UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Uubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Uubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjHUh]hstruct snd_soc_jack *jack}(hjJUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFUubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjBUubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjaUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]UhKhj^Uubah}(h]h ]h"]h$]h&]uh1jhjBUubeh}(h]h ]h"]h$]h&]uh1jhj]UhKhj?Uubj)}(h9``struct notifier_block *nb`` Notifier block to register h](j)}(h``struct notifier_block *nb``h]j)}(hjUh]hstruct notifier_block *nb}(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:126: ./sound/soc/soc-jack.chKhj{Uubj)}(hhh]jg)}(hNotifier block to registerh]hNotifier block to register}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKhjUubah}(h]h ]h"]h$]h&]uh1jhj{Uubeh}(h]h ]h"]h$]h&]uh1jhjUhKhj?Uubeh}(h]h ]h"]h$]h&]uh1jhj#Uubjg)}(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:126: ./sound/soc/soc-jack.chKhj#Uubjg)}(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.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Uubeh}(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}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjVhKubj)}(h snd_soc_jack_notifier_unregisterh]j%)}(h snd_soc_jack_notifier_unregisterh]h snd_soc_jack_notifier_unregister}(hj"VhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjVhKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj>VhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:Vubj)}(h h]h }(hjKVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:Vubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj\VhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^VmodnameN classnameNjj)}j]j)}jj$Vsb"c.snd_soc_jack_notifier_unregisterasbuh1hhj:Vubj)}(h h]h }(hj|VhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:Vubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:Vubj%)}(hjackh]hjack}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:Vubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6VubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jxV"c.snd_soc_jack_notifier_unregisterasbuh1hhjVubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hnbh]hnb}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6Vubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjUhhhjVhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhjVhKubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjVhKhjUhhubjb)}(hhh]jg)}(h%Unregister a notifier for jack statush]h%Unregister a notifier for jack status}(hj1WhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj.Whhubah}(h]h ]h"]h$]h&]uh1jahjUhhhjVhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIWjjIWjjjuh1hhhhj: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)}(hjSWh]h Parameters}(hjUWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQWubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjMWubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjrWh]hstruct snd_soc_jack *jack}(hjtWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpWubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjlWubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhKhjWubah}(h]h ]h"]h$]h&]uh1jhjlWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhjiWubj)}(h;``struct notifier_block *nb`` Notifier block to unregister h](j)}(h``struct notifier_block *nb``h]j)}(hjWh]hstruct notifier_block *nb}(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:126: ./sound/soc/soc-jack.chKhjWubj)}(hhh]jg)}(hNotifier block to unregisterh]hNotifier block to unregister}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhKhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhKhjiWubeh}(h]h ]h"]h$]h&]uh1jhjMWubjg)}(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:126: ./sound/soc/soc-jack.chKhjMWubjg)}(h"Stop notifying for status changes.h]h"Stop notifying for status changes.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjMWubeh}(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+XhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'Xhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-ubj)}(h h]h }(hj:XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'Xhhhj9XhM-ubj)}(hsnd_soc_jack_add_gpiosh]j%)}(hsnd_soc_jack_add_gpiosh]hsnd_soc_jack_add_gpios}(hjLXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHXubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'Xhhhj9XhM-ubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjhXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdXubj)}(h h]h }(hjuXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdXubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jjNXsbc.snd_soc_jack_add_gpiosasbuh1hhjdXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdXubj%)}(hjackh]hjack}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`XubjF)}(h int counth](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj%)}(hcounth]hcount}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`XubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj Yubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Yubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hj-YhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/YmodnameN classnameNjj)}j]jXc.snd_soc_jack_add_gpiosasbuh1hhj Yubj)}(h h]h }(hjKYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Yubj)}(hjh]h*}(hjYYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Yubj%)}(hgpiosh]hgpios}(hjfYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Yubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`Xubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj'Xhhhj9XhM-ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#Xhhhj9XhM-ubah}(h]jXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9XhM-hj Xhhubjb)}(hhh]jg)}(h%Associate GPIO pins with an ASoC jackh]h%Associate GPIO pins with an ASoC jack}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-hjYhhubah}(h]h ]h"]h$]h&]uh1jahj Xhhhj9XhM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYjjYjjjuh1hhhhj: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)}(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:126: ./sound/soc/soc-jack.chM1hjYubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjYh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chM/hjYubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM/hjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhM/hjYubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hj Zh]h int count}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM0hjZubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hj#ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhM0hj Zubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhM0hjYubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjCZh]hstruct snd_soc_jack_gpio *gpios}(hjEZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAZubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hj=Zubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hj\ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXZhM1hjYZubah}(h]h ]h"]h$]h&]uh1jhj=Zubeh}(h]h ]h"]h$]h&]uh1jhjXZhM1hjYubeh}(h]h ]h"]h$]h&]uh1jhjYubjg)}(h**Description**h]j)}(hj~Zh]h Description}(hjZhhhNhNubah}(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:126: ./sound/soc/soc-jack.chM3hjYubjg)}(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.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hjYubeh}(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}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZhhhjZhMubj)}(hsnd_soc_jack_add_gpiodsh]j%)}(hsnd_soc_jack_add_gpiodsh]hsnd_soc_jack_add_gpiods}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjZhhhjZhMubj@)}(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&]uh1jKhjZubj)}(h h]h }(hj [hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(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)}jjZsbc.snd_soc_jack_add_gpiodsasbuh1hhjZubj)}(h h]h }(hj>[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjL[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(h gpiod_devh]h gpiod_dev}(hjY[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjr[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjn[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjn[ubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j:[c.snd_soc_jack_add_gpiodsasbuh1hhjn[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjn[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn[ubj%)}(hjackh]hjack}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjn[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(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>uh1jEhjZubjF)}(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}(hj5\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7\modnameN classnameNjj)}j]j:[c.snd_soc_jack_add_gpiodsasbuh1hhj\ubj)}(h h]h }(hjS\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hja\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hgpiosh]hgpios}(hjn\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?hjZhhhjZhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjZhMubah}(h]jZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhMhjZhhubjb)}(hhh]jg)}(h0Associate GPIO descriptor pins with an ASoC jackh]h0Associate GPIO descriptor pins with an ASoC jack}(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.chMhj\hhubah}(h]h ]h"]h$]h&]uh1jahjZhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhj: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)}(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.chMhj\ubj)}(hhh](j)}(h2``struct device *gpiod_dev`` GPIO consumer device h](j)}(h``struct device *gpiod_dev``h]j)}(hj\h]hstruct device *gpiod_dev}(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.chMhj\ubj)}(hhh]jg)}(hGPIO consumer deviceh]hGPIO consumer device}(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_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.chMhj ]ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(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 count`` number of pins h](j)}(h ``int count``h]j)}(hjK]h]h int count}(hjM]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjE]ubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hjd]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`]hMhja]ubah}(h]h ]h"]h$]h&]uh1jhjE]ubeh}(h]h ]h"]h$]h&]uh1jhj`]hMhj\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.chMhj~]ubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj\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.}(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.chMhj\ubeh}(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}(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_free_gpiosh]j%)}(hsnd_soc_jack_free_gpiosh]hsnd_soc_jack_free_gpios}(hj%^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhj^hMubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjA^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=^ubj)}(h h]h }(hjN^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$hj\^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetja^modnameN classnameNjj)}j]j)}jj'^sbc.snd_soc_jack_free_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>uh1jEhj9^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>uh1jEhj9^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]j{^c.snd_soc_jack_free_gpiosasbuh1hhj^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%)}(hgpiosh]hgpios}(hj?_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9^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,Release GPIO pins' resources of an ASoC jackh]h.Release GPIO pins’ resources of an ASoC jack}(hji_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjf_hhubah}(h]h ]h"]h$]h&]uh1jahj]hhhj^hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj:hNhNubj)}(h**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** Release gpio and irq resources for gpio pins associated with an ASoC jack.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.chMhj_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.chMhj_ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(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 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.chMhj_ubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(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_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.chMhj`ubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hj5`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1`hMhj2`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj1`hMhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_ubjg)}(h**Description**h]j)}(hjW`h]h Description}(hjY`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU`ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj_ubjg)}(hJRelease gpio and irq resources for gpio pins associated with an ASoC jack.h]hJRelease gpio and irq resources for gpio pins associated with an ASoC jack.}(hjm`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj:hhhNhNubeh}(h]jack-abstraction-layer-apiah ]h"]jack abstraction layer apiah$]h&]uh1hhj6hhhhhK{ubh)}(hhh](h)}(hISA DMA Helpersh]hISA DMA Helpers}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_program (C function)c.snd_dma_programhNtauh1hhj`hhhNhNubh)}(hhh](h)}(hdvoid snd_dma_program (unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h]h)}(hcvoid snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)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:130: ./sound/core/isadma.chKubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhj`hKubj)}(hsnd_dma_programh]j%)}(hsnd_dma_programh]hsnd_dma_program}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhj`hKubj@)}(hO(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubh)}(hlongh]hlong}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubj%)}(hdmah]hdma}(hj*ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hunsigned long addrh](h)}(hunsignedh]hunsigned}(hjCahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?aubj)}(h h]h }(hjQahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?aubh)}(hlongh]hlong}(hj_ahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?aubj)}(h h]h }(hjmahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?aubj%)}(haddrh]haddr}(hj{ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?aubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hsizeh]hsize}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hunsigned short modeh](h)}(hunsignedh]hunsigned}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hshorth]hshort}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hmodeh]hmode}(hjbhhhNhNubah}(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`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)}(hprogram an ISA DMA transferh]hprogram an ISA DMA transfer}(hjGbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjDbhhubah}(h]h ]h"]h$]h&]uh1jahj`hhhj`hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_bjj_bjjjuh1hhhhj`hNhNubj)}(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)}(hjibh]h Parameters}(hjkbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjcbubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hjbh]hunsigned long dma}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjbubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjbubj)}(h:``unsigned long addr`` the physical address of the buffer h](j)}(h``unsigned long addr``h]j)}(hjbh]hunsigned long addr}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjbubj)}(hhh]jg)}(h"the physical address of the bufferh]h"the physical address of the buffer}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjbubj)}(h,``unsigned int size`` the DMA transfer size h](j)}(h``unsigned int size``h]j)}(hjbh]hunsigned int size}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjbubj)}(hhh]jg)}(hthe DMA transfer sizeh]hthe DMA transfer size}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKhjcubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjchKhjbubj)}(h<``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX h](j)}(h``unsigned short mode``h]j)}(hj3ch]hunsigned short mode}(hj5chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1cubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj-cubj)}(hhh]jg)}(h#the DMA transfer mode, DMA_MODE_XXXh]h#the DMA transfer mode, DMA_MODE_XXX}(hjLchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHchKhjIcubah}(h]h ]h"]h$]h&]uh1jhj-cubeh}(h]h ]h"]h$]h&]uh1jhjHchKhjbubeh}(h]h ]h"]h$]h&]uh1jhjcbubjg)}(h**Description**h]j)}(hjnch]h Description}(hjpchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlcubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjcbubjg)}(h2Programs an ISA DMA transfer for the given buffer.h]h2Programs an ISA DMA transfer for the given buffer.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjcbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_disable (C function)c.snd_dma_disablehNtauh1hhj`hhhNhNubh)}(hhh](h)}(h(void snd_dma_disable (unsigned long dma)h]h)}(h'void snd_dma_disable(unsigned long dma)h](h)}(hvoidh]hvoid}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjchK.ubj)}(hsnd_dma_disableh]j%)}(hsnd_dma_disableh]hsnd_dma_disable}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjchhhjchK.ubj@)}(h(unsigned long dma)h]jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hlongh]hlong}(hj dhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj%)}(hdmah]hdma}(hj(dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubah}(h]h ]h"]h$]h&]j=j>uh1j?hjchhhjchK.ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjchK.ubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchK.hjchhubjb)}(hhh]jg)}(hstop the ISA DMA transferh]hstop the ISA DMA transfer}(hjRdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.hjOdhhubah}(h]h ]h"]h$]h&]uh1jahjchhhjchK.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjdjjjdjjjuh1hhhhj`hNhNubj)}(hd**Parameters** ``unsigned long dma`` the dma number **Description** Stops the ISA DMA transfer.h](jg)}(h**Parameters**h]j)}(hjtdh]h Parameters}(hjvdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrdubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK2hjndubj)}(hhh]j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hjdh]hunsigned long dma}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK/hjdubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhK/hjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhK/hjdubah}(h]h ]h"]h$]h&]uh1jhjndubjg)}(h**Description**h]j)}(hjdh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hjndubjg)}(hStops the ISA DMA transfer.h]hStops the ISA DMA transfer.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hjndubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_pointer (C function)c.snd_dma_pointerhNtauh1hhj`hhhNhNubh)}(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}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?ubj)}(h h]h }(hj"ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhj!ehK?ubh)}(hinth]hint}(hj0ehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhj!ehK?ubj)}(h h]h }(hj>ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhj!ehK?ubj)}(hsnd_dma_pointerh]j%)}(hsnd_dma_pointerh]hsnd_dma_pointer}(hjPehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLeubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhj!ehK?ubj@)}(h&(unsigned long dma, unsigned int size)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjlehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjheubj)}(h h]h }(hjzehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjheubh)}(hlongh]hlong}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjheubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjheubj%)}(hdmah]hdma}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjheubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdeubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hinth]hint}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjeubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj%)}(hsizeh]hsize}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdeubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjehhhj!ehK?ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj ehhhj!ehK?ubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj!ehK?hjehhubjb)}(hhh]jg)}(h:return the current pointer to DMA transfer buffer in bytesh]h:return the current pointer to DMA transfer buffer in bytes}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?hjfhhubah}(h]h ]h"]h$]h&]uh1jahjehhhj!ehK?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7fjj7fjjjuh1hhhhj`hNhNubj)}(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)}(hjAfh]h Parameters}(hjCfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?fubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj;fubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj`fh]hunsigned long dma}(hjbfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^fubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK@hjZfubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjyfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjufhK@hjvfubah}(h]h ]h"]h$]h&]uh1jhjZfubeh}(h]h ]h"]h$]h&]uh1jhjufhK@hjWfubj)}(h,``unsigned int size`` the dma transfer size h](j)}(h``unsigned int size``h]j)}(hjfh]hunsigned int size}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKAhjfubj)}(hhh]jg)}(hthe dma transfer sizeh]hthe dma transfer size}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhKAhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKAhjWfubeh}(h]h ]h"]h$]h&]uh1jhj;fubjg)}(h **Return**h]j)}(hjfh]hReturn}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj;fubjg)}(h4The current pointer in DMA transfer buffer in bytes.h]h4The current pointer in DMA transfer buffer in bytes.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj;fubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_devm_request_dma (C function)c.snd_devm_request_dmahNtauh1hhj`hhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrubj)}(h h]h }(hj(ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhj'ghKrubj)}(hsnd_devm_request_dmah]j%)}(hsnd_devm_request_dmah]hsnd_devm_request_dma}(hj:ghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6gubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjghhhj'ghKrubj@)}(h/(struct device *dev, int dma, const char *name)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjVghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRgubj)}(h h]h }(hjcghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRgubh)}(hhh]j%)}(hdeviceh]hdevice}(hjtghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvgmodnameN classnameNjj)}j]j)}jjuh1jEhjNgubjF)}(hint dmah](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(hdmah]hdma}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNgubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hj hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hcharh]hchar}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hj&hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hj4hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(hnameh]hname}(hjAhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNgubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhj'ghKrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjghhhj'ghKrubah}(h]j gah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj'ghKrhjghhubjb)}(hhh]jg)}(h$the managed version of request_dma()h]h$the managed version of request_dma()}(hjkhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrhjhhhhubah}(h]h ]h"]h$]h&]uh1jahjghhhj'ghKrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj`hNhNubj)}(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)}(hjhh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhjhubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjhh]hstruct device *dev}(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.chKshjhubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKshjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKshjhubj)}(h``int dma`` the dma number h](j)}(h ``int dma``h]j)}(hjhh]hint dma}(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.chKthjhubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKthjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKthjhubj)}(h6``const char *name`` the name string of the requester h](j)}(h``const char *name``h]j)}(hjih]hconst char *name}(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.chKuhjiubj)}(hhh]jg)}(h the name string of the requesterh]h the name string of the requester}(hj7ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3ihKuhj4iubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhj3ihKuhjhubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjYih]h Description}(hj[ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWiubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhjhubjg)}(hIThe requested DMA will be automatically released at unbinding via devres.h]hIThe requested DMA will be automatically released at unbinding via devres.}(hjoihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhjhubjg)}(h **Return**h]j)}(hjih]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~iubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhjhubjg)}(h)zero on success, or a negative error codeh]h)zero on success, or a negative error code}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`hhhNhNubeh}(h]isa-dma-helpersah ]h"]isa dma helpersah$]h&]uh1hhj6hhhhhKubh)}(hhh](h)}(hOther Helper Macrosh]hOther Helper Macros}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_ref (C function)c.snd_power_refhNtauh1hhjihhhNhNubh)}(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}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihKubj)}(h snd_power_refh]j%)}(h snd_power_refh]h snd_power_ref}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj(jhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj9jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;jmodnameN classnameNjj)}j]j)}jjjsbc.snd_power_refasbuh1hhjjubj)}(h h]h }(hjYjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjgjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hcardh]hcard}(hjtjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhjihKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihKubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihKhjihhubjb)}(hhh]jg)}(h*Take the reference count for power controlh]h*Take the reference count for power control}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjjhhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhjihNhNubj)}(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)}(hjjh]h Parameters}(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:134: ./include/sound/core.hhKhjjubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjjh]hstruct snd_card *card}(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:134: ./include/sound/core.hhKhjjubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubjg)}(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:134: ./include/sound/core.hhKhjjubjg)}(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.}(hj0khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_unref (C function)c.snd_power_unrefhNtauh1hhjihhhNhNubh)}(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}(hj_khhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[khhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjnkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[khhhjmkhKubj)}(hsnd_power_unrefh]j%)}(hsnd_power_unrefh]hsnd_power_unref}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|kubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[khhhjmkhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jjksbc.snd_power_unrefasbuh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj%)}(hcardh]hcard}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkubah}(h]h ]h"]h$]h&]j=j>uh1j?hj[khhhjmkhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWkhhhjmkhKubah}(h]jRkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmkhKhjTkhhubjb)}(hhh]jg)}(h-Release the reference count for power controlh]h-Release the reference count for power control}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjlhhubah}(h]h ]h"]h$]h&]uh1jahjTkhhhjmkhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7ljj7ljjjuh1hhhhjihNhNubj)}(h=**Parameters** ``struct snd_card *card`` sound card objecth](jg)}(h**Parameters**h]j)}(hjAlh]h Parameters}(hjClhhhNhNubah}(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:134: ./include/sound/core.hhKhj;lubj)}(hhh]j)}(h+``struct snd_card *card`` sound card objecth](j)}(h``struct snd_card *card``h]j)}(hj`lh]hstruct snd_card *card}(hjblhhhNhNubah}(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:134: ./include/sound/core.hhKhjZlubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjylhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjvlubah}(h]h ]h"]h$]h&]uh1jhjZlubeh}(h]h ]h"]h$]h&]uh1jhjulhKhjWlubah}(h]h ]h"]h$]h&]uh1jhj;lubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_sync_ref (C function)c.snd_power_sync_refhNtauh1hhjihhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhKubj)}(hsnd_power_sync_refh]j%)}(hsnd_power_sync_refh]hsnd_power_sync_ref}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjlsbc.snd_power_sync_refasbuh1hhjlubj)}(h h]h }(hj5mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjCmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(hcardh]hcard}(hjPmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubah}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhKubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhKhjlhhubjb)}(hhh]jg)}(h&wait until the card power_ref is freedh]h&wait until the card power_ref is freed}(hjzmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjwmhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhjihNhNubj)}(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)}(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:134: ./include/sound/core.hhKhjmubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjmh]hstruct snd_card *card}(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:134: ./include/sound/core.hhKhjmubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjmh]h Description}(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:134: ./include/sound/core.hhKhjmubjg)}(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.}(hj nhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_unref (C function)c.snd_card_unrefhNtauh1hhjihhhNhNubh)}(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}(hj;nhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7nhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2ubj)}(h h]h }(hjJnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7nhhhjInhM2ubj)}(hsnd_card_unrefh]j%)}(hsnd_card_unrefh]hsnd_card_unref}(hj\nhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj7nhhhjInhM2ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjxnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtnubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jj^nsbc.snd_card_unrefasbuh1hhjtnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtnubj%)}(hcardh]hcard}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpnubah}(h]h ]h"]h$]h&]j=j>uh1j?hj7nhhhjInhM2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3nhhhjInhM2ubah}(h]j.nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjInhM2hj0nhhubjb)}(hhh]jg)}(hUnreference the card objecth]hUnreference the card object}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2hjnhhubah}(h]h ]h"]h$]h&]uh1jahj0nhhhjInhM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhjihNhNubj)}(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)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM6hjoubj)}(hhh]j)}(h9``struct snd_card *card`` the card object to unreference h](j)}(h``struct snd_card *card``h]j)}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:oubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM3hj6oubj)}(hhh]jg)}(hthe card object to unreferenceh]hthe card object to unreference}(hjUohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQohM3hjRoubah}(h]h ]h"]h$]h&]uh1jhj6oubeh}(h]h ]h"]h$]h&]uh1jhjQohM3hj3oubah}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h**Description**h]j)}(hjwoh]h Description}(hjyohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuoubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5hjoubjg)}(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().}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5hjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG (C macro) c.snd_BUGhNtauh1hhjihhhNhNubh)}(hhh](h)}(hsnd_BUGh]h)}(hsnd_BUGh]j)}(hsnd_BUGh]j%)}(hjoh]hsnd_BUG}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM]ubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjohM]ubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohM]hjohhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjohhhjohM]ubeh}(h]h ](jmacroeh"]h$]h&]jjjjojjojjjuh1hhhhjihNhNubjg)}(h``snd_BUG ()``h]j)}(hjoh]h snd_BUG ()}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM_hjihhubj)}(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}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM]hj pubah}(h]h ]h"]h$]h&]uh1jhjphM]hjpubjg)}(h**Description**h]j)}(hj'ph]h Description}(hj)phhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%pubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM_hjpubjg)}(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.}(hj=phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM^hjpubeh}(h]h ]h"]h$]h&]uh1jhjphM]hjihhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG_ON (C macro) c.snd_BUG_ONhNtauh1hhjihhhNhNubh)}(hhh](h)}(h snd_BUG_ONh]h)}(h snd_BUG_ONh]j)}(h snd_BUG_ONh]j%)}(hjeph]h snd_BUG_ON}(hjophhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjgphhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMeubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjcphhhjphMeubah}(h]j^pah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphMehj`phhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj`phhhjphMeubeh}(h]h ](jmacroeh"]h$]h&]jjjjpjjpjjjuh1hhhhjihNhNubjg)}(h``snd_BUG_ON (cond)``h]j)}(hjph]hsnd_BUG_ON (cond)}(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.hhMghjihhubj)}(hdebugging check macro h]jg)}(hdebugging check macroh]hdebugging check macro}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMehjpubah}(h]h ]h"]h$]h&]uh1jhjphMehjihhubj)}(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)}(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.hhMihjpubj)}(hhh]j)}(h``cond`` condition to evaluate h](j)}(h``cond``h]j)}(hjph]hcond}(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.hhMfhjpubj)}(hhh]jg)}(hcondition to evaluateh]hcondition to evaluate}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj qhMfhj qubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhj qhMfhjpubah}(h]h ]h"]h$]h&]uh1jhjpubjg)}(h**Description**h]j)}(hj0qh]h Description}(hj2qhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.qubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMhhjpubjg)}(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.}(hjFqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMhhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*register_sound_special_device (C function)c.register_sound_special_devicehNtauh1hhjihhhNhNubh)}(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}(hjuqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqqhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqqhhhjqhMOubj)}(hregister_sound_special_deviceh]j%)}(hregister_sound_special_deviceh]hregister_sound_special_device}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqqhhhjqhMOubj@)}(hB(const struct file_operations *fops, int unit, struct device *dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubjL)}(hjOh]hstruct}(hjqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjqsbc.register_sound_special_deviceasbuh1hhjqubj)}(h h]h }(hj rhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj%)}(hfopsh]hfops}(hj&rhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hint unith](h)}(hinth]hint}(hj?rhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;rubj)}(h h]h }(hjMrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;rubj%)}(hunith]hunit}(hj[rhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;rubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjtrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjprubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjprubh)}(hhh]j%)}(hdeviceh]hdevice}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jrc.register_sound_special_deviceasbuh1hhjprubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjprubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjprubj%)}(hdevh]hdev}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjprubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjqqhhhjqhMOubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmqhhhjqhMOubah}(h]jhqah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjqhMOhjjqhhubjb)}(hhh]jg)}(hregister a special sound nodeh]hregister a special sound node}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOhjrhhubah}(h]h ]h"]h$]h&]uh1jahjjqhhhjqhMOubeh}(h]h ](jfunctioneh"]h$]h&]jjjj sjj sjjjuh1hhhhjihNhNubj)}(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)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMShjsubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj6sh]h"const struct file_operations *fops}(hj8shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4subah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMPhj0subj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hjOshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKshMPhjLsubah}(h]h ]h"]h$]h&]uh1jhj0subeh}(h]h ]h"]h$]h&]uh1jhjKshMPhj-subj)}(h%``int unit`` Unit number to allocate h](j)}(h ``int unit``h]j)}(hjosh]hint unit}(hjqshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmsubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMQhjisubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMQhjsubah}(h]h ]h"]h$]h&]uh1jhjisubeh}(h]h ]h"]h$]h&]uh1jhjshMQhj-subj)}(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)}(hjsh]hstruct device *dev}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMUhjsubj)}(hhh](jg)}(hdevice pointerh]hdevice pointer}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMRhjsubjg)}(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.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMThjsubeh}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMUhj-subeh}(h]h ]h"]h$]h&]uh1jhjsubjg)}(h **Return**h]j)}(hjsh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMWhjsubj)}(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,}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMWhj tubj)}(hhh]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hj"thhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMXhjtubah}(h]h ]h"]h$]h&]uh1jhj tubeh}(h]h ]h"]h$]h&]uh1jhjthMWhj tubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!register_sound_mixer (C function)c.register_sound_mixerhNtauh1hhjihhhNhNubh)}(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}(hjcthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_thhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjrthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_thhhjqthMubj)}(hregister_sound_mixerh]j%)}(hregister_sound_mixerh]hregister_sound_mixer}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_thhhjqthMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubjL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjtsbc.register_sound_mixerasbuh1hhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hfopsh]hfops}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hint devh](h)}(hinth]hint}(hj-uhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)uubj)}(h h]h }(hj;uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)uubj%)}(hdevh]hdev}(hjIuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj_thhhjqthMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[thhhjqthMubah}(h]jVtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjqthMhjXthhubjb)}(hhh]jg)}(hregister a mixer deviceh]hregister a mixer device}(hjsuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjpuhhubah}(h]h ]h"]h$]h&]uh1jahjXthhhjqthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjihNhNubj)}(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)}(hjuh]h Parameters}(hjuhhhNhNubah}(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.chMhjuubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hjuh]h"const struct file_operations *fops}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjuubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjuubj)}(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)}(hjuh]hint dev}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjuubj)}(hhh](jg)}(hUnit number to allocateh]hUnit number to allocate}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjvubjg)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjvubeh}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjuubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h **Return**h]j)}(hj8vh]hReturn}(hj:vhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6vubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjuubj)}(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,}(hjUvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjQvubj)}(hhh]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hjgvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjdvubah}(h]h ]h"]h$]h&]uh1jhjQvubeh}(h]h ]h"]h$]h&]uh1jhjcvhMhjNvubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hregister_sound_dsp (C function)c.register_sound_dsphNtauh1hhjihhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvhhhjvhMubj)}(hregister_sound_dsph]j%)}(hregister_sound_dsph]hregister_sound_dsp}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvhhhjvhMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubjL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hj whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj wmodnameN classnameNjj)}j]j)}jjvsbc.register_sound_dspasbuh1hhjvubj)}(h h]h }(hj>whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjLwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hfopsh]hfops}(hjYwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(hint devh](h)}(hinth]hint}(hjrwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnwubj%)}(hdevh]hdev}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjvhhhjvhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjvhMubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMhjvhhubjb)}(hhh]jg)}(hregister a DSP deviceh]hregister a DSP device}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjwhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjvhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjihNhNubj)}(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)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjwubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hjwh]h"const struct file_operations *fops}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjwubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjxhMhjwubj)}(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)}(hj2xh]hint dev}(hj4xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0xubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj,xubj)}(hhh](jg)}(hUnit number to allocateh]hUnit number to allocate}(hjKxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjHxubjg)}(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.}(hjZxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjHxubjg)}(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}(hjixhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjHxubeh}(h]h ]h"]h$]h&]uh1jhj,xubeh}(h]h ]h"]h$]h&]uh1jhjGxhMhjwubeh}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h **Return**h]j)}(hjxh]hReturn}(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.chMhjwubj)}(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,}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjxubj)}(hhh]jg)}(h"a negative error code is returned.h]h"a negative error code is returned.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%unregister_sound_special (C function)c.unregister_sound_specialhNtauh1hhjihhhNhNubh)}(hhh](h)}(h(void unregister_sound_special (int unit)h]h)}(h'void unregister_sound_special(int unit)h](h)}(hvoidh]hvoid}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhj yhMubj)}(hunregister_sound_specialh]j%)}(hunregister_sound_specialh]hunregister_sound_special}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhj yhMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hj9yhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5yubj)}(h h]h }(hjGyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5yubj%)}(hunith]hunit}(hjUyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5yubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1yubah}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhj yhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxhhhj yhMubah}(h]jxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj yhMhjxhhubjb)}(hhh]jg)}(h!unregister a special sound deviceh]h!unregister a special sound device}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj|yhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhj yhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhjihNhNubj)}(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)}(hjyh]h Parameters}(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.chMhjyubj)}(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)}(hjyh]hint unit}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjyubj)}(hhh](jg)}(hunit number to allocateh]hunit number to allocate}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjyubjg)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjyubeh}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#unregister_sound_mixer (C function)c.unregister_sound_mixerhNtauh1hhjihhhNhNubh)}(hhh](h)}(h&void unregister_sound_mixer (int unit)h]h)}(h%void unregister_sound_mixer(int unit)h](h)}(hvoidh]hvoid}(hj)zhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj%zhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj8zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%zhhhj7zhMubj)}(hunregister_sound_mixerh]j%)}(hunregister_sound_mixerh]hunregister_sound_mixer}(hjJzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%zhhhj7zhMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjfzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbzubj)}(h h]h }(hjtzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbzubj%)}(hunith]hunit}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^zubah}(h]h ]h"]h$]h&]j=j>uh1j?hj%zhhhj7zhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!zhhhj7zhMubah}(h]jzah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7zhMhjzhhubjb)}(hhh]jg)}(hunregister a mixerh]hunregister a mixer}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjzhhubah}(h]h ]h"]h$]h&]uh1jahjzhhhj7zhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjihNhNubj)}(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)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjzubj)}(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)}(hjzh]hint unit}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjzubj)}(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.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubeh}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjzubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!unregister_sound_dsp (C function)c.unregister_sound_dsphNtauh1hhjihhhNhNubh)}(hhh](h)}(h$void unregister_sound_dsp (int unit)h]h)}(h#void unregister_sound_dsp(int unit)h](h)}(hvoidh]hvoid}(hjU{hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQ{hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjd{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ{hhhjc{hMubj)}(hunregister_sound_dsph]j%)}(hunregister_sound_dsph]hunregister_sound_dsp}(hjv{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQ{hhhjc{hMubj@)}(h (int unit)h]jF)}(hint unith](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%)}(hunith]hunit}(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?hjQ{hhhjc{hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjM{hhhjc{hMubah}(h]jH{ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjc{hMhjJ{hhubjb)}(hhh]jg)}(hunregister a DSP deviceh]hunregister 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&]uh1jahjJ{hhhjc{hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjihNhNubj)}(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)}(hj|h]hint unit}(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}(hj2|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_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.}(hjA|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)}(h@Both of the allocated units are released together automatically.h]h@Both of the allocated units are released together automatically.}(hjP|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|ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubeh}(h]other-helper-macrosah ]h"]other helper macrosah$]h&]uh1hhj6hhhhhKubeh}(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_handlerj|error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j|j|j\j\j&j&j0j0jO:jL:j\j\jEjBj9j 9jOjOjmejjej=j:jjjjj*j'jjj.j+jjj&j#j2j2j2j2jhjhjhjhj6j6jjj|/jy/j6j6j|j|j :j:j`j`jijij}|jz|u nametypes}(j|j\j&j0jO:j\jEj9jOjmej=jjj*jj.jj&j2j2jhjhj6jj|/j6j|j :j`jij}|uh}(j|hj\hj&hhhjijnjjjv j{ jjj4j9jjjjj?jDjjjjj:j?jjjjj,!j1!jf#jk#j%j"%j0j&j&j&jq*jv*j,j,j.j.jL:j0j0j0j2j$2jB4jG4j8j8j\jR:jo:jt:j@=jE=j$@j)@jBjBjEjEjIjIjLjLjZNj_NjQjQjTjTjUjUj XjXjJZjOZjBj\j 9j]j-]j2]j^j^j2aj7ajejejijijkjkjnjnj(rj-rjtjtjwjwjI{jN{j~j~jjj߆jjLjQjˍjЍjjjjjTjYj}jjjj1j6jjjjjFjKjjjjj.j3j9j>j9j>jjj7j<jjjjjjjjjj!jjjj#jjj j%j+j0jjjj"jFjKjjjjjbjgjjj9j>jjjjj\jajjjjj]jbjjjjjjj jjj$j4j9j6j;jjj^jcjjjjjhjmjjjjjL jQ j j j j jDjIj}jj4j9jjjjjYj^jjjjjSjXjjj- j2 ji"jn"jm$jr$j'j'j*j*j -j-j/j/jj1jo1j2j2j4j4j6j6j18j68jOj9j.9j39j:j:j;j;j9=j>=j>j>j?j?jDAjIAjBjBjDjDj9Fj>FjHjHjfJjkJjKjKj^MjcMjjejOjOjOj%Qj*QjRjRj@VjEVjYjYj]j]jajajcjcj:jpejejejhjhjkjkjmjmjojojRqjWqjsjsjujujZwj_wjyjyj|j|jp~ju~jFjKjjHjjYjvj{j*j/jhjmjjjjjj!j|jjJjOjjj jj^jcjj"j5j:jj jjjZj_jڭj߭j3j8jjjjjQjVjҴj״jSjXjjjjj'jjɾjξj^jcjjjAjFjjjCjHjjj6j;j\jajjjajfjjjjjjjjjjjjjj-jJjOj2j7jjjjjjj+j0jjjFjKj+jjjjjjjj!j&jjj j j j j!j&jDjIj#jjjj+j0jFjKj2j1j2jBj_jdj j j#j#j&j&j)j*j}+j+j%-j*-jhj2jhj2j3j3j85j=5jb7jg7j:j;j@<jE<j=j=j?j?j@j@jCjCjDjEjFjFjWGj\GjIjIjKj Kj+Mj1MjPOjUOjPjPjRjRjkUjpUj?ZjDZj]j]jYbj^bj*ej/ejfjfj6jhjjhjijijjjjjljljnjojNq&jSqjsjsjLujQujxjxj{j{j[~j`~jjjijnjăjɃjjjjjjjjjjj@jEjjjdjij jj{jjjj5j:j\jajjjjjVj[jj j&j+jjjjjYj^jٹj޹jqjvjjjjjj!jUjZjjjjjjj9j>jrjwjjj0j5jijnjjjjjjjy/jjjjDjIjjj,j1jXj]jjjojjjjjjjjjjjPjUjjjjjRjWjjjjjjjjjB jG jl jq j j j%j*jjj-j2jjjjj$j)jqjvj j j"j#j:%j?%j'j'j)j)j+j+j.j.j6j/j/j/jo2jt2j5j5j|j6j:j6j6j6j`j:j+:j1:j]>jb>j AjAjYEj^Ej8Hj=Hj'Jj,JjLjLjCOjHOj2Qj7QjSjSjUjUjXj#XjZjZj]j]jij`j`j`jcjcjej ej gjgjz|jijijijRkjWkjljlj.nj3njojoj^pjcpjhqjmqjVtj[tjvjvjxjxjzj!zjH{jM{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.