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 **Description** 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)}(hN``struct snd_card **card_ret`` the pointer to store the created card instance 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&]uh1jfhj^hKhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKhj#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&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubh block_quote)}(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]jg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjubjg)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hKubj)}(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>uh1jhjhhhj hKubj@)}(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}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jjsbc.snd_devm_card_newasbuh1hhj5ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hparenth]hparent}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubjF)}(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>uh1jEhj1ubjF)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hxidh]hxid}(hj$ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubjF)}(hstruct module *moduleh](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%)}(hmoduleh]hmodule}(hj[ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjX ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj] modnameN classnameNjj)}j]jsc.snd_devm_card_newasbuh1hhj9 ubj)}(h h]h }(hjy hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9 ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubj%)}(hmoduleh]hmodule}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9 ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubjF)}(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]jsc.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>uh1jEhj1ubjF)}(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]jsc.snd_devm_card_newasbuh1hhj ubj)}(h h]h }(hj1 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj? hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hjL hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hcard_reth]hcard_ret}(hjY hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubeh}(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 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&]uh1jahjhhhj hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj 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)}(hj6 h]hconst char *xid}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj0 ubj)}(hhh]jg)}(h"card identification (ASCII string)h]h"card identification (ASCII string)}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjK hKhjL ubah}(h]h ]h"]h$]h&]uh1jhj0 ubeh}(h]h ]h"]h$]h&]uh1jhjK hKhj ubj)}(h7``struct module *module`` top level module for locking h](j)}(h``struct module *module``h]j)}(hjo h]hstruct module *module}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhji ubj)}(hhh]jg)}(htop level module for lockingh]htop level module for locking}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhji ubeh}(h]h ]h"]h$]h&]uh1jhj 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.}(hj2 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.}(hjA 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.}(hjP 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)}(hja h]hReturn}(hjc 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}(hjw 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}(hjU hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQ ubj)}(h h]h }(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ ubj%)}(hreth]hret}(hjq hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hKubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hKhj hhubjb)}(hhh]jg)}(h-a small helper for handling devm probe errorsh]h-a small helper for handling devm probe errors}(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&]uh1jahj 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)}(hjh]hint ret}(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'the return code from the probe callbackh]h'the return code from the probe callback}(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)}(hjPh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(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.}(hjfhhhNhNubah}(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)}(hjwh]hReturn}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(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}(hjhhhNhNubah}(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*}(hj hhhNhNubah}(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}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj%)}(hidxh]hidx}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(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}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMxhjyhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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)}(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``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&]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)}(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.chMzhjubjg)}(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.chM}hjubjg)}(ha card object or NULLh]ha card object or NULL}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM~hjubeh}(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}(hjdhhhNhNubah}(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 }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhjrhMubj)}(hsnd_card_disconnecth]j%)}(hsnd_card_disconnecth]hsnd_card_disconnect}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhjrhMubj@)}(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_disconnectasbuh1hhjubj)}(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?hj`hhhjrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj\hhhjrhMubah}(h]jWah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhMhjYhhubjb)}(hhh]jg)}(h9disconnect all APIs from the file-operations (user space)h]h9disconnect all APIs from the file-operations (user space)}(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&]uh1jahjYhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhhhNhNubj)}(hXS**Parameters** ``struct snd_card *card`` soundcard structure **Description** 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)}(hjFh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(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)}(hjeh]hstruct snd_card *card}(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.chMhj_ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhMhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj@ubj)}(hf_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).}(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$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(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}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM1ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdhhhjvhM1ubj)}(hsnd_card_disconnect_synch]j%)}(hsnd_card_disconnect_synch]hsnd_card_disconnect_sync}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjdhhhjvhM1ubj@)}(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_disconnect_syncasbuh1hhjubj)}(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?hjdhhhjvhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`hhhjvhM1ubah}(h]j[ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhM1hj]hhubjb)}(hhh]jg)}(h/disconnect card and wait until files get closedh]h/disconnect card and wait until files get closed}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM1hj%hhubah}(h]h ]h"]h$]h&]uh1jahj]hhhjvhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1hhhhhhNhNubj)}(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)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM5hjDubj)}(hhh]j)}(h4``struct snd_card *card`` card object to disconnect h](j)}(h``struct snd_card *card``h]j)}(hjih]hstruct snd_card *card}(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.chM2hjcubj)}(hhh]jg)}(hcard object to disconnecth]hcard object to disconnect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM2hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM2hj`ubah}(h]h ]h"]h$]h&]uh1jhjDubjg)}(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.chM4hjDubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM3hjDubeh}(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}(hj hhhNhNubah}(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}(hj&hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jj sbc.snd_card_free_when_closedasbuh1hhj"ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hjrhhhNhNubah}(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>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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMZhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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)}(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.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.}(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\hjubjg)}(h **Return**h]j)}(hjLh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMahjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMbhjubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMpubj)}(h snd_card_freeh]j%)}(h snd_card_freeh]h snd_card_free}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMpubj@)}(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_freeasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(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?hjhhhjhMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMpubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMphjhhubjb)}(hhh]jg)}(hfrees given soundcard structureh]hfrees given soundcard structure}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMphjNhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhhhNhNubj)}(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)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMthjmubj)}(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.chMqhjubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMshjmubjg)}(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.chMrhjmubjg)}(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.chMvhjmubjg)}(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.chMxhjmubjg)}(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.chMyhjmubeh}(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)}(huh1jhjDhhhjVhMubj@)}(h((struct snd_card *card, const char *nid)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)}jjksbc.snd_card_set_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>uh1jEhj}ubjF)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnidh]hnid}(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?hjDhhhjVhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@hhhjVhMubah}(h]j;ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjVhMhj=hhubjb)}(hhh]jg)}(hset card identification nameh]hset card identification name}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjbhhubah}(h]h ]h"]h$]h&]uh1jahj=hhhjVhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhhhNhNubj)}(h**Parameters** ``struct snd_card *card`` soundcard structure ``const char *nid`` new identification string **Description** This function sets the card identification and checks for name collisions.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)}(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.chMhjubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h.``const char *nid`` new identification string 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&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hJThis function sets the card identification and checks for name collisions.h]jg)}(hJThis function sets the card identification and checks for name collisions.h]hJThis function sets the card identification and checks for name collisions.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj0ubah}(h]h ]h"]h$]h&]uh1jhjBhMhjubeh}(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}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjehhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM>ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjehhhjwhM>ubj)}(hsnd_card_add_dev_attrh]j%)}(hsnd_card_add_dev_attrh]hsnd_card_add_dev_attr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjehhhjwhM>ubj@)}(h<(struct snd_card *card, const struct attribute_group *group)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_add_dev_attrasbuh1hhjubj)}(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#const struct attribute_group *grouph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hattribute_grouph]hattribute_group}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jc.snd_card_add_dev_attrasbuh1hhjubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hgrouph]hgroup}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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)}(h*Append a new sysfs attribute group to cardh]h*Append a new sysfs attribute group to card}(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^hhhjwhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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)}(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.chMBhjubj)}(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.chM?hjubj)}(hhh]jg)}(h card instanceh]h card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM?hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM?hjubj)}(hB``const struct attribute_group *group`` attribute group to append h](j)}(h'``const struct attribute_group *group``h]j)}(hj.h]h#const struct attribute_group *group}(hj0hhhNhNubah}(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)}(hattribute group to appendh]hattribute group to append}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChM@hjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChM@hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjih]hReturn}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(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.chMBhjubeh}(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}(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_registerh]j%)}(hsnd_card_registerh]hsnd_card_register}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM\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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_card_registerasbuh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjDhhhNhNubah}(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)}(hregister the soundcardh]hregister the soundcard}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM\hjkhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure **Description** 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)}(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_hjubj)}(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]jg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM^hjubah}(h]h ]h"]h$]h&]uh1jhjhM^hjubjg)}(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.chMchjubjg)}(h@Zero otherwise a negative error code if the registration failed.h]h@Zero otherwise a negative error code if the registration failed.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdhjubeh}(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}(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 }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhjnhMubj)}(hsnd_component_addh]j%)}(hsnd_component_addh]hsnd_component_add}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhjnhMubj@)}(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 }(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_component_addasbuh1hhjubj)}(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 *componenth](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hcharh]hchar}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h componenth]h component}(hjShhhNhNubah}(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\hhhjnhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhjnhMubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhMhjUhhubjb)}(hhh]jg)}(hadd a component stringh]hadd a component string}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjzhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhjnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(hX.**Parameters** ``struct snd_card *card`` soundcard structure ``const char *component`` the component id string **Description** 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)}(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.chMhjubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h2``const char *component`` the component id string h](j)}(h``const char *component``h]j)}(hjh]hconst char *component}(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)}(hthe component id stringh]hthe component id string}(hjhhhNhNubah}(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)}(hj2h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(hsThis function adds the component id string to the supported list. The component can be referred from the alsa-lib. h]jg)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjHubah}(h]h ]h"]h$]h&]uh1jhjZhMhjubjg)}(h **Return**h]j)}(hjch]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(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.}(hjyhhhNhNubah}(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 hjhhhjhMubj)}(hsnd_card_file_addh]j%)}(hsnd_card_file_addh]hsnd_card_file_add}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h*(struct snd_card *card, struct file *file)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_card_file_addasbuh1hhjubj)}(h h]h }(hj# hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj1 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>uh1jEhjubjF)}(hstruct file *fileh](jL)}(hjOh]hstruct}(hjW hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjS ubj)}(h h]h }(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjS ubh)}(hhh]j%)}(hfileh]hfile}(hju hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjr ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjw modnameN classnameNjj)}j]j c.snd_card_file_addasbuh1hhjS 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%)}(hfileh]hfile}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjS ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h)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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubj)}(hX^**Parameters** ``struct snd_card *card`` soundcard structure ``struct file *file`` file pointer **Description** 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)}(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}(hj2!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 file *file`` file pointer h](j)}(h``struct file *file``h]j)}(hjR!h]hstruct file *file}(hjT!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP!ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjL!ubj)}(hhh]jg)}(h file pointerh]h file pointer}(hjk!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjg!hMhjh!ubah}(h]h ]h"]h$]h&]uh1jhjL!ubeh}(h]h ]h"]h$]h&]uh1jhjg!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:10: ./sound/core/init.chMhj ubj)}(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]jg)}(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!ubah}(h]h ]h"]h$]h&]uh1jhj!hMhj 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 hj 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!hj 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}(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.chM9ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!hhhj"hM9ubj)}(hsnd_card_file_removeh]j%)}(hsnd_card_file_removeh]hsnd_card_file_remove}(hj$"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj "ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!hhhj"hM9ubj@)}(h*(struct snd_card *card, struct file *file)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj@"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<"ubj)}(h h]h }(hjM"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_card_file_removeasbuh1hhj<"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>uh1jEhj8"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]jz"c.snd_card_file_removeasbuh1hhj"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%)}(hfileh]hfile}(hj #hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8"ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj!hhhj"hM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj"hM9ubah}(h]j!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hM9hj!hhubjb)}(hhh]jg)}(h"remove the file from the file listh]h"remove the file from the file list}(hj3#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM9hj0#hhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj"hM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjK#jjK#jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure ``struct file *file`` file pointer **Description** 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)}(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.chM=hjO#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.chM:hjn#ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hM:hj#ubah}(h]h ]h"]h$]h&]uh1jhjn#ubeh}(h]h ]h"]h$]h&]uh1jhj#hM:hjk#ubj)}(h#``struct file *file`` file pointer 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&]uh1jfhj#hM;hj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hM;hjk#ubeh}(h]h ]h"]h$]h&]uh1jhjO#ubjg)}(h**Description**h]j)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM=hjO#ubj)}(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]jg)}(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#ubah}(h]h ]h"]h$]h&]uh1jhj$hM<hjO#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.chMBhjO#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.chMChjO#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}(hj^$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZ$hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdubj)}(h h]h }(hjm$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZ$hhhjl$hMdubj)}(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>uh1jhjZ$hhhjl$hMdubj@)}(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?hjZ$hhhjl$hMdubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjV$hhhjl$hMdubah}(h]jQ$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjl$hMdhjS$hhubjb)}(hhh]jg)}(h#wait until the card gets powered uph]h#wait until the card gets powered up}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdhj%hhubah}(h]h ]h"]h$]h&]uh1jahjS$hhhjl$hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6%jj6%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)}(hj@%h]h Parameters}(hjB%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.chMhhj:%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}(hja%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.chMehjY%ubj)}(hhh]jg)}(hsoundcard structureh]hsoundcard structure}(hjx%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjt%hMehju%ubah}(h]h ]h"]h$]h&]uh1jhjY%ubeh}(h]h ]h"]h$]h&]uh1jhjt%hMehjV%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&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMghj:%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.chMfhj:%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.chMlhj:%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.chMohj:%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.chMphj:%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 }(hj$&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj#&hMubj)}(hsnd_power_waith]j%)}(hsnd_power_waith]hsnd_power_wait}(hj6&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2&ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj#&hMubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](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%)}(hsnd_cardh]hsnd_card}(hjp&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjr&modnameN classnameNjj)}j]j)}jj8&sbc.snd_power_waitasbuh1hhjN&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%)}(hcardh]hcard}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjN&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJ&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.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 &hhhj#&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}(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)}(hjQ'h]h Description}(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.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.}(hjg'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)}(hjx'h]hReturn}(hjz'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv'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 }(hj (hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj1(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3(modnameN classnameNjj)}j]j)}jj'sbc.snd_device_newasbuh1hhj(ubj)}(h h]h }(hjQ(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hj_(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hcardh]hcard}(hjl(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]jM(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 }(hj8)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj')ubjL)}(hjOh]hstruct}(hjF)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj')ubj)}(h h]h }(hjS)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj')ubh)}(hhh]j%)}(hsnd_device_opsh]hsnd_device_ops}(hjd)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf)modnameN classnameNjj)}j]jM(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}(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=``enum snd_device_type type`` the device type, SNDRV_DEV_XXX h](j)}(h``enum snd_device_type type``h]j)}(hjA*h]henum snd_device_type type}(hjC*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 device type, SNDRV_DEV_XXXh]hthe device type, SNDRV_DEV_XXX}(hjZ*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjV*hKhjW*ubah}(h]h ]h"]h$]h&]uh1jhj;*ubeh}(h]h ]h"]h$]h&]uh1jhjV*hKhj)ubj)}(h6``void *device_data`` the data pointer of this device h](j)}(h``void *device_data``h]j)}(hjz*h]hvoid *device_data}(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:14: ./sound/core/device.chKhjt*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&]uh1jhjt*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)}(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: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.}(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)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}(hji+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhje+hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK^ubj)}(h h]h }(hjx+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje+hhhjw+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>uh1jhje+hhhjw+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*}(hj4,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(h device_datah]h device_data}(hjA,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?hje+hhhjw+hK^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhja+hhhjw+hK^ubah}(h]j\+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjw+hK^hj^+hhubjb)}(hhh]jg)}(hdisconnect the deviceh]hdisconnect the device}(hjk,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK^hjh,hhubah}(h]h ]h"]h$]h&]uh1jahj^+hhhjw+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)}(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.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.}(hj6-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKahj,ubjg)}(h*Usually called from snd_card_disconnect().h]h*Usually called from snd_card_disconnect().}(hjE-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKdhj,ubjg)}(h **Return**h]j)}(hjV-h]hReturn}(hjX-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT-ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKfhj,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.}(hjl-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*}(hj$.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hcardh]hcard}(hj1.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hjJ.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjF.ubj)}(h h]h }(hjX.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjF.ubj)}(hjh]h*}(hjf.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjF.ubj%)}(h device_datah]h device_data}(hjs.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF.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}(hj0/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)}(hjR/h]h Description}(hjT/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP/ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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.}(hjh/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 }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hcardh]hcard}(hj-0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hvoid *device_datah](h)}(hvoidh]hvoid}(hjF0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjB0ubj)}(h h]h }(hjT0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB0ubj)}(hjh]h*}(hjb0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB0ubj%)}(h device_datah]h device_data}(hjo0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB0ubeh}(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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj/hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhj'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)}(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:14: ./sound/core/device.chKhj0ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj0h]hstruct snd_card *card}(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:14: ./sound/core/device.chKhj0ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hKhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hKhj0ubj)}(h3``void *device_data`` the data pointer to register h](j)}(h``void *device_data``h]j)}(hj1h]hvoid *device_data}(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:14: ./sound/core/device.chKhj 1ubj)}(hhh]jg)}(hthe data pointer to registerh]hthe data pointer to register}(hj,1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(1hKhj)1ubah}(h]h ]h"]h$]h&]uh1jhj 1ubeh}(h]h ]h"]h$]h&]uh1jhj(1hKhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0ubjg)}(h**Description**h]j)}(hjN1h]h Description}(hjP1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubjg)}(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().}(hjd1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubjg)}(h **Return**h]j)}(hju1h]hReturn}(hjw1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubjg)}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubeh}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_request_card (C function)c.snd_request_cardhNtauh1hhj1hhhNhNubh)}(hhh](h)}(h void snd_request_card (int card)h]h)}(hvoid snd_request_card(int card)h](h)}(hvoidh]hvoid}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1hhhj1hK6ubj)}(hsnd_request_cardh]j%)}(hsnd_request_cardh]hsnd_request_card}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj1hhhj1hK6ubj@)}(h (int card)h]jF)}(hint cardh](h)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj 2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 2ubj%)}(hcardh]hcard}(hj,2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj1hhhj1hK6ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhj1hK6ubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hK6hj1hhubjb)}(hhh]jg)}(htry to load the card moduleh]htry to load the card module}(hjV2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6hjS2hhubah}(h]h ]h"]h$]h&]uh1jahj1hhhj1hK6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjn2jjn2jjjuh1hhhhj1hNhNubj)}(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)}(hjx2h]h Parameters}(hjz2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv2ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK:hjr2ubj)}(hhh]j)}(h``int card`` the card number h](j)}(h ``int card``h]j)}(hj2h]hint card}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK7hj2ubj)}(hhh]jg)}(hthe card numberh]hthe card number}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hK7hj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hK7hj2ubah}(h]h ]h"]h$]h&]uh1jhjr2ubjg)}(h**Description**h]j)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hjr2ubjg)}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK8hjr2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj1hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_lookup_minor_data (C function)c.snd_lookup_minor_datahNtauh1hhj1hhhNhNubh)}(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}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUubj)}(h h]h }(hj&3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj%3hKUubj)}(hjh]h*}(hj43hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj%3hKUubj)}(hsnd_lookup_minor_datah]j%)}(hsnd_lookup_minor_datah]hsnd_lookup_minor_data}(hjE3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj%3hKUubj@)}(h(unsigned int minor, int type)h](jF)}(hunsigned int minorh](h)}(hunsignedh]hunsigned}(hja3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]3ubj)}(h h]h }(hjo3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]3ubh)}(hinth]hint}(hj}3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]3ubj%)}(hminorh]hminor}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjY3ubjF)}(hint typeh](h)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj%)}(htypeh]htype}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjY3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhj%3hKUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj%3hKUubah}(h]j 3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%3hKUhj 3hhubjb)}(hhh]jg)}(h$get user data of a registered deviceh]h$get user data of a registered device}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUhj3hhubah}(h]h ]h"]h$]h&]uh1jahj 3hhhj%3hKUubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhj1hNhNubj)}(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)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj4ubj)}(hhh](j)}(h(``unsigned int minor`` the minor number h](j)}(h``unsigned int minor``h]j)}(hj94h]hunsigned int minor}(hj;4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj74ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKVhj34ubj)}(hhh]jg)}(hthe minor numberh]hthe minor number}(hjR4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjN4hKVhjO4ubah}(h]h ]h"]h$]h&]uh1jhj34ubeh}(h]h ]h"]h$]h&]uh1jhjN4hKVhj04ubj)}(h1``int type`` device type (SNDRV_DEVICE_TYPE_XXX) h](j)}(h ``int type``h]j)}(hjr4h]hint type}(hjt4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp4ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKWhjl4ubj)}(hhh]jg)}(h#device type (SNDRV_DEVICE_TYPE_XXX)h]h#device type (SNDRV_DEVICE_TYPE_XXX)}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hKWhj4ubah}(h]h ]h"]h$]h&]uh1jhjl4ubeh}(h]h ]h"]h$]h&]uh1jhj4hKWhj04ubeh}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h**Description**h]j)}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj4ubjg)}(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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKXhj4ubjg)}(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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK[hj4ubjg)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK_hj4ubjg)}(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}(hj5hhhNhNubah}(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`hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj1hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_register_device (C function)c.snd_register_devicehNtauh1hhj1hhhNhNubh)}(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}(hj:5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj65hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKubj)}(h h]h }(hjI5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj65hhhjH5hKubj)}(hsnd_register_deviceh]j%)}(hsnd_register_deviceh]hsnd_register_device}(hj[5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjW5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj65hhhjH5hKubj@)}(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}(hjw5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjs5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjs5ubj%)}(htypeh]htype}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubjF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj]5sbc.snd_register_deviceasbuh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hcardh]hcard}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubjF)}(hint devh](h)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hj,6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj%)}(hdevh]hdev}(hj:6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubjF)}(h#const struct file_operations *f_opsh](jL)}(hj\h]hconst}(hjS6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjO6ubj)}(h h]h }(hj`6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO6ubjL)}(hjOh]hstruct}(hjn6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjO6ubj)}(h h]h }(hj{6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO6ubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j5c.snd_register_deviceasbuh1hhjO6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO6ubj%)}(hf_opsh]hf_ops}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(h private_datah]h private_data}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hj 7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj-7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj>7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@7modnameN classnameNjj)}j]j5c.snd_register_deviceasbuh1hhj7ubj)}(h h]h }(hj\7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hdeviceh]hdevice}(hjw7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjo5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj65hhhjH5hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj25hhhjH5hKubah}(h]j-5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjH5hKhj/5hhubjb)}(hhh]jg)}(h*Register the ALSA device file for the cardh]h*Register the ALSA device file for the card}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7hhubah}(h]h ]h"]h$]h&]uh1jahj/5hhhjH5hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhj1hNhNubj)}(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)}(hj7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj)}(hhh](j)}(h4``int type`` the device type, SNDRV_DEVICE_TYPE_XXX h](j)}(h ``int type``h]j)}(hj7h]hint type}(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)}(h&the device type, SNDRV_DEVICE_TYPE_XXXh]h&the device type, SNDRV_DEVICE_TYPE_XXX}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hKhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hKhj7ubj)}(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&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj8ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj48hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj08hKhj18ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj08hKhj7ubj)}(h``int dev`` the device index h](j)}(h ``int dev``h]j)}(hjT8h]hint dev}(hjV8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR8ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhjN8ubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hjm8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhji8hKhjj8ubah}(h]h ]h"]h$]h&]uh1jhjN8ubeh}(h]h ]h"]h$]h&]uh1jhji8hKhj7ubj)}(h<``const struct file_operations *f_ops`` the file operations h](j)}(h'``const struct file_operations *f_ops``h]j)}(hj8h]h#const struct file_operations *f_ops}(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 file operationsh]hthe file operations}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hKhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKhj7ubj)}(h6``void *private_data`` user pointer for f_ops->open() h](j)}(h``void *private_data``h]j)}(hj8h]hvoid *private_data}(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)}(huser pointer for f_ops->open()h]huser pointer for f_ops->open()}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hKhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKhj7ubj)}(h1``struct device *device`` the device to register h](j)}(h``struct device *device``h]j)}(hj8h]hstruct device *device}(hj9hhhNhNubah}(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}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hKhj9ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj9hKhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(h**Description**h]j)}(hj:9h]h Description}(hj<9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj89ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubjg)}(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.}(hjP9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubjg)}(h **Return**h]j)}(hja9h]hReturn}(hjc9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_9ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjw9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj1hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_unregister_device (C function)c.snd_unregister_devicehNtauh1hhj1hhhNhNubh)}(hhh](h)}(h.int snd_unregister_device (struct device *dev)h]h)}(h-int snd_unregister_device(struct device *dev)h](h)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM#ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9hhhj9hM#ubj)}(hsnd_unregister_deviceh]j%)}(hsnd_unregister_deviceh]hsnd_unregister_device}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9hhhj9hM#ubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jj9sbc.snd_unregister_deviceasbuh1hhj9ubj)}(h h]h }(hj!:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj)}(hjh]h*}(hj/:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj%)}(hdevh]hdev}(hj<:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj9hhhj9hM#ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhj9hM#ubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hM#hj9hhubjb)}(hhh]jg)}(h'unregister the device on the given cardh]h'unregister the device on the given card}(hjf:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM#hjc:hhubah}(h]h ]h"]h$]h&]uh1jahj9hhhj9hM#ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~:jj~:jjjuh1hhhhj1hNhNubj)}(h**Parameters** ``struct device *dev`` the device instance **Description** Unregisters the device file already registered via snd_register_device(). **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM'hj:ubj)}(hhh]j)}(h+``struct device *dev`` the device instance h](j)}(h``struct device *dev``h]j)}(hj:h]hstruct device *dev}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM$hj:ubj)}(hhh]jg)}(hthe device instanceh]hthe device instance}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hM$hj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hM$hj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubjg)}(h**Description**h]j)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM&hj:ubjg)}(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%hj: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:18: ./sound/core/sound.chM(hj:ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM)hj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj1hhhNhNubeh}(h]'module-requests-and-device-file-entriesah ]h"]'module requests and device file entriesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hMemory Management Helpersh]hMemory Management Helpers}(hj@;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=;hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_user_fromio (C function)c.copy_to_user_fromiohNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hZint copy_to_user_fromio (void __user *dst, const volatile void __iomem *src, size_t count)h]h)}(hYint copy_to_user_fromio(void __user *dst, volatile const void __iomem *src, size_t count)h](h)}(hinth]hint}(hjg;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjc;hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKubj)}(h h]h }(hjv;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc;hhhju;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>uh1jhjc;hhhju;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 }(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 }(hjO<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;ubj)}(hjh]h*}(hj]<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(hsrch]hsrc}(hjj<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?hjc;hhhju;hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_;hhhju;hKubah}(h]jZ;ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhju;hKhj\;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&]uh1jahj\;hhhju;hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhj=;hNhNubj)}(hX<**Parameters** ``void __user *dst`` the destination pointer on user-space ``const volatile void __iomem *src`` the source pointer on mmio ``size_t count`` the data size to copy in bytes **Description** Copies the data from mmio-space to user-space. **Return** Zero if successful, or non-zero on failure.h](jg)}(h**Parameters**h]j)}(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)}(hj=h]hvoid __user *dst}(hj!=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubj)}(hhh]jg)}(h%the destination pointer on user-spaceh]h%the destination pointer on user-space}(hj8=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4=hKhj5=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj4=hKhj=ubj)}(h@``const volatile void __iomem *src`` the source pointer on mmio h](j)}(h$``const volatile void __iomem *src``h]j)}(hjX=h]h const volatile void __iomem *src}(hjZ=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjR=ubj)}(hhh]jg)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hjq=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjm=hKhjn=ubah}(h]h ]h"]h$]h&]uh1jhjR=ubeh}(h]h ]h"]h$]h&]uh1jhjm=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&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_iter_fromio (C function)c.copy_to_iter_fromiohNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hXsize_t copy_to_iter_fromio (const void __iomem *src, size_t count, struct iov_iter *dst)h]h)}(hWsize_t copy_to_iter_fromio(const void __iomem *src, size_t count, struct iov_iter *dst)h](h)}(hhh]j%)}(hsize_th]hsize_t}(hj;>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=>modnameN classnameNjj)}j]j)}jcopy_to_iter_fromiosbc.copy_to_iter_fromioasbuh1hhj4>hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%ubj)}(h h]h }(hj]>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4>hhhj\>hK%ubj)}(hcopy_to_iter_fromioh]j%)}(hjY>h]hcopy_to_iter_fromio}(hjo>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjk>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj4>hhhj\>hK%ubj@)}(h=(const void __iomem *src, size_t count, struct iov_iter *dst)h](jF)}(hconst void __iomem *srch](jL)}(hj\h]hconst}(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubh)}(hvoidh]hvoid}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubh__iomem}(hj>hhhNhNubj)}(h h]h }(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]jW>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}(hjA?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=?ubj)}(h h]h }(hjN?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=?ubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hj_?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetja?modnameN classnameNjj)}j]jW>c.copy_to_iter_fromioasbuh1hhj=?ubj)}(h h]h }(hj}?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=?ubj%)}(hdsth]hdst}(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?hj4>hhhj\>hK%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0>hhhj\>hK%ubah}(h]j+>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\>hK%hj->hhubjb)}(hhh]jg)}(h%copy data from mmio-space to iov_iterh]h%copy data from mmio-space to iov_iter}(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&]uh1jahj->hhhj\>hK%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1hhhhj=;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}(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)}(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.chK'hj6@ubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjU@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQ@hK'hjR@ubah}(h]h ]h"]h$]h&]uh1jhj6@ubeh}(h]h ]h"]h$]h&]uh1jhjQ@hK'hj?ubj)}(h2``struct iov_iter *dst`` the destination iov_iter h](j)}(h``struct iov_iter *dst``h]j)}(hju@h]hstruct iov_iter *dst}(hjw@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs@ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK(hjo@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&]uh1jhjo@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&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_user_toio (C function)c.copy_from_user_toiohNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hZint copy_from_user_toio (volatile void __iomem *dst, const void __user *src, size_t count)h]h)}(hYint copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count)h](h)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHubj)}(h h]h }(hj+AhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhj*AhKHubj)}(hcopy_from_user_toioh]j%)}(hcopy_from_user_toioh]hcopy_from_user_toio}(hj=AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9Aubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhj*AhKHubj@)}(hB(volatile void __iomem *dst, const void __user *src, size_t count)h](jF)}(hvolatile void __iomem *dsth](jL)}(hj;h]hvolatile}(hjYAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUAubj)}(h h]h }(hjfAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUAubh)}(hvoidh]hvoid}(hjtAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUAubh__iomem}(hjUAhhhNhNubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUAubj%)}(hdsth]hdst}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQAubjF)}(hconst void __user *srch](jL)}(hj\h]hconst}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hvoidh]hvoid}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh__user}(hjAhhhNhNubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj%)}(hsrch]hsrc}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQAubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hj:BhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7Bubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjuh1jEhjQAubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhj*AhKHubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhj*AhKHubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*AhKHhjAhhubjb)}(hhh]jg)}(h'copy data from user-space to mmio-spaceh]h'copy 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.chKHhjBhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhj*AhKHubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhj=;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)}(hjBh]h Parameters}(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.chKLhjBubj)}(hhh](j)}(hE``volatile void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``volatile void __iomem *dst``h]j)}(hjBh]hvolatile void __iomem *dst}(hjBhhhNhNubah}(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.chKIhjBubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKIhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKIhjBubj)}(h<``const void __user *src`` the source pointer on user-space h](j)}(h``const void __user *src``h]j)}(hj Ch]hconst void __user *src}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Cubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKJhjCubj)}(hhh]jg)}(h the source pointer on user-spaceh]h the source pointer on user-space}(hj%ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!ChKJhj"Cubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj!ChKJhjBubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjECh]h size_t count}(hjGChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCCubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKKhj?Cubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hj^ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZChKKhj[Cubah}(h]h ]h"]h$]h&]uh1jhj?Cubeh}(h]h ]h"]h$]h&]uh1jhjZChKKhjBubeh}(h]h ]h"]h$]h&]uh1jhjBubjg)}(h**Description**h]j)}(hjCh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~Cubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKMhjBubjg)}(h.Copies the data from user-space to mmio-space.h]h.Copies the data from user-space to mmio-space.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKLhjBubjg)}(h **Return**h]j)}(hjCh]hReturn}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKNhjBubjg)}(h+Zero if successful, or non-zero on failure.h]h+Zero if successful, or non-zero on failure.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKOhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_iter_toio (C function)c.copy_from_iter_toiohNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hRsize_t copy_from_iter_toio (void __iomem *dst, size_t count, struct iov_iter *src)h]h)}(hQsize_t copy_from_iter_toio(void __iomem *dst, size_t count, struct iov_iter *src)h](h)}(hhh]j%)}(hsize_th]hsize_t}(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_toioasbuh1hhjChhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjDhK^ubj)}(hcopy_from_iter_toioh]j%)}(hj Dh]hcopy_from_iter_toio}(hj#DhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjDhK^ubj@)}(h7(void __iomem *dst, size_t count, struct iov_iter *src)h](jF)}(hvoid __iomem *dsth](h)}(hvoidh]hvoid}(hj>DhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:Dubj)}(h h]h }(hjLDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:Dubh__iomem}(hj:DhhhNhNubj)}(h h]h }(hj^DhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:Dubj)}(hjh]h*}(hjlDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:Dubj%)}(hdsth]hdst}(hjyDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:Dubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6DubjF)}(h size_t counth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j Dc.copy_from_iter_toioasbuh1hhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj%)}(hcounth]hcount}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6DubjF)}(hstruct iov_iter *srch](jL)}(hjOh]hstruct}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hhh]j%)}(hiov_iterh]hiov_iter}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j Dc.copy_from_iter_toioasbuh1hhjDubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(hjh]h*}(hj$EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj%)}(hsrch]hsrc}(hj1EhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6Dubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjDhK^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjDhK^ubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhK^hjChhubjb)}(hhh]jg)}(h%copy data from iov_iter to mmio-spaceh]h%copy data from iov_iter to mmio-space}(hj[EhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^hjXEhhubah}(h]h ]h"]h$]h&]uh1jahjChhhjDhK^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsEjjsEjjjuh1hhhhj=;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)}(hj}Eh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Eubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKbhjwEubj)}(hhh](j)}(h<``void __iomem *dst`` the destination pointer on mmio-space h](j)}(h``void __iomem *dst``h]j)}(hjEh]hvoid __iomem *dst}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK_hjEubj)}(hhh]jg)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhK_hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhK_hjEubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjEh]h size_t count}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK`hjEubj)}(hhh]jg)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhK`hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhK`hjEubj)}(h-``struct iov_iter *src`` the source iov_iter h](j)}(h``struct iov_iter *src``h]j)}(hjFh]hstruct iov_iter *src}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Fubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKahjFubj)}(hhh]jg)}(hthe source iov_iterh]hthe source iov_iter}(hj'FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#FhKahj$Fubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhj#FhKahjEubeh}(h]h ]h"]h$]h&]uh1jhjwEubjg)}(h**Description**h]j)}(hjIFh]h Description}(hjKFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGFubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKchjwEubjg)}(h,Copies the data from iov_iter to mmio-space.h]h,Copies the data from iov_iter to mmio-space.}(hj_FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKbhjwEubjg)}(h **Return**h]j)}(hjpFh]hReturn}(hjrFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnFubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKdhjwEubjg)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKehjwEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dma_alloc_dir_pages (C function)c.snd_dma_alloc_dir_pageshNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hint snd_dma_alloc_dir_pages (int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h]h)}(hint snd_dma_alloc_dir_pages(int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h](h)}(hinth]hint}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhK1ubj)}(hsnd_dma_alloc_dir_pagesh]j%)}(hsnd_dma_alloc_dir_pagesh]hsnd_dma_alloc_dir_pages}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhjFhK1ubj@)}(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 }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(htypeh]htype}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hj'GhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#Gubj)}(h h]h }(hj4GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#Gubh)}(hhh]j%)}(hdeviceh]hdevice}(hjEGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGGmodnameN classnameNjj)}j]j)}jjFsbc.snd_dma_alloc_dir_pagesasbuh1hhj#Gubj)}(h h]h }(hjeGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#Gubj)}(hjh]h*}(hjsGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#Gubj%)}(hdeviceh]hdevice}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#Gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(henum dma_data_direction dirh](jL)}(hj(h]henum}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jaGc.snd_dma_alloc_dir_pagesasbuh1hhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj%)}(hdirh]hdir}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(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 reftargetjHmodnameN classnameNjj)}j]jaGc.snd_dma_alloc_dir_pagesasbuh1hhjGubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj%)}(hsizeh]hsize}(hj+HhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjDHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@Hubj)}(h h]h }(hjQHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@Hubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjbHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_Hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdHmodnameN classnameNjj)}j]jaGc.snd_dma_alloc_dir_pagesasbuh1hhj@Hubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@Hubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@Hubj%)}(hdmabh]hdmab}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@Hubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjFhhhjFhK1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhjFhK1ubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhK1hjFhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type and directionh]hBallocate the buffer area according to the given type and direction}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1hjHhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhjFhK1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhj=;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)}(hjHh]h Parameters}(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:23: ./sound/core/memalloc.chK5hjHubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjIh]hint type}(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:23: ./sound/core/memalloc.chK3hjIubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhK3hjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhK3hjHubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hj?Ih]hstruct device *device}(hjAIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Iubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK4hj9Iubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjXIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjTIhK4hjUIubah}(h]h ]h"]h$]h&]uh1jhj9Iubeh}(h]h ]h"]h$]h&]uh1jhjTIhK4hjHubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjxIh]henum dma_data_direction dir}(hjzIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvIubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK5hjrIubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhK5hjIubah}(h]h ]h"]h$]h&]uh1jhjrIubeh}(h]h ]h"]h$]h&]uh1jhjIhK5hjHubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjIh]h size_t size}(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:23: ./sound/core/memalloc.chK6hjIubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhK6hjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhK6hjHubj)}(hU``struct snd_dma_buffer *dmab`` buffer allocation record to store the allocated data h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjIh]hstruct snd_dma_buffer *dmab}(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:23: ./sound/core/memalloc.chK7hjIubj)}(hhh]jg)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhK7hjJubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhK7hjHubeh}(h]h ]h"]h$]h&]uh1jhjHubjg)}(h**Description**h]j)}(hj%Jh]h Description}(hj'JhhhNhNubah}(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:23: ./sound/core/memalloc.chK9hjHubjg)}(hFCalls the memory-allocator function for the corresponding buffer type.h]hFCalls the memory-allocator function for the corresponding buffer type.}(hj;JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK8hjHubjg)}(h **Return**h]j)}(hjLJh]hReturn}(hjNJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK;hjHubjg)}(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.}(hjbJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKuh1jhjJhhhjJhKXubj@)}(hK(int type, struct device *device, size_t size, struct snd_dma_buffer *dmab)h](jF)}(hint typeh](h)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(htypeh]htype}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubjF)}(hstruct device *deviceh](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubh)}(hhh]j%)}(hdeviceh]hdevice}(hj!KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#KmodnameN classnameNjj)}j]j)}jjJsbc.snd_dma_alloc_pages_fallbackasbuh1hhjJubj)}(h h]h }(hjAKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjOKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hdeviceh]hdevice}(hj\KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjxKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzKmodnameN classnameNjj)}j]j=Kc.snd_dma_alloc_pages_fallbackasbuh1hhjqKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqKubj%)}(hsizeh]hsize}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubjF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j=Kc.snd_dma_alloc_pages_fallbackasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hdmabh]hdmab}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjJhhhjJhKXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhjJhKXubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhKXhjJhhubjb)}(hhh]jg)}(hBallocate the buffer area according to the given type with fallbackh]hBallocate the buffer area according to the given type with fallback}(hj>LhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKXhj;Lhhubah}(h]h ]h"]h$]h&]uh1jahjJhhhjJhKXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVLjjVLjjjuh1hhhhj=;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)}(hj`Lh]h Parameters}(hjbLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^Lubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK\hjZLubj)}(hhh](j)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjLh]hint type}(hjLhhhNhNubah}(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.chKYhjyLubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKYhjLubah}(h]h ]h"]h$]h&]uh1jhjyLubeh}(h]h ]h"]h$]h&]uh1jhjLhKYhjvLubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hjLh]hstruct device *device}(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.chKZhjLubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKZhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKZhjvLubj)}(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}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhK[hjMubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjMhK[hjvLubj)}(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*Mh]hstruct snd_dma_buffer *dmab}(hj,MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Mubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK\hj$Mubj)}(hhh]jg)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjCMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?MhK\hj@Mubah}(h]h ]h"]h$]h&]uh1jhj$Mubeh}(h]h ]h"]h$]h&]uh1jhj?MhK\hjvLubeh}(h]h ]h"]h$]h&]uh1jhjZLubjg)}(h**Description**h]j)}(hjeMh]h Description}(hjgMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcMubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK^hjZLubjg)}(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.}(hj{MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK]hjZLubjg)}(h **Return**h]j)}(hjMh]hReturn}(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.chKbhjZLubjg)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKchjZLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_free_pages (C function)c.snd_dma_free_pageshNtauh1hhj=;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}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKzubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMhhhjMhKzubj)}(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>uh1jhjMhhhjMhKzubj@)}(h(struct snd_dma_buffer *dmab)h]jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj Nubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Nubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj,NhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)Nubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.NmodnameN classnameNjj)}j]j)}jjMsbc.snd_dma_free_pagesasbuh1hhj Nubj)}(h h]h }(hjLNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Nubj)}(hjh]h*}(hjZNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Nubj%)}(hdmabh]hdmab}(hjgNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Nubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubah}(h]h ]h"]h$]h&]j=j>uh1j?hjMhhhjMhKzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjMhhhjMhKzubah}(h]jMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhKzhjMhhubjb)}(hhh]jg)}(hrelease the allocated bufferh]hrelease the allocated buffer}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKzhjNhhubah}(h]h ]h"]h$]h&]uh1jahjMhhhjMhKzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhj=;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)}(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:23: ./sound/core/memalloc.chK~hjNubj)}(hhh]j)}(hH``struct snd_dma_buffer *dmab`` the buffer allocation record to release h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjNh]hstruct snd_dma_buffer *dmab}(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:23: ./sound/core/memalloc.chK{hjNubj)}(hhh]jg)}(h'the buffer allocation record to releaseh]h'the buffer allocation record to release}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhK{hjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhK{hjNubah}(h]h ]h"]h$]h&]uh1jhjNubjg)}(h**Description**h]j)}(hj Oh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Oubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK}hjNubjg)}(h8Releases the allocated buffer via snd_dma_alloc_pages().h]h8Releases the allocated buffer via snd_dma_alloc_pages().}(hj#OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK|hjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_devm_alloc_dir_pages (C function)c.snd_devm_alloc_dir_pageshNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hystruct snd_dma_buffer * snd_devm_alloc_dir_pages (struct device *dev, int type, enum dma_data_direction dir, size_t size)h]h)}(hwstruct snd_dma_buffer *snd_devm_alloc_dir_pages(struct device *dev, int type, enum dma_data_direction dir, size_t size)h](jL)}(hjOh]hstruct}(hjROhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNOhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hj`OhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNOhhhj_OhKubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjqOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsOmodnameN classnameNjj)}j]j)}jsnd_devm_alloc_dir_pagessbc.snd_devm_alloc_dir_pagesasbuh1hhjNOhhhj_OhKubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNOhhhj_OhKubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNOhhhj_OhKubj)}(hsnd_devm_alloc_dir_pagesh]j%)}(hjOh]hsnd_devm_alloc_dir_pages}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNOhhhj_OhKubj@)}(hH(struct device *dev, int type, enum dma_data_direction dir, size_t size)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hhh]j%)}(hdeviceh]hdevice}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jOc.snd_devm_alloc_dir_pagesasbuh1hhjOubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hdevh]hdev}(hj#PhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubjF)}(hint typeh](h)}(hinth]hint}(hjuh1jEhjOubjF)}(henum dma_data_direction dirh](jL)}(hj(h]henum}(hjqPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmPubj)}(h h]h }(hj~PhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmPubh)}(hhh]j%)}(hdma_data_directionh]hdma_data_direction}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jOc.snd_devm_alloc_dir_pagesasbuh1hhjmPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmPubj%)}(hdirh]hdir}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jOc.snd_devm_alloc_dir_pagesasbuh1hhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hsizeh]hsize}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjNOhhhj_OhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJOhhhj_OhKubah}(h]jEOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_OhKhjGOhhubjb)}(hhh]jg)}(h*allocate the buffer and manage with devresh]h*allocate the buffer and manage with devres}(hj-QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj*Qhhubah}(h]h ]h"]h$]h&]uh1jahjGOhhhj_OhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEQjjEQjjjuh1hhhhj=;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)}(hjOQh]h Parameters}(hjQQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjnQh]hstruct device *dev}(hjpQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjhQubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjhQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjeQubj)}(h!``int type`` the DMA buffer type h](j)}(h ``int type``h]j)}(hjQh]hint type}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjQubj)}(hhh]jg)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjeQubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjQh]henum dma_data_direction dir}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjQubj)}(hhh]jg)}(h DMA directionh]h DMA direction}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjeQubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hjRh]h size_t size}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjRubj)}(hhh]jg)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hj2RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.RhKhj/Rubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhj.RhKhjeQubeh}(h]h ]h"]h$]h&]uh1jhjIQubjg)}(h**Description**h]j)}(hjTRh]h Description}(hjVRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubjg)}(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.}(hjjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubjg)}(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.}(hjyRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubjg)}(h **Return**h]j)}(hjRh]hReturn}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubjg)}(h7the snd_dma_buffer object at success, or NULL if failedh]h7the snd_dma_buffer object at success, or NULL if failed}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjIQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_mmap (C function)c.snd_dma_buffer_mmaphNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hRint snd_dma_buffer_mmap (struct snd_dma_buffer *dmab, struct vm_area_struct *area)h]h)}(hQint snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](h)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhjRhKubj)}(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>uh1jhjRhhhjRhKubj@)}(h:(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj ShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj*ShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'Subah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,SmodnameN classnameNjj)}j]j)}jjRsbc.snd_dma_buffer_mmapasbuh1hhjSubj)}(h h]h }(hjJShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjXShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hdmabh]hdmab}(hjeShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(hstruct vm_area_struct *areah](jL)}(hjOh]hstruct}(hj~ShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzSubh)}(hhh]j%)}(hvm_area_structh]hvm_area_struct}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jFSc.snd_dma_buffer_mmapasbuh1hhjzSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzSubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzSubj%)}(hareah]harea}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjRhhhjRhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjRhKubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhKhjRhhubjb)}(hhh]jg)}(h$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&]uh1jahjRhhhjRhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhj=;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)}(hj!Th]h Parameters}(hj#ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjTubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hj@Th]hstruct snd_dma_buffer *dmab}(hjBThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>Tubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj:Tubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjYThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUThKhjVTubah}(h]h ]h"]h$]h&]uh1jhj:Tubeh}(h]h ]h"]h$]h&]uh1jhjUThKhj7Tubj)}(h4``struct vm_area_struct *area`` VM area information h](j)}(h``struct vm_area_struct *area``h]j)}(hjyTh]hstruct vm_area_struct *area}(hj{ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjsTubj)}(hhh]jg)}(hVM area informationh]hVM area information}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjsTubeh}(h]h ]h"]h$]h&]uh1jhjThKhj7Tubeh}(h]h ]h"]h$]h&]uh1jhjTubjg)}(h **Return**h]j)}(hjTh]hReturn}(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:23: ./sound/core/memalloc.chKhjTubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_sync (C function)c.snd_dma_buffer_synchNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hSvoid snd_dma_buffer_sync (struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h]h)}(hRvoid snd_dma_buffer_sync(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](h)}(hvoidh]hvoid}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjThhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjThhhjUhKubj)}(hsnd_dma_buffer_synch]j%)}(hsnd_dma_buffer_synch]hsnd_dma_buffer_sync}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjThhhjUhKubj@)}(h:(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj6UhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2Uubj)}(h h]h }(hjCUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2Uubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjTUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVUmodnameN classnameNjj)}j]j)}jjUsbc.snd_dma_buffer_syncasbuh1hhj2Uubj)}(h h]h }(hjtUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2Uubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Uubj%)}(hdmabh]hdmab}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2Uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.UubjF)}(henum snd_dma_sync_mode modeh](jL)}(hj(h]henum}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(hsnd_dma_sync_modeh]hsnd_dma_sync_mode}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jpUc.snd_dma_buffer_syncasbuh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj%)}(hmodeh]hmode}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.Uubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjThhhjUhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjThhhjUhKubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhKhjThhubjb)}(hhh]jg)}(h&sync DMA buffer between CPU and deviceh]h&sync DMA buffer between CPU and device}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjVhhubah}(h]h ]h"]h$]h&]uh1jahjThhhjUhKubeh}(h]h ](jfunctionech"]h$]h&]jjjj4Vjj4Vjjjuh1hhhhj=;hNhNubj)}(h|**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``enum snd_dma_sync_mode mode`` sync modeh](jg)}(h**Parameters**h]j)}(hj>Vh]h Parameters}(hj@VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hj]Vh]hstruct snd_dma_buffer *dmab}(hj_VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Vubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjWVubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjvVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrVhKhjsVubah}(h]h ]h"]h$]h&]uh1jhjWVubeh}(h]h ]h"]h$]h&]uh1jhjrVhKhjTVubj)}(h)``enum snd_dma_sync_mode mode`` sync modeh](j)}(h``enum snd_dma_sync_mode mode``h]j)}(hjVh]henum snd_dma_sync_mode mode}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjVubj)}(hhh]jg)}(h sync modeh]h sync mode}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjTVubeh}(h]h ]h"]h$]h&]uh1jhj8Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_addr (C function)c.snd_sgbuf_get_addrhNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hJdma_addr_t snd_sgbuf_get_addr (struct snd_dma_buffer *dmab, size_t offset)h]h)}(hIdma_addr_t snd_sgbuf_get_addr(struct snd_dma_buffer *dmab, size_t offset)h](h)}(hhh]j%)}(h dma_addr_th]h dma_addr_t}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN 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 }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjWhKubj)}(hsnd_sgbuf_get_addrh]j%)}(hjWh]hsnd_sgbuf_get_addr}(hj'WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#Wubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVhhhjWhKubj@)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hjBWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>Wubj)}(h h]h }(hjOWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>Wubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj`WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]Wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbWmodnameN classnameNjj)}j]jWc.snd_sgbuf_get_addrasbuh1hhj>Wubj)}(h h]h }(hj~WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>Wubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Wubj%)}(hdmabh]hdmab}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Wubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:WubjF)}(h size_t offseth](h)}(hhh]j%)}(hsize_th]hsize_t}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jWc.snd_sgbuf_get_addrasbuh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hoffseth]hoffset}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:Wubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjVhhhjWhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjWhKubah}(h]jVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhKhjVhhubjb)}(hhh]jg)}(h7return the physical address at the corresponding offseth]h7return the physical address at the corresponding offset}(hj XhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjXhhubah}(h]h ]h"]h$]h&]uh1jahjVhhhjWhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#Xjj#Xjjjuh1hhhhj=;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)}(hj-Xh]h Parameters}(hj/XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Xubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj'Xubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjLXh]hstruct snd_dma_buffer *dmab}(hjNXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjFXubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjeXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjaXhKhjbXubah}(h]h ]h"]h$]h&]uh1jhjFXubeh}(h]h ]h"]h$]h&]uh1jhjaXhKhjCXubj)}(h,``size_t offset`` offset in the ring buffer h](j)}(h``size_t offset``h]j)}(hjXh]h size_t offset}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjXubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhKhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjCXubeh}(h]h ]h"]h$]h&]uh1jhj'Xubjg)}(h **Return**h]j)}(hjXh]hReturn}(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:23: ./sound/core/memalloc.chKhj'Xubjg)}(hthe physical addressh]hthe physical address}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj'Xubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_page (C function)c.snd_sgbuf_get_pagehNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hMstruct page * snd_sgbuf_get_page (struct snd_dma_buffer *dmab, size_t offset)h]h)}(hKstruct page *snd_sgbuf_get_page(struct snd_dma_buffer *dmab, size_t offset)h](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhKubh)}(hhh]j%)}(hpageh]hpage}(hj$YhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&YmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_pagesbc.snd_sgbuf_get_pageasbuh1hhjYhhhjYhKubj)}(h h]h }(hjEYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhKubj)}(hjh]h*}(hjSYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhjYhKubj)}(hsnd_sgbuf_get_pageh]j%)}(hjBYh]hsnd_sgbuf_get_page}(hjdYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`Yubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjYhKubj@)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jF)}(hstruct snd_dma_buffer *dmabh](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_dma_bufferh]hsnd_dma_buffer}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j@Yc.snd_sgbuf_get_pageasbuh1hhj{Yubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{Yubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{Yubj%)}(hdmabh]hdmab}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{Yubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwYubjF)}(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 reftargetjYmodnameN classnameNjj)}j]j@Yc.snd_sgbuf_get_pageasbuh1hhjYubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hoffseth]hoffset}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwYubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjYhhhjYhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhjYhKubah}(h]jXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhKhjXhhubjb)}(hhh]jg)}(h4return the physical page at the corresponding offseth]h4return the physical page at the corresponding offset}(hjHZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjEZhhubah}(h]h ]h"]h$]h&]uh1jahjXhhhjYhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`Zjj`Zjjjuh1hhhhj=;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)}(hjjZh]h Parameters}(hjlZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhZubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjdZubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjZh]hstruct snd_dma_buffer *dmab}(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:23: ./sound/core/memalloc.chKhjZubj)}(hhh]jg)}(hbuffer allocation informationh]hbuffer allocation information}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubj)}(h,``size_t offset`` offset in the ring buffer h](j)}(h``size_t offset``h]j)}(hjZh]h size_t offset}(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:23: ./sound/core/memalloc.chKhjZubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubeh}(h]h ]h"]h$]h&]uh1jhjdZubjg)}(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.chKhjdZubjg)}(hthe page pointerh]hthe page pointer}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjdZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_sgbuf_get_chunk_size (C function)c.snd_sgbuf_get_chunk_sizehNtauh1hhj=;hhhNhNubh)}(hhh](h)}(hhunsigned int snd_sgbuf_get_chunk_size (struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h]h)}(hgunsigned int snd_sgbuf_get_chunk_size(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](h)}(hunsignedh]hunsigned}(hjB[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>[hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMubj)}(h h]h }(hjQ[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>[hhhjP[hMubh)}(hinth]hint}(hj_[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>[hhhjP[hMubj)}(h h]h }(hjm[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>[hhhjP[hMubj)}(hsnd_sgbuf_get_chunk_sizeh]j%)}(hsnd_sgbuf_get_chunk_sizeh]hsnd_sgbuf_get_chunk_size}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>[hhhjP[hMubj@)}(hB(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](jF)}(hstruct snd_dma_buffer *dmabh](jL)}(hjOh]hstruct}(hj[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj[sbc.snd_sgbuf_get_chunk_sizeasbuh1hhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hdmabh]hdmab}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj \hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj \ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj \ubh)}(hinth]hint}(hj)\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj \ubj)}(h h]h }(hj7\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj \ubj%)}(hofsh]hofs}(hjE\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj \ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj^\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZ\ubj)}(h h]h }(hjl\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZ\ubh)}(hinth]hint}(hjz\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZ\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZ\ubj%)}(hsizeh]hsize}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZ\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj>[hhhjP[hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:[hhhjP[hMubah}(h]j5[ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjP[hMhj7[hhubjb)}(hhh]jg)}(h=compute the max chunk size with continuous pages on sg-bufferh]h=compute the max chunk size with continuous pages on sg-buffer}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMhj\hhubah}(h]h ]h"]h$]h&]uh1jahj7[hhhjP[hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhj=;hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``unsigned int ofs`` offset in the ring buffer ``unsigned int size`` the requested size **Return** the chunk sizeh](jg)}(h**Parameters**h]j)}(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)}(hj:]h]hunsigned int ofs}(hj<]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj4]ubj)}(hhh]jg)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjS]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjO]hM hjP]ubah}(h]h ]h"]h$]h&]uh1jhj4]ubeh}(h]h ]h"]h$]h&]uh1jhjO]hM hj\ubj)}(h)``unsigned int size`` the requested size h](j)}(h``unsigned int size``h]j)}(hjs]h]hunsigned int size}(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:23: ./sound/core/memalloc.chM hjm]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&]uh1jhjm]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&]uh1jhj=;hhhNhNubeh}(h]memory-management-helpersah ]h"]memory management helpersah$]h&]uh1hhhhhhhhKubeh}(h]management-of-cards-and-devicesah ]h"]management of cards and devicesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPCM APIh]hPCM API}(hj]hhhNhNubah}(h]h ]h"]h$]h&]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&]uh1jKhj!^hhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKubj)}(h h]h }(hj3^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!^hhhj2^hKubh)}(hcharh]hchar}(hjA^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!^hhhj2^hKubj)}(h h]h }(hjO^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!^hhhj2^hKubj)}(hjh]h*}(hj]^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!^hhhj2^hKubj)}(hsnd_pcm_format_nameh]j%)}(hsnd_pcm_format_nameh]hsnd_pcm_format_name}(hjn^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!^hhhj2^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)}jjp^sbc.snd_pcm_format_nameasbuh1hhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj%)}(hformath]hformat}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj!^hhhj2^hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhj2^hKubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2^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^hhhj2^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&]uh1jhj$_ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj _ubj)}(hhh]jg)}(h PCM formath]h PCM format}(hj?_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;_hKhj<_ubah}(h]h ]h"]h$]h&]uh1jhj _ubeh}(h]h ]h"]h$]h&]uh1jhj;_hKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubjg)}(h **Return**h]j)}(hja_h]hReturn}(hjc_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_ubjg)}(hthe format name stringh]hthe format name string}(hjw_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 }(hj!`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj)}(hjh]h*}(hj/`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)}(h int streamh](h)}(hinth]hint}(hjU`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQ`ubj)}(h h]h }(hjc`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ`ubj%)}(hstreamh]hstream}(hjq`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ`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)}(hjah]hstruct snd_pcm *pcm}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhj aubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj*ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&ahMhhj'aubah}(h]h ]h"]h$]h&]uh1jhj aubeh}(h]h ]h"]h$]h&]uh1jhj&ahMhhjaubj)}(h:``int stream`` the stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int stream``h]j)}(hjJah]h int stream}(hjLahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHaubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMihjDaubj)}(hhh]jg)}(h*the stream direction, SNDRV_PCM_STREAM_XXXh]h*the stream direction, SNDRV_PCM_STREAM_XXX}(hjcahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_ahMihj`aubah}(h]h ]h"]h$]h&]uh1jhjDaubeh}(h]h ]h"]h$]h&]uh1jhj_ahMihjaubj)}(h1``int substream_count`` the number of substreams h](j)}(h``int substream_count``h]j)}(hjah]hint substream_count}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhj}aubj)}(hhh]jg)}(hthe number of substreamsh]hthe number of substreams}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMjhjaubah}(h]h ]h"]h$]h&]uh1jhj}aubeh}(h]h ]h"]h$]h&]uh1jhjahMjhjaubeh}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(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().}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMkhj`ubjg)}(h **Return**h]j)}(hjah]hReturn}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMphj`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*bhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&bhhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hj9bhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&bhhhj8bhMubj)}(h snd_pcm_newh]j%)}(h snd_pcm_newh]h snd_pcm_new}(hjKbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&bhhhj8bhMubj@)}(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}(hjgbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcbubj)}(h h]h }(hjtbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcbubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjMbsb c.snd_pcm_newasbuh1hhjcbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcbubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcbubj%)}(hcardh]hcard}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(hcharh]hchar}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hidh]hid}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubjF)}(h int deviceh](h)}(hinth]hint}(hj6chhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2cubj)}(h h]h }(hjDchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2cubj%)}(hdeviceh]hdevice}(hjRchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2cubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubjF)}(hint playback_counth](h)}(hinth]hint}(hjkchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgcubj)}(h h]h }(hjychhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgcubj%)}(hplayback_counth]hplayback_count}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubjF)}(hint capture_counth](h)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj%)}(h capture_counth]h capture_count}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubjF)}(hstruct snd_pcm **rpcmh](jL)}(hjOh]hstruct}(hjchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jb c.snd_pcm_newasbuh1hhjcubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(hjh]h*}(hj,dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hrpcmh]hrpcm}(hj9dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_bubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&bhhhj8bhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"bhhhj8bhMubah}(h]jbah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8bhMhjbhhubjb)}(hhh]jg)}(hcreate a new PCM instanceh]hcreate a new PCM instance}(hjcdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj`dhhubah}(h]h ]h"]h$]h&]uh1jahjbhhhj8bhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{djj{djjjuh1hhhhj]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)}(hjdh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjdh]hstruct snd_card *card}(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)}(hthe card instanceh]hthe card instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hjdh]hconst char *id}(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 id stringh]h the id string}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h-``int device`` the device index (zero based) h](j)}(h``int device``h]j)}(hjeh]h int device}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubj)}(hhh]jg)}(hthe device index (zero based)h]hthe device index (zero based)}(hj/ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj+ehMhj,eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj+ehMhjdubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hjOeh]hint playback_count}(hjQehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMeubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjIeubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hjhehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdehMhjeeubah}(h]h ]h"]h$]h&]uh1jhjIeubeh}(h]h ]h"]h$]h&]uh1jhjdehMhjdubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjeh]hint capture_count}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hjeh]hstruct snd_pcm **rpcm}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjeubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubeh}(h]h ]h"]h$]h&]uh1jhjdubjg)}(h**Description**h]j)}(hjeh]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubjg)}(hCreates a new PCM instance.h]hCreates a new PCM instance.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubjg)}(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().}(hj!fhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubjg)}(h **Return**h]j)}(hj2fh]hReturn}(hj4fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0fubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjHfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubeh}(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}(hjwfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjsfhhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsfhhhjfhMubj)}(hsnd_pcm_new_internalh]j%)}(hsnd_pcm_new_internalh]hsnd_pcm_new_internal}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjsfhhhjfhMubj@)}(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}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjfsbc.snd_pcm_new_internalasbuh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(hcardh]hcard}(hj ghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hj&ghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"gubj)}(h h]h }(hj3ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"gubh)}(hcharh]hchar}(hjAghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"gubj)}(h h]h }(hjOghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"gubj)}(hjh]h*}(hj]ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"gubj%)}(hidh]hid}(hjjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h int deviceh](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(hdeviceh]hdevice}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hint playback_counth](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(hplayback_counth]hplayback_count}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hint capture_counth](h)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(h capture_counth]h capture_count}(hj hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hstruct snd_pcm **rpcmh](jL)}(hjOh]hstruct}(hj"hhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hj/hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hj@hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBhmodnameN classnameNjj)}j]jfc.snd_pcm_new_internalasbuh1hhjhubj)}(h h]h }(hj^hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjlhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj)}(hjh]h*}(hjyhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hrpcmh]hrpcm}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjsfhhhjfhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjofhhhjfhMubah}(h]jjfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhMhjlfhhubjb)}(hhh]jg)}(h"create a new internal PCM instanceh]h"create a new internal PCM instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhhhubah}(h]h ]h"]h$]h&]uh1jahjlfhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj]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)}(hjhh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjhubj)}(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}(hj ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihM hjiubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjihM hjhubj)}(h!``const char *id`` the id string h](j)}(h``const char *id``h]j)}(hj*ih]hconst char *id}(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.chM hj$iubj)}(hhh]jg)}(h the id stringh]h the id string}(hjCihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?ihM hj@iubah}(h]h ]h"]h$]h&]uh1jhj$iubeh}(h]h ]h"]h$]h&]uh1jhj?ihM hjhubj)}(hG``int device`` the device index (zero based - shared with normal PCMs) h](j)}(h``int device``h]j)}(hjcih]h int device}(hjeihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaiubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hj]iubj)}(hhh]jg)}(h7the device index (zero based - shared with normal PCMs)h]h7the device index (zero based - shared with normal PCMs)}(hj|ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxihM hjyiubah}(h]h ]h"]h$]h&]uh1jhj]iubeh}(h]h ]h"]h$]h&]uh1jhjxihM hjhubj)}(h=``int playback_count`` the number of substreams for playback h](j)}(h``int playback_count``h]j)}(hjih]hint playback_count}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjiubj)}(hhh]jg)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihM hjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihM hjhubj)}(h;``int capture_count`` the number of substreams for capture h](j)}(h``int capture_count``h]j)}(hjih]hint capture_count}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chM hjiubj)}(hhh]jg)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihM hjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihM hjhubj)}(hD``struct snd_pcm **rpcm`` the pointer to store the new pcm instance h](j)}(h``struct snd_pcm **rpcm``h]j)}(hjjh]hstruct snd_pcm **rpcm}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj jubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjjubj)}(hhh]jg)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hj'jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#jhMhj$jubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhj#jhMhjhubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjIjh]h Description}(hjKjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGjubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhubjg)}(hXECreates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data.h]hXECreates a new internal PCM instance with no userspace device or procfs entries. This is used by ASoC Back End PCMs in order to create a PCM that will only be used internally by kernel drivers. i.e. it cannot be opened by userspace. It provides existing ASoC components drivers with a substream and access to any private data.}(hj_jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhubjg)}(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().}(hjnjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhubjg)}(h **Return**h]j)}(hjjh]hReturn}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}jubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhubjg)}(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&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_notify (C function)c.snd_pcm_notifyhNtauh1hhj]hhhNhNubh)}(hhh](h)}(h=int snd_pcm_notify (struct snd_pcm_notify *notify, int nfree)h]h)}(huh1jhjjhhhjjhMfubj@)}(h*(struct snd_pcm_notify *notify, int nfree)h](jF)}(hstruct snd_pcm_notify *notifyh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_pcm_notifyh]hsnd_pcm_notify}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!kmodnameN classnameNjj)}j]j)}jjjsbc.snd_pcm_notifyasbuh1hhjjubj)}(h h]h }(hj?khhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjMkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hnotifyh]hnotify}(hjZkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubjF)}(h int nfreeh](h)}(hinth]hint}(hjskhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjokubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjokubj%)}(hnfreeh]hnfree}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjokubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhjjhMfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjjhMfubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMfhjjhhubjb)}(hhh]jg)}(hAdd/remove the notify listh]hAdd/remove the notify list}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMfhjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjjhMfubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhj]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)}(hjkh]h Parameters}(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.chMjhjkubj)}(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&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghjkubj)}(hhh]jg)}(hPCM notify listh]hPCM notify list}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhMghjlubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhMghjkubj)}(h+``int nfree`` 0 = register, 1 = unregister h](j)}(h ``int nfree``h]j)}(hj3lh]h int nfree}(hj5lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1lubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhj-lubj)}(hhh]jg)}(h0 = register, 1 = unregisterh]h0 = register, 1 = unregister}(hjLlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHlhMhhjIlubah}(h]h ]h"]h$]h&]uh1jhj-lubeh}(h]h ]h"]h$]h&]uh1jhjHlhMhhjkubeh}(h]h ]h"]h$]h&]uh1jhjkubjg)}(h**Description**h]j)}(hjnlh]h Description}(hjplhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjllubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMjhjkubjg)}(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.[}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMihjkubjg)}(h **Return**h]j)}(hjlh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMmhjkubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMnhjkubeh}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhMubj)}(hsnd_pcm_set_opsh]j%)}(hsnd_pcm_set_opsh]hsnd_pcm_set_ops}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhMubj@)}(hC(struct snd_pcm *pcm, int direction, const struct snd_pcm_ops *ops)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hj$mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hj5mhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2mubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7mmodnameN classnameNjj)}j]j)}jjlsbc.snd_pcm_set_opsasbuh1hhjmubj)}(h h]h }(hjUmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjcmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hpcmh]hpcm}(hjpmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(h int directionh](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(h directionh]h direction}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(hconst struct snd_pcm_ops *opsh](jL)}(hj\h]hconst}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubjL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hhh]j%)}(h snd_pcm_opsh]h snd_pcm_ops}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]jQmc.snd_pcm_set_opsasbuh1hhjmubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hj#nhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hopsh]hops}(hj0nhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhMubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhMhjlhhubjb)}(hhh]jg)}(hset the PCM operatorsh]hset the PCM operators}(hjZnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjWnhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrnjjrnjjjuh1hhhhj]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)}(hj|nh]h Parameters}(hj~nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjznubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvnubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjnh]hstruct snd_pcm *pcm}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjnubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMhjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjnubj)}(h9``int direction`` stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hjnh]h int direction}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjnubj)}(hhh]jg)}(h&stream direction, SNDRV_PCM_STREAM_XXXh]h&stream direction, SNDRV_PCM_STREAM_XXX}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMhjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjnubj)}(h5``const struct snd_pcm_ops *ops`` the operator table h](j)}(h!``const struct snd_pcm_ops *ops``h]j)}(hj oh]hconst struct snd_pcm_ops *ops}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj oubah}(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)}(hthe operator tableh]hthe operator table}(hj&ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"ohMhj#oubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhj"ohMhjnubeh}(h]h ]h"]h$]h&]uh1jhjvnubjg)}(h**Description**h]j)}(hjHoh]h Description}(hjJohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFoubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvnubjg)}(h1Sets the given PCM operators to the pcm instance.h]h1Sets the given PCM operators to the pcm instance.}(hj^ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjvnubeh}(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}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjohM ubj)}(hsnd_pcm_set_sync_per_cardh]j%)}(hsnd_pcm_set_sync_per_cardh]hsnd_pcm_set_sync_per_card}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjohM 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}(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}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jjosbc.snd_pcm_set_sync_per_cardasbuh1hhjoubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(h substreamh]h substream}(hj#phhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hjuh1jEhjoubjF)}(hconst unsigned char *idh](jL)}(hj\h]hconst}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hunsignedh]hunsigned}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hcharh]hchar}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hidh]hid}(hj qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubjF)}(hunsigned int lenh](h)}(hunsignedh]hunsigned}(hj%qhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!qubj)}(h h]h }(hj3qhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!qubh)}(hinth]hint}(hjAqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!qubj)}(h h]h }(hjOqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!qubj%)}(hlenh]hlen}(hj]qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!qubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjohM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjohM ubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohM hjohhubjb)}(hhh]jg)}(h$set the PCM sync id with card numberh]h$set the PCM sync id with card number}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjqhhubah}(h]h ]h"]h$]h&]uh1jahjohhhjohM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhj]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)}(hjqh]h Parameters}(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.chMhjqubj)}(hhh](j)}(h:``struct snd_pcm_substream *substream`` the pcm substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjqh]h#struct snd_pcm_substream *substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjqubj)}(hhh]jg)}(hthe pcm substreamh]hthe pcm substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhM hjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhM hjqubj)}(hB``struct snd_pcm_hw_params *params`` modified hardware parameters h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjrh]h struct snd_pcm_hw_params *params}(hjrhhhNhNubah}(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}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjrhM hjrubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjrhM hjqubj)}(h6``const unsigned char *id`` identifier (max 12 bytes) h](j)}(h``const unsigned char *id``h]j)}(hj:rh]hconst unsigned char *id}(hjuh1jhjshhhj.shMgubj@)}(h6(struct snd_interval *i, const struct snd_interval *v)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hj]shhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYsubj)}(h h]h }(hjjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYsubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj{shhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}smodnameN classnameNjj)}j]j)}jjCssbc.snd_interval_refineasbuh1hhjYsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYsubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYsubj%)}(hih]hi}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUsubjF)}(hconst struct snd_interval *vh](jL)}(hj\h]hconst}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubjL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj tmodnameN classnameNjj)}j]jsc.snd_interval_refineasbuh1hhjsubj)}(h h]h }(hj&thhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hj4thhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(hvh]hv}(hjAthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUsubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjshhhj.shMgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjshhhj.shMgubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.shMghjshhubjb)}(hhh]jg)}(h)refine the interval value of configuratorh]h)refine the interval value of configurator}(hjkthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMghjhthhubah}(h]h ]h"]h$]h&]uh1jahjshhhj.shMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhj]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)}(hjth]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjtubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjth]hstruct snd_interval *i}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhhjtubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhhjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthMhhjtubj)}(h@``const struct snd_interval *v`` the interval value to refer to h](j)}(h ``const struct snd_interval *v``h]j)}(hjth]hconst struct snd_interval *v}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMihjtubj)}(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&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthMihjtubeh}(h]h ]h"]h$]h&]uh1jhjtubjg)}(h**Description**h]j)}(hj uh]h Description}(hj"uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMkhjtubjg)}(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.}(hj6uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMjhjtubjg)}(h **Return**h]j)}(hjGuh]hReturn}(hjIuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEuubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMnhjtubjg)}(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]uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMohjtubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuhhhjuhMubj)}(hsnd_interval_divh]j%)}(hsnd_interval_divh]hsnd_interval_div}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhjuhMubj@)}(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}(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%)}(h snd_intervalh]h snd_interval}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jjusbc.snd_interval_divasbuh1hhjuubj)}(h h]h }(hj"vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hj0vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hah]ha}(hj=vhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjVvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRvubj)}(h h]h }(hjcvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRvubjL)}(hjOh]hstruct}(hjqvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRvubj)}(h h]h }(hj~vhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRvubh)}(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]jvc.snd_interval_divasbuh1hhjRvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRvubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRvubj%)}(hbh]hb}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jvc.snd_interval_divasbuh1hhjvubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hj+whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hjh]hc}(hj8whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhjuhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjuhMubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhMhjuhhubjb)}(hhh]jg)}(h'refine the interval value with divisionh]h'refine the interval value with division}(hjawhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj^whhubah}(h]h ]h"]h$]h&]uh1jahjuhhhjuhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjywjjywjjjuh1hhhhj]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)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}wubj)}(hhh](j)}(h*``const struct snd_interval *a`` dividend h](j)}(h ``const struct snd_interval *a``h]j)}(hjwh]hconst struct snd_interval *a}(hjwhhhNhNubah}(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.chMhjwubj)}(hhh]jg)}(hdividendh]hdividend}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjwubj)}(h)``const struct snd_interval *b`` divisor h](j)}(h ``const struct snd_interval *b``h]j)}(hjwh]hconst struct snd_interval *b}(hjwhhhNhNubah}(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.chMhjwubj)}(hhh]jg)}(hdivisorh]hdivisor}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjwubj)}(h$``struct snd_interval *c`` quotient h](j)}(h``struct snd_interval *c``h]j)}(hjxh]hstruct snd_interval *c}(hjxhhhNhNubah}(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.chMhjxubj)}(hhh]jg)}(hquotienth]hquotient}(hj-xhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)xhMhj*xubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhj)xhMhjwubeh}(h]h ]h"]h$]h&]uh1jhj}wubjg)}(h**Description**h]j)}(hjOxh]h Description}(hjQxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMxubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}wubjg)}(h c = a / bh]h c = a / b}(hjexhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}wubjg)}(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.}(hjtxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}wubeh}(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}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhjxhMubj)}(hsnd_interval_muldivkh]j%)}(hsnd_interval_muldivkh]hsnd_interval_muldivk}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhjxhMubj@)}(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}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubjL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jjxsbc.snd_interval_muldivkasbuh1hhjxubj)}(h h]h }(hj9yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjGyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hj?vh]ha}(hjTyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjlyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhyubj)}(h h]h }(hjyyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhyubjL)}(hjOh]hstruct}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhyubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j5yc.snd_interval_muldivkasbuh1hhjhyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhyubj%)}(hjvh]hb}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hunsigned int kh](h)}(hunsignedh]hunsigned}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hj zhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hjXh]hk}(hj.zhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hstruct snd_interval *ch](jL)}(hjOh]hstruct}(hjFzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBzubj)}(h h]h }(hjSzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBzubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjdzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjazubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfzmodnameN classnameNjj)}j]j5yc.snd_interval_muldivkasbuh1hhjBzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBzubj%)}(hjh]hc}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjxhhhjxhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxhhhjxhMubah}(h]jxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhMhjxhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjzhhhNhNubah}(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&]uh1jahjxhhhjxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhj]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)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjzubj)}(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{hMhjzubj)}(h,``const struct snd_interval *b`` dividend 2 h](j)}(h ``const struct snd_interval *b``h]j)}(hj@{h]hconst struct snd_interval *b}(hjB{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>{ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj:{ubj)}(hhh]jg)}(h dividend 2h]h dividend 2}(hjY{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjU{hMhjV{ubah}(h]h ]h"]h$]h&]uh1jhj:{ubeh}(h]h ]h"]h$]h&]uh1jhjU{hMhjzubj)}(h(``unsigned int k`` divisor (as integer) h](j)}(h``unsigned int k``h]j)}(hjy{h]hunsigned int k}(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:32: ./sound/core/pcm_lib.chMhjs{ubj)}(hhh]jg)}(hdivisor (as integer)h]hdivisor (as integer)}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhjs{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjzubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hj{h]hstruct snd_interval *c}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh]jg)}(hresulth]hresult}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjzubeh}(h]h ]h"]h$]h&]uh1jhjzubjg)}(h**Description**h]j)}(hj{h]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjzubjg)}(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.chMhjzubjg)}(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.chMhjzubeh}(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}(hjA|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 }(hjP|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=|hhhjO|hMubj)}(hsnd_interval_mulkdivh]j%)}(hsnd_interval_mulkdivh]hsnd_interval_mulkdiv}(hjb|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj=|hhhjO|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&]uh1jKhjz|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz|ubjL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjz|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjz|ubh)}(hhh]j%)}(h 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)}jjd|sbc.snd_interval_mulkdivasbuh1hhjz|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%)}(hj?vh]ha}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjz|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjv|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 }(hj4}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj%)}(hjXh]hk}(hjB}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjv|ubjF)}(hconst struct snd_interval *bh](jL)}(hj\h]hconst}(hjZ}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjV}ubj)}(h h]h }(hjg}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV}ubjL)}(hjOh]hstruct}(hju}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjV}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV}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_mulkdivasbuh1hhjV}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV}ubj%)}(hjvh]hb}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjv|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 }(hj ~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hj.~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hjh]hc}(hj;~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjv|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj=|hhhjO|hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9|hhhjO|hMubah}(h]j4|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjO|hMhj6|hhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hjd~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhja~hhubah}(h]h ]h"]h$]h&]uh1jahj6|hhhjO|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)}(hjh]hconst struct snd_interval *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hdivisorh]hdivisor}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhj~ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hjPh]hstruct snd_interval *c}(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)}(hresulth]hresult}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehMhj~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)}(h c = a * k / bh]h c = a * k / b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.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.}(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_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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/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 hjhhhjhM5ubj)}(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>uh1jhjhhhjhM5ubj@)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratnumasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjsh]hi}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rats_counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(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}(hjŀhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst struct snd_ratnum *ratsh](jL)}(hj\h]hconst}(hjހhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjڀubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjڀubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjڀubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjڀubh)}(hhh]j%)}(h snd_ratnumh]h snd_ratnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.snd_interval_ratnumasbuh1hhjڀubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjڀubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjڀubj%)}(hratsh]hrats}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjڀubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *numph](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)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *denph](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)}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM5ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM5hjhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hj3hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhj]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)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjRubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjwh]hstruct snd_interval *i}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjqubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjnubj)}(h/``unsigned int rats_count`` number of ratnum_t h](j)}(h``unsigned int rats_count``h]j)}(hjh]hunsigned int rats_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.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łhM7hjnubj)}(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&]uh1jhjhM8hjnubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hj"h]hunsigned int *nump}(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.chM9hjubj)}(hhh]jg)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hM9hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hM9hjnubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hj[h]hunsigned int *denp}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjUubj)}(hhh]jg)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphM:hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphM:hjnubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(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<hjRubjg)}(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<hjRubeh}(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}(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_interval_ratdenh]j%)}(hsnd_interval_ratdenh]hsnd_interval_ratden}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj׃hhhjhMubj@)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h](jF)}(hstruct snd_interval *ih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratdenasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjsh]hi}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rats_counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(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>uh1jEhjubjF)}(hconst struct snd_ratden *ratsh](jL)}(hj\h]hconst}(hjڄhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjքubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjքubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjքubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjքubh)}(hhh]j%)}(h snd_ratdenh]h snd_ratden}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jRc.snd_interval_ratdenasbuh1hhjքubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjքubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjքubj%)}(hratsh]hrats}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjքubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *numph](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)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj%)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int *denph](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)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdenph]hdenp}(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>jSuh1hjTjUhjӃhhhjhMubah}(h]j΃ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjЃhhubjb)}(hhh]jg)}(hrefine the interval valueh]hrefine the interval value}(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/hhubah}(h]h ]h"]h$]h&]uh1jahjЃhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj]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)}(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.chMhjNubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjsh]hstruct snd_interval *i}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjmubj)}(hhh]jg)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(h4``unsigned int rats_count`` number of struct ratden h](j)}(h``unsigned int rats_count``h]j)}(hjh]hunsigned int rats_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hnumber of struct ratdenh]hnumber of struct ratden}(hjņhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhj†ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(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.chMhj߆ubj)}(hhh]jg)}(hstruct ratden arrayh]hstruct ratden array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj߆ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjjubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hjh]hunsigned int *nump}(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(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3hMhj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hMhjjubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjWh]hunsigned int *denp}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjQubj)}(hhh]jg)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhMhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjjubeh}(h]h ]h"]h$]h&]uh1jhjNubjg)}(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.chMhjNubjg)}(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.chMhjNubeh}(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}(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.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjӇhhhjhM ubj)}(hsnd_interval_listh]j%)}(hsnd_interval_listh]hsnd_interval_list}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjӇhhhjhM 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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.snd_interval_listasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjsh]hi}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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 }(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>uh1jEhj ubjF)}(hconst unsigned int *listh](jL)}(hj\h]hconst}(hjֈhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj҈ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj҈ubh)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj҈ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj҈ubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj҈ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj҈ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj҈ubj%)}(hlisth]hlist}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj҈ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned int maskh](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%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjӇhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjχhhhjhM ubah}(h]jʇah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hj̇hhubjb)}(hhh]jg)}(h'refine the interval value from the listh]h'refine the interval value from the list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahj̇hhhjhM 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)}(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)}(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.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}(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"the number of elements in the listh]h"the number of elements in the list}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjubj)}(h,``const unsigned int *list`` the value list h](j)}(h``const unsigned int *list``h]j)}(hjdh]hconst unsigned int *list}(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:32: ./sound/core/pcm_lib.chMhj^ubj)}(hhh]jg)}(hthe value listh]hthe value list}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjubj)}(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}(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.chMhj͉ubjg)}(hxRefines the interval value from the list. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.h]hxRefines the interval value from the list. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj͉ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj͉ubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj͉ubeh}(h]h ] kernelindentah"]h$]h&]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}(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.chM4ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhjRhM4ubj)}(hsnd_interval_rangesh]j%)}(hsnd_interval_rangesh]hsnd_interval_ranges}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhjRhM4ubj@)}(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&]uh1jKhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjgsbc.snd_interval_rangesasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hj͋hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hjsh]hi}(hjڋhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hunsigned int counth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcounth]hcount}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(h!const struct snd_interval *rangesh](jL)}(hj\h]hconst}(hjChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubjL)}(hjOh]hstruct}(hj^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hhh]j%)}(h snd_intervalh]h snd_interval}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]jc.snd_interval_rangesasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hrangesh]hranges}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hunsigned int maskh](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%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʌubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj@hhhjRhM4ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj<hhhjRhM4ubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhM4hj9hhubjb)}(hhh]jg)}(h1refine the interval value from the list of rangesh]h1refine the interval value from the list of ranges}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4hj-hhubah}(h]h ]h"]h$]h&]uh1jahj9hhhjRhM4ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhj]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)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjLubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjqh]hstruct snd_interval *i}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjkubj)}(hhh]jg)}(hthe interval value to refineh]hthe interval value to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhM5hjhubj)}(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&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjhubj)}(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.chM7hjݍubj)}(hhh]jg)}(hthe ranges listh]hthe ranges list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjݍubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjhubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjubj)}(hhh]jg)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hM8hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM8hjhubeh}(h]h ]h"]h$]h&]uh1jhjLubjg)}(h**Description**h]j)}(hjWh]h Description}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjLubjg)}(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.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjLubjg)}(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:32: ./sound/core/pcm_lib.chM=hjLubjg)}(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>hjLubeh}(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&]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_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>uh1jhjhhhjюhMubj@)}(hw(struct snd_pcm_runtime *runtime, unsigned int cond, int var, snd_pcm_hw_rule_func_t func, void *private, int dep, ...)h](jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_rule_addasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint varh](h)}(hinth]hint}(hjÏhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(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>uh1jEhjubjF)}(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$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j:c.snd_pcm_hw_rule_addasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfunch]hfunc}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *privateh](h)}(hvoidh]hvoid}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hprivateh]hprivate}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint deph](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj%)}(hdeph]hdep}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h...h]j)}(h...h]h...}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(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)}(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.chMhjސhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjюhMubeh}(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)}(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.chMhjubj)}(hhh]jg)}(hthe pcm runtime instanceh]hthe pcm runtime instance}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubj)}(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&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjUubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMhjubj)}(h%``int var`` the variable to evaluate h](j)}(h ``int var``h]j)}(hjh]hint var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe variable to evaluateh]hthe variable to evaluate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h8``snd_pcm_hw_rule_func_t func`` the evaluation function h](j)}(h``snd_pcm_hw_rule_func_t func``h]j)}(hj͑h]hsnd_pcm_hw_rule_func_t func}(hjϑhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjˑubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjǑubj)}(hhh]jg)}(hthe evaluation functionh]hthe evaluation function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjǑubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h$``int dep`` the dependent variables h](j)}(h ``int dep``h]j)}(hj?h]hint dep}(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.chMhj9ubj)}(hhh]jg)}(hthe dependent variablesh]hthe dependent variables}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhjubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjxh]h...}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chKhjrubj)}(hhh]jg)}(hvariable argumentsh]hvariable arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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.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}(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_maskh]j%)}(hsnd_pcm_hw_constraint_maskh]hsnd_pcm_hw_constraint_mask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_maskasbuh1hhj1ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(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]joc.snd_pcm_hw_constraint_maskasbuh1hhjubj)}(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>uh1jEhj-ubjF)}(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 reftargetjmodnameN classnameNjj)}j]joc.snd_pcm_hw_constraint_maskasbuh1hhjubj)}(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>uh1jEhj-ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&apply the given bitmap mask constrainth]h&apply the given bitmap mask constraint}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjEhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`jj`jjjuh1hhhhj]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)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjdubj)}(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&]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 maskh]h$hw_params variable to apply the mask}(hj۔hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjהhMhjؔubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjהhMhjubj)}(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.chMhjubj)}(hhh]jg)}(hthe bitmap maskh]hthe bitmap mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjdubjg)}(h**Description**h]j)}(hj6h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjdubjg)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjdubjg)}(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.chMhjdubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjdubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_constraint_mask64h]j%)}(hsnd_pcm_hw_constraint_mask64h]hsnd_pcm_hw_constraint_mask64}(hjÕhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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}(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)}jjŕsbc.snd_pcm_hw_constraint_mask64asbuh1hhjە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}(hj8hhhNhNubah}(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}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_mask64asbuh1hhjMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjוubjF)}(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]jc.snd_pcm_hw_constraint_mask64asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjȖhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjוubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj]hNhNubj)}(hX[**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the mask ``u_int64_t mask`` the 64bit bitmap mask **Description** Apply the constraint of the given bitmap mask to a 64-bit mask parameter. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj3h]hstruct snd_pcm_runtime *runtime}(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)}(hPCM runtime instanceh]hPCM runtime instance}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhj*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)}(hjlh]hsnd_pcm_hw_param_t var}(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$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&]uh1jhjfubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(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.}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(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_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}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhe/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 hjHhhhjZhMubj)}(hsnd_pcm_hw_constraint_integerh]j%)}(hsnd_pcm_hw_constraint_integerh]hsnd_pcm_hw_constraint_integer}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhMubj@)}(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)}jjosbc.snd_pcm_hw_constraint_integerasbuh1hhjubj)}(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)}(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_integerasbuh1hhjubj)}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjZhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjZhMubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhMhjAhhubjb)}(hhh]jg)}(h*apply an integer constraint to an intervalh]h*apply an integer constraint to an interval}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjQhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhj]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)}(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)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the integer constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjΙh]hsnd_pcm_hw_param_t var}(hjЙhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̙ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.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&]uh1jhjpubjg)}(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.chMhjpubjg)}(h9Apply the constraint of integer to an interval parameter.h]h9Apply the constraint of integer to an interval parameter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjpubjg)}(h **Return**h]j)}(hj0h]hReturn}(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:32: ./sound/core/pcm_lib.chMhjpubjg)}(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.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjpubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqhhhe/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 hjqhhhjhMubj)}(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>uh1jhjqhhhjhMubj@)}(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}(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$hj͚ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjҚmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_minmaxasbuh1hhjubj)}(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>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]jc.snd_pcm_hw_constraint_minmaxasbuh1hhj ubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hvarh]hvar}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int minh](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%)}(hminh]hmin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maxh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj˛hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjٛhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(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?hjqhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhMubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjjhhubjb)}(hhh]jg)}(h/apply a min/max range constraint to an intervalh]h/apply a min/max range constraint to an interval}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhj]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)}(hjAh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubj)}(hhh](j)}(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}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjZubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjWubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjWubj)}(h'``unsigned int min`` the minimal value h](j)}(h``unsigned int min``h]j)}(hjҜh]hunsigned int min}(hjԜhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjМubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj̜ubj)}(hhh]jg)}(hthe minimal valueh]hthe minimal value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj̜ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjWubj)}(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&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hthe maximal valueh]hthe maximal value}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjWubeh}(h]h ]h"]h$]h&]uh1jhj;ubjg)}(h**Description**h]j)}(hjFh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj;ubjg)}(huh1jhjhhhjhMubj@)}(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$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj՝sbc.snd_pcm_hw_constraint_listasbuh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj%)}(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_listasbuh1hhjubj)}(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_list *lh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_listh]hsnd_pcm_hw_constraint_list}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)c.snd_pcm_hw_constraint_listasbuh1hhjubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlh]hl}(hjlhhhNhNubah}(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*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&]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 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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjןh]hstruct snd_pcm_runtime *runtime}(hjٟhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj՟ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjџubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjџubeh}(h]h ]h"]h$]h&]uh1jhjhMhjΟubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(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)}(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)}(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.chMhjCubj)}(hhh]jg)}(h/hw_params variable to apply the list constrainth]h/hw_params variable to apply the list constraint}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhjΟubj)}(h4``const struct snd_pcm_hw_constraint_list *l`` list h](j)}(h.``const struct snd_pcm_hw_constraint_list *l``h]j)}(hjh]h*const struct snd_pcm_hw_constraint_list *l}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj|ubj)}(hhh]jg)}(hlisth]hlist}(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:32: ./sound/core/pcm_lib.chM hjubjg)}(h7Apply the list of constraints to an interval parameter.h]h7Apply the list of 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.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.chM!hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM"hjubeh}(h]h ] kernelindentah"]h$]h&]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 }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj7hM9ubj)}(hsnd_pcm_hw_constraint_rangesh]j%)}(hsnd_pcm_hw_constraint_rangesh]hsnd_pcm_hw_constraint_ranges}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj7hM9ubj@)}(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}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(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)}jjLsbc.snd_pcm_hw_constraint_rangesasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(hunsigned int condh](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%)}(hcondh]hcond}(hjhhhNhNubah}(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}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_rangesasbuh1hhj%ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%ubj%)}(hvarh]hvar}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubjF)}(h,const struct snd_pcm_hw_constraint_ranges *rh](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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(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_rangesasbuh1hhjmubj)}(h h]h }(hjȢhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hj֢hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hrh]hr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj^ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj%hhhj7hM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj7hM9ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hM9hjhhubjb)}(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.chM9hj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj7hM9ubeh}(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)}(hj/h]h Parameters}(hj1hhhNhNubah}(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)ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjNh]hstruct snd_pcm_runtime *runtime}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjHubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchM:hjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchM:hjEubj)}(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;hjEubj)}(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)}(hjh]hsnd_pcm_hw_param_t var}(hj£hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hjubj)}(hhh]jg)}(h9hw_params variable to apply the list of range constraintsh]h9hw_params variable to apply the list of range constraints}(hj٣hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjգhM<hj֣ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjգhM<hjEubj)}(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&]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)}(hrangesh]hranges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM=hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjEubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hj4h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(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.}(hjJhhhNhNubah}(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)}(hj[h]hReturn}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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.}(hjqhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM^ubj)}(hsnd_pcm_hw_constraint_ratnumsh]j%)}(hsnd_pcm_hw_constraint_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM^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}(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)}jjäsbc.snd_pcm_hw_constraint_ratnumsasbuh1hhj٤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}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj٤ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjդubjF)}(hunsigned int condh](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%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(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_ratnumsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjϥhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjդubjF)}(h-const struct snd_pcm_hw_constraint_ratnums *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_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hr}(hjZhhhNhNubah}(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'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&]uh1jahjhhhjhM^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_hjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjݦhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj٦hM_hjڦubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj٦hM_hjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM`hjubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM`hjubj)}(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)}(hj6h]hsnd_pcm_hw_param_t var}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMahj0ubj)}(hhh]jg)}(h2hw_params variable to apply the ratnums constrainth]h2hw_params variable to apply the ratnums constraint}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMahjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMahjubj)}(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)}(hjoh]h-const struct snd_pcm_hw_constraint_ratnums *r}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhjiubj)}(hhh]jg)}(hstruct snd_ratnums constriantsh]hstruct snd_ratnums constriants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMbhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMbhjubeh}(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.}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_ratdensasbuh1hhj(ubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjȨhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcondh]hcond}(hj֨hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jfc.snd_pcm_hw_constraint_ratdensasbuh1hhjubj)}(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)}(h-const struct snd_pcm_hw_constraint_ratdens *rh](jL)}(hj\h]hconst}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubjL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubh)}(hhh]j%)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jfc.snd_pcm_hw_constraint_ratdensasbuh1hhj3ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj%)}(hjh]hr}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h'apply ratdens constraint to a parameterh]h'apply ratdens constraint to a parameter}(hjҩhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjϩhhubah}(h]h ]h"]h$]h&]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)}(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.chMhj 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%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjLh]hunsigned int cond}(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)}(hcondition bitsh]hcondition bits}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMhj ubj)}(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&]uh1jhjhMhj ubj)}(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)}(hjh]h-const struct snd_pcm_hw_constraint_ratdens *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.chMhjubj)}(hhh]jg)}(hstruct snd_ratdens constriantsh]hstruct snd_ratdens constriants}(hjתhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjӪhMhjԪubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjӪhMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubjg)}(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.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}(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 }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhjLhMubj)}(hsnd_pcm_hw_constraint_msbitsh]j%)}(hsnd_pcm_hw_constraint_msbitsh]hsnd_pcm_hw_constraint_msbits}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhjLhMubj@)}(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}(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_msbitsasbuh1hhjwubj)}(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)}(hunsigned int widthh](h)}(hunsignedh]hunsigned}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubh)}(hinth]hint}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj%)}(hwidthh]hwidth}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubjF)}(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 }(hjhhhNhNubah}(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>uh1jEhjsubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj:hhhjLhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhjLhMubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhMhj3hhubjb)}(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&]uh1jahj3hhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj]hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``unsigned int width`` sample bits width ``unsigned int msbits`` msbits width **Description** This constraint will set the number of most significant bits (msbits) if a sample format with the specified width has been select. If width is set to 0 the msbits will be set for any sample format with a width larger than the specified msbits. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj2h]hstruct snd_pcm_runtime *runtime}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj,ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj)ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjkh]hunsigned int cond}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjeubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj)ubj)}(h%``unsigned int msbits`` msbits width h](j)}(h``unsigned int msbits``h]j)}(hjݭh]hunsigned int msbits}(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 msbits widthh]h msbits width}(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&]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.}(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)}(hj?h]hReturn}(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: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.}(hjUhhhNhNubah}(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}(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}(hj߮hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjܮubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_stepasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hcondh]hcond}(hjkhhhNhNubah}(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]jc.snd_pcm_hw_constraint_stepasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long steph](h)}(hunsignedh]hunsigned}(hj̯hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjȯubj)}(h h]h }(hjگhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjȯubh)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjȯubj)}(h h]h }(hjhhhNhNubah}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhMubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjyhhubjb)}(hhh]jg)}(hadd a hw constraint step ruleh]hadd a hw constraint step rule}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj+hhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhj]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)}(hjPh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjJubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjoh]hstruct snd_pcm_runtime *runtime}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjiubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(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&]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 step constrainth]h/hw_params variable to apply the step constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj۰ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(h!``unsigned long step`` step size h](j)}(h``unsigned long step``h]j)}(hjh]hunsigned long step}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h step sizeh]h step size}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjfubeh}(h]h ]h"]h$]h&]uh1jhjJubjg)}(h **Return**h]j)}(hjUh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjJubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjJubeh}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(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_pow2asbuh1hhjӱ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}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjӱubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjϱubjF)}(hunsigned int condh](h)}(hunsignedh]hunsigned}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hinth]hint}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(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_pow2asbuh1hhjubj)}(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ϱubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h#add a hw constraint power-of-2 ruleh]h#add a hw constraint power-of-2 rule}(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)}(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)}(hj4h]hstruct snd_pcm_runtime *runtime}(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:32: ./sound/core/pcm_lib.chMhj.ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhj+ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjmh]hunsigned int cond}(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:32: ./sound/core/pcm_lib.chMhjgubj)}(hhh]jg)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj+ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(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.}(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_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&]uh1hhj"hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj4hMubj)}(hsnd_pcm_hw_rule_noresampleh]j%)}(hsnd_pcm_hw_rule_noresampleh]hsnd_pcm_hw_rule_noresample}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhj4hMubj@)}(h9(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjIsbc.snd_pcm_hw_rule_noresampleasbuh1hhj_ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubjF)}(hunsigned int base_rateh](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%)}(h base_rateh]h base_rate}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjѴubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj[ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj"hhhj4hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj4hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMhjhhubjb)}(hhh]jg)}(h+add a rule to allow disabling hw resamplingh]h+add a rule to allow disabling hw resampling}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj4hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj4hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhj]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)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjSubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjxh]hstruct snd_pcm_runtime *runtime}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjrubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubj)}(hL``unsigned int base_rate`` the rate at which the hardware does not resample h](j)}(h``unsigned int base_rate``h]j)}(hjh]hunsigned int base_rate}(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)}(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ƵhMhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubjg)}(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 hjSubjg)}(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 hjSubeh}(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}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj?hM5ubj)}(hsnd_pcm_hw_param_valueh]j%)}(hsnd_pcm_hw_param_valueh]hsnd_pcm_hw_param_value}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj?hM5ubj@)}(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}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(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)}jjTsbc.snd_pcm_hw_param_valueasbuh1hhjjubj)}(h h]h }(hjǶhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjնhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(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_valueasbuh1hhjubj)}(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>uh1jEhjfubjF)}(hint *dirh](h)}(hinth]hint}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj?ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hdirh]hdir}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj?hM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj)hhhj?hM5ubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hM5hj&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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjhhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj?hM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjҷjjҷjjjuh1hhhhj]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)}(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.chM9hjַubj)}(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.chM6hjubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj4h]hsnd_pcm_hw_param_t var}(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:32: ./sound/core/pcm_lib.chM7hj.ubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM7hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM7hjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjmh]hint *dir}(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:32: ./sound/core/pcm_lib.chM8hjgubj)}(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&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubeh}(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.chM:hjַubjg)}(hnThe value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](hThe value for field }(hj̸hhhNhNubj)}(h**var**h]hvar}(hjԸhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̸ubh3 if it’s fixed in configuration space defined by }(hj̸hhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̸ubh. -}(hj̸hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̸ubh otherwise.}(hj̸hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjַubeh}(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}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMxubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj?hMxubj)}(hsnd_pcm_hw_param_firsth]j%)}(hsnd_pcm_hw_param_firsth]hsnd_pcm_hw_param_first}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj?hMxubj@)}(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}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(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_hw_param_firstasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hpcmh]hpcm}(hjǹhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h struct snd_pcm_hw_params *paramsh](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_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_firstasbuh1hhjܹubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjܹubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjܹubj%)}(hparamsh]hparams}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjܹubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j%)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhjLubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hint *dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(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,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&hhhj?hMxubeh}(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}(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.chM|hjubj)}(hhh](j)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hj,h]hstruct snd_pcm_substream *pcm}(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.chMyhj&ubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMyhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMyhj#ubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjeh]h struct snd_pcm_hw_params *params}(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.chMzhj_ubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMzhj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhMzhj#ubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM{hjubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{hj#ubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hj׻h]hint *dir}(hjٻhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjջubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM|hjѻubj)}(hhh]jg)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(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)}(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~hjubjg)}(hInside configuration space defined by **params** remove from **var** all values > minimum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hj6hhhNhNubj)}(h **params**h]hparams}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh remove from }(hj6hhhNhNubj)}(h**var**h]hvar}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh> all values > minimum. Reduce configuration space accordingly.}(hj6hhhNhNubeh}(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)}(hjkh]hReturn}(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.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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_pcm_hw_param_lasth]j%)}(hsnd_pcm_hw_param_lasth]hsnd_pcm_hw_param_last}(hjѼhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjͼubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hc(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jF)}(hstruct snd_pcm_substream *pcmh](jL)}(hjOh]hstruct}(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)}jjӼsbc.snd_pcm_hw_param_lastasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j'c.snd_pcm_hw_param_lastasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>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_param_lastasbuh1hhj˽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)}(hint *dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdirh]hdir}(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,refine config space and return maximum valueh]h,refine config space and return maximum value}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjghhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(h PCM instanceh]h PCM instance}(hjľhhhNhNubah}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj޾ubj)}(hhh]jg)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj޾ubeh}(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)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]jg)}(hparameter to retrieveh]hparameter to retrieve}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMhjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjVh]hint *dir}(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:32: ./sound/core/pcm_lib.chMhjPubj)}(hhh]jg)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hjohhhNhNubj)}(h``NULL``h]hNULL}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jfhjkhMhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjubeh}(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 }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh remove from }(hjhhhNhNubj)}(h**var**h]hvar}(hjϿhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh> all values < maximum. Reduce configuration space accordingly.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.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}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+hhhj=hMubj)}(hsnd_pcm_hw_params_bitsh]j%)}(hsnd_pcm_hw_params_bitsh]hsnd_pcm_hw_params_bits}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+hhhj=hMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(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)}jjRsbc.snd_pcm_hw_params_bitsasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubah}(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 number of bits per the sample.h]h&Get the number of bits per the sample.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj=hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhj]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}(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_pcm_hw_params *p`` hardware parameters h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjJh]h!const struct snd_pcm_hw_params *p}(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:32: ./sound/core/pcm_lib.chMhjDubj)}(hhh]jg)}(hhardware parametersh]hhardware parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hMhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMhjAubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_lib_ioctlasbuh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjShhhNhNubah}(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}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj%)}(hcmdh]hcmd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj]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)}(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:32: ./sound/core/pcm_lib.chM:hj9ubj)}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjXubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshM7hjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshM7hjUubj)}(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&]uh1jhjhM8hjUubj)}(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&]uh1jhjhM9hjUubeh}(h]h ]h"]h$]h&]uh1jhj9ubjg)}(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;hj9ubjg)}(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.}(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:hj9ubjg)}(h **Return**h]j)}(hj2h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=hj9ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hj9ubeh}(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}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjshhhe/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 hjshhhjhMRubj)}(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>uh1jhjshhhjhMRubj@)}(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?hjshhhjhMRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjhMRubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMRhjlhhubjb)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMRhj4hhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjhMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhj]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)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjSubj)}(hhh]j)}(hG``struct snd_pcm_substream *substream`` the instance of pcm substream. h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjxh]h#struct snd_pcm_substream *substream}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMThjrubj)}(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&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMThjoubah}(h]h ]h"]h$]h&]uh1jhjSubjg)}(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.chMVhjSubjg)}(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.chMUhjSubjg)}(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.chMXhjSubjg)}(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()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC instead since lock of PCM substream should be acquired in advance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhjhM]hjSubjg)}(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 }(hj1hhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hj;h]h snd_pcm_ops}(hj=hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhj1ubh" are done by the call of function:}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhjXhMbhjSubh bullet_list)}(hhh](h list_item)}(h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.h]jg)}(hjlh]h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMehjjubah}(h]h ]h"]h$]h&]uh1jhhjeubji)}(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.chMfhjubah}(h]h ]h"]h$]h&]uh1jhhjeubji)}(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.chMghjubah}(h]h ]h"]h$]h&]uh1jhhjeubeh}(h]h ]h"]h$]h&]bullet-uh1jchj{hMehjSubjg)}(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.chMihjSubeh}(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 hjhhhjhMubj)}(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>uh1jhjhhhjhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sbc.snd_pcm_period_elapsedasbuh1hhj#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>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)}(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&]uh1jahjhhhjhMubeh}(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&]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)}(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 }(hj<hhhNhNubj)}(h.``snd_pcm_period_elapsed_under_stream_lock()``h]h*snd_pcm_period_elapsed_under_stream_lock()}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh8 except for acquiring lock of PCM substream voluntarily.}(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)}(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.}(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_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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hstreamh]hstream}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&const struct snd_pcm_chmap_elem *chmaph](jL)}(hj\h]hconst}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(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_ctlsasbuh1hhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(hchmaph]hchmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint max_channelsh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h max_channelsh]h max_channels}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long private_valueh](h)}(hunsignedh]hunsigned}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hlongh]hlong}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,ubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj%)}(h private_valueh]h private_value}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_pcm_chmap **info_reth](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_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_ctlsasbuh1hhj}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%)}(hinfo_reth]hinfo_ret}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h'create channel-mapping control elementsh]h'create channel-mapping control elements}(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 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)}(hj1h]h Parameters}(hj3hhhNhNubah}(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+ubj)}(hhh](j)}(h2``struct snd_pcm *pcm`` the assigned PCM instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjPh]hstruct snd_pcm *pcm}(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)}(hthe assigned PCM instanceh]hthe assigned PCM instance}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehM hjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehM hjGubj)}(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 hjGubj)}(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 hjGubj)}(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 hjubj)}(hhh]jg)}(h)the max number of channels for the streamh]h)the max number of channels for the stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjGubj)}(hX``unsigned long private_value`` the value passed to each kcontrol's private_value field h](j)}(h``unsigned long private_value``h]j)}(hj4h]hunsigned long private_value}(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:32: ./sound/core/pcm_lib.chM hj.ubj)}(hhh]jg)}(h7the value passed to each kcontrol's private_value fieldh]h9the value passed to each kcontrol’s private_value field}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM hjGubj)}(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)}(hjmh]hstruct snd_pcm_chmap **info_ret}(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:32: ./sound/core/pcm_lib.chM hjgubj)}(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&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhM hjGubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKfubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hKfubj)}(hsnd_pcm_stream_lockh]j%)}(hsnd_pcm_stream_lockh]hsnd_pcm_stream_lock}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj"hKfubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.snd_pcm_stream_lockasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj"hKfubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj"hKfubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hKfhj 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.chKfhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj"hKfubeh}(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)}(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.chKjhjubj)}(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.chKghjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hKghj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKghj ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjPh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKihjubjg)}(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.}(hjfhhhNhNubah}(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.chKtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKtubj)}(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>uh1jhjhhhjhKtubj@)}(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 }(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?hjhhhjhKtubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKtubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKthjhhubjb)}(hhh]jg)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKthjRhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhj]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)}(hjwh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKxhjqubj)}(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.chKuhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKuhjubah}(h]h ]h"]h$]h&]uh1jhjqubjg)}(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.chKwhjqubjg)}(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.chKvhjqubeh}(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}(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 }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj$hKubj)}(hsnd_pcm_stream_lock_irqh]j%)}(hsnd_pcm_stream_lock_irqh]hsnd_pcm_stream_lock_irq}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj$hKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](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_pcm_substreamh]hsnd_pcm_substream}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jj9sbc.snd_pcm_stream_lock_irqasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(h substreamh]h substream}(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$hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj$hKubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hKhj 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 hhhj$hKubeh}(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)}(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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hKhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hKhjubah}(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&]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().}(hjhhhhNhNubah}(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 reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_unlock_irqasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(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?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}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjThhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhj]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)}(hjyh]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjsubj)}(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&]uh1jhjsubjg)}(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.chKhjsubjg)}(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.chKhjsubeh}(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}(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 }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj&hKubj)}(h snd_pcm_stream_unlock_irqrestoreh]j%)}(h snd_pcm_stream_unlock_irqrestoreh]h snd_pcm_stream_unlock_irqrestore}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj&hKubj@)}(h:(struct snd_pcm_substream *substream, unsigned long flags)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj;sb"c.snd_pcm_stream_unlock_irqrestoreasbuh1hhjQubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubjF)}(hunsigned 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>uh1jEhjMubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj&hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj&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&]jjjjAjjAjjjuh1hhhhj]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)}(hjKh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjEubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjjh]h#struct snd_pcm_substream *substream}(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:33: ./sound/core/pcm_native.chKhjdubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhKhjaubj)}(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&]uh1jhjhKhjaubeh}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjEubjg)}(h8This is a counter-part of snd_pcm_stream_lock_irqsave().h]h8This is a counter-part of snd_pcm_stream_lock_irqsave().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjEubeh}(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}(hj#hhhNhNubah}(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 }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hMubj)}(hsnd_pcm_hw_params_chooseh]j%)}(hsnd_pcm_hw_params_chooseh]hsnd_pcm_hw_params_choose}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hMubj@)}(hA(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](jF)}(hstruct snd_pcm_substream *pcmh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_pcm_hw_params_chooseasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(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>uh1jEhjXubjF)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hparamsh]hparams}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hMhjhhubjb)}(hhh]jg)}(h,choose a configuration defined by **params**h](h"choose a configuration defined by }(hjShhhNhNubj)}(h **params**h]hparams}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhj]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.chMhj}ubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj}ubjg)}(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 }(hj,hhhNhNubj)}(h **params**h]hparams}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubh. 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}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj}ubjg)}(h **Return**h]j)}(hjOh]hReturn}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj}ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj}ubeh}(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 }(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?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}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjQhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhj]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)}(hjvh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjpubj)}(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&]uh1jhjpubjg)}(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.chMhjpubjg)}(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.chMhjpubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj#hMubj)}(h snd_pcm_stoph]j%)}(h snd_pcm_stoph]h snd_pcm_stop}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj#hMubj@)}(h<(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jj8sbc.snd_pcm_stopasbuh1hhjNubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubjF)}(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>uh1jEhjJubeh}(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)}(h6try to stop all running streams in the substream grouph]h6try to stop all running streams in the substream group}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj#hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj]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)}(hj?h]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj9ubj)}(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:33: ./sound/core/pcm_native.chMhjXubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMhjUubj)}(h>``snd_pcm_state_t state`` PCM state after stopping the stream h](j)}(h``snd_pcm_state_t state``h]j)}(hjh]hsnd_pcm_state_t state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]jg)}(h#PCM state after stopping the streamh]h#PCM state after stopping the stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjUubeh}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj9ubjg)}(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.chMhj9ubjg)}(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.chMhj9ubjg)}(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.chMhj9ubeh}(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)}(hhhhNhNubah}(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 }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhjLhMubj)}(hsnd_pcm_drain_doneh]j%)}(hsnd_pcm_drain_doneh]hsnd_pcm_drain_done}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhjLhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](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_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjasbc.snd_pcm_drain_doneasbuh1hhjwubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubah}(h]h ]h"]h$]h&]j=j>uh1j?hj:hhhjLhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhjLhMubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhMhj3hhubjb)}(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&]uh1jahj3hhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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)}(hj h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM"hjubj)}(hhh]j)}(h:``struct snd_pcm_substream *substream`` the PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj?h]h#struct snd_pcm_substream *substream}(hjAhhhNhNubah}(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.chMhj9ubj)}(hhh]jg)}(hthe PCM substreamh]hthe PCM substream}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjzh]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM!hjubjg)}(hiAfter stopping, the state is changed to SETUP. Unlike snd_pcm_stop(), this affects only the given stream.h]hiAfter stopping, the state is changed to SETUP. Unlike snd_pcm_stop(), this affects only the given stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM#hjubjg)}(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$hjubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM-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>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&]uh1jKhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.snd_pcm_stop_xrunasbuh1hhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjohhhNhNubah}(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?hjhhhjhM-ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM-ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM-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&]uh1jahjhhhjhM-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.chM1hjubj)}(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)}(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.chM0hjubjg)}(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.}(hj8hhhNhNubah}(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)}(hjIh]hReturn}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(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.}(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.chM3hjubeh}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjKhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1hhhhj]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)}(hjph]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjjubj)}(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&]uh1jhjjubjg)}(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.chMhjjubjg)}(huh1jhjVhhhjhhMubj@)}(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)}jj}sbc.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}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hfileh]hfile}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jc.snd_pcm_prepareasbuh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(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?hjVhhhjhhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjhhMubah}(h]jMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhhMhjOhhubjb)}(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&]uh1jahjOhhhjhhMubeh}(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}(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}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hjUhhhNhNubah}(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.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM 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>uh1jhjhhhjhM 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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int cmdh](h)}(hunsignedh]hunsigned}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hcmdh]hcmd}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(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?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhM ubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjyhhubjb)}(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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhM 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&]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}(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)}(h PCM substreamh]h PCM substream}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hM hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM hjubj)}(h``unsigned int cmd`` IOCTL cmd h](j)}(h``unsigned int cmd``h]j)}(hjQh]hunsigned int cmd}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM hjKubj)}(hhh]jg)}(h IOCTL cmdh]h IOCTL cmd}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhM hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM hjubj)}(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.chM hjubj)}(hhh]jg)}(hIOCTL argumenth]hIOCTL argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM 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.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.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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM hjubeh}(h]h ] kernelindentah"]h$]h&]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}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM5ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj?hM5ubj)}(hsnd_pcm_lib_default_mmaph]j%)}(hsnd_pcm_lib_default_mmaph]hsnd_pcm_lib_default_mmap}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-hhhj?hM5ubj@)}(hB(struct snd_pcm_substream *substream, struct vm_area_struct *area)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(hsnd_pcm_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_lib_default_mmapasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hareah]harea}(hj7hhhNhNubah}(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?hM5ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj)hhhj?hM5ubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?hM5hj&hhubjb)}(hhh]jg)}(hDefault PCM data mmap functionh]hDefault PCM data mmap function}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM5hj^hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj?hM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhj]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.chM9hj}ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM6hjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(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.chM7hjubj)}(hhh]jg)}(hVMAh]hVMA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjubeh}(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.chM9hj}ubjg)}(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.}(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.chM8hj}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:33: ./sound/core/pcm_native.chM;hj}ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjShhhNhNubah}(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](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&]uh1hhj~hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhMPubj)}(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>uh1jhj~hhhjhMPubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct vm_area_struct *areah](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%)}(hvm_area_structh]hvm_area_struct}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jc.snd_pcm_lib_mmap_iomemasbuh1hhj-ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hareah]harea}(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~hhhjhMPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhMPubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMPhjwhhubjb)}(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.chMPhjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhMPubeh}(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.chMThjubj)}(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.chMQhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMQhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMQhjubj)}(h$``struct vm_area_struct *area`` VMA h](j)}(h``struct vm_area_struct *area``h]j)}(hj,h]hstruct vm_area_struct *area}(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.chMRhj&ubj)}(hhh]jg)}(hVMAh]hVMA}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMRhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMRhjubeh}(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.chMThjubjg)}(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.}(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.chMShjubjg)}(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.chMWhjubjg)}(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.chMXhjubeh}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_linkedasbuh1hhj ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hjihhhNhNubah}(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)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.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%)}(hjNh]hsnd_pcm_stream_lock_irqsave}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjkhMubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhMhjIhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjIhhhjkhMubeh}(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]hhubj)}(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&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(h irq flagsh]h irq flags}(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&]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().}(hjhhhhNhNubah}(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&]uh1jhjhMhj]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)}(hj!h]h 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.hhMhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjubj)}(h``flags`` irq flags h](j)}(h ``flags``h]j)}(hjZh]hflags}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjTubj)}(hhh]jg)}(h irq flagsh]h irq flags}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohMhjubeh}(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)}(hjh]h+snd_pcm_group_for_each_entry (s, substream)}(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#iterate over the linked substreams h]jg)}(h"iterate over the linked substreamsh]h"iterate over the linked substreams}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubah}(h]h ]h"]h$]h&]uh1jhj8hMhj]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)}(hjEh]h Parameters}(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.hhMhj?ubj)}(hhh](j)}(h``s`` the iterator h](j)}(h``s``h]j)}(hjdh]hs}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj^ubj)}(hhh]jg)}(h the iteratorh]h the iterator}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhj[ubj)}(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&]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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj?ubjg)}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(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.hhMhj?ubeh}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjahMubj)}(hsnd_pcm_runningh]j%)}(hsnd_pcm_runningh]hsnd_pcm_running}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjahMubj@)}(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_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?hjOhhhjahMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjahMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahMhjHhhubjb)}(hhh]jg)}(h1Check whether the substream is in a running stateh]h1Check whether the substream is in a running state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhjahMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1hhhhj]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)}(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.hhMhj/ubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check 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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjNubj)}(hhh]jg)}(hsubstream to checkh]hsubstream to check}(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 **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)}(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.hhMhj/ubeh}(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}(hjhhhNhNubah}(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}(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_set_stateasbuh1hhj 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_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]jKc.__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&]jjjjjjjjjuh1hhhhj]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)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hPCM runtime to seth]hPCM runtime to set}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMhjubj)}(h3``snd_pcm_state_t state`` the current state to set h](j)}(h``snd_pcm_state_t state``h]j)}(hjVh]hsnd_pcm_state_t state}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjPubj)}(hhh]jg)}(hthe current state to seth]hthe current state to set}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhMhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjubeh}(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 }(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]jc.bytes_to_samplesasbuh1hhj$ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjrhhhNhNubah}(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)}(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]jc.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>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)}(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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hj2h]hstruct snd_pcm_runtime *runtime}(hj4hhhNhNubah}(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.hhMhj,ubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj)ubj)}(h``ssize_t size`` size in bytes h](j)}(h``ssize_t size``h]j)}(hjkh]h ssize_t size}(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)}(h size in bytesh]h size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hbytes_to_framesh]j%)}(hj h]hbytes_to_frames}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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&]uh1jKhj9ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj]modnameN classnameNjj)}j]j c.bytes_to_framesasbuh1hhj9ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(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>uh1jEhj5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]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}(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)}(hjGh]hstruct snd_pcm_runtime *runtime}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjAubj)}(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``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&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjzubj)}(hhh]jg)}(h size in bytesh]h size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(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 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.hhMhj"ubeh}(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%)}(hj!h]hsamples_to_bytes}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(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}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jc.samples_to_bytesasbuh1hhjNubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjJubjF)}(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]jc.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>uh1jEhjJubeh}(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)}(h1Unit conversion of the size from samples to bytesh]h1Unit conversion of the size from samples to bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhj]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)}(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.hhMhj7ubj)}(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&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjVubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjSubj)}(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&]uh1jhjhMhjSubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(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.hhMhj7ubjg)}(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.hhMhj7ubeh}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jframes_to_bytessbc.frames_to_bytesasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj9hMubj)}(hframes_to_bytesh]j%)}(hj6h]hframes_to_bytes}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj9hMubj@)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j4c.frames_to_bytesasbuh1hhjcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(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]j4c.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>uh1jEhj_ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj9hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hMhj hhubjb)}(hhh]jg)}(h0Unit conversion of the size from frames to bytesh]h0Unit conversion of the size from frames to bytes}(hj0hhhNhNubah}(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 hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhj]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)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjLubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjqh]hstruct snd_pcm_runtime *runtime}(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)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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&]uh1jhjhMhjhubeh}(h]h ]h"]h$]h&]uh1jhjLubjg)}(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.hhMhjLubjg)}(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.hhMhjLubeh}(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}(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 }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj8hM ubj)}(h frame_alignedh]j%)}(h frame_alignedh]h frame_aligned}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj&hhhj8hM ubj@)}(h0(struct snd_pcm_runtime *runtime, ssize_t bytes)h](jF)}(hstruct snd_pcm_runtime *runtimeh](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_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.frame_alignedasbuh1hhjcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(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>uh1jEhj_ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj&hhhj8hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj"hhhj8hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hM hjhhubjb)}(hhh]jg)}(h0Check whether the byte size is aligned to framesh]h0Check whether the byte size is aligned to frames}(hj2hhhNhNubah}(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&]uh1jahjhhhj8hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj]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)}(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 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&]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 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.hhMhjNubeh}(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}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN 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 }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhjPhMubj)}(hsnd_pcm_lib_buffer_bytesh]j%)}(hjMh]hsnd_pcm_lib_buffer_bytes}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhjPhMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jKc.snd_pcm_lib_buffer_bytesasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubah}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhjPhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhjPhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhMhj!hhubjb)}(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&]uh1jahj!hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** buffer byte sizeh](jg)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(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}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(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 **Return**h]j)}(hj{h]hReturn}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hbuffer byte sizeh]hbuffer byte size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]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$hjubah}(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}(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}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]jc.snd_pcm_lib_period_bytesasbuh1hhjubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjihhhNhNubah}(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)}(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)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM(hjubjg)}(hperiod byte sizeh]hperiod byte size}(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}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_availsbc.snd_pcm_playback_availasbuh1hhjPhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjxhM1ubj)}(hsnd_pcm_playback_availh]j%)}(hjuh]hsnd_pcm_playback_avail}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjxhM1ubj@)}(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]jsc.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?hjPhhhjxhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjxhM1ubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjxhM1hjIhhubjb)}(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&]uh1jahjIhhhjxhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1hhhhj]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)}(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.hhM5hjCubj)}(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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM2hjbubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hM2hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hM2hj_ubah}(h]h ]h"]h$]h&]uh1jhjCubjg)}(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.hhM4hjCubjg)}(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.hhM3hjCubjg)}(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.hhM5hjCubjg)}(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.hhM6hjCubeh}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_availsbc.snd_pcm_capture_availasbuh1hhj hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMCubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj3hMCubj)}(hsnd_pcm_capture_availh]j%)}(hj0h]hsnd_pcm_capture_avail}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj3hMCubj@)}(h!(struct snd_pcm_runtime *runtime)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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j.c.snd_pcm_capture_availasbuh1hhj]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>uh1jEhjYubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj3hMCubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj3hMCubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hMChjhhubjb)}(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&]uh1jahjhhhj3hMCubeh}(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&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhjubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMDhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hMDhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj^h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhjubjg)}(h&Result is between 0 ... (boundary - 1)h]h&Result is between 0 ... (boundary - 1)}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMEhjubjg)}(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.hhMGhjubjg)}(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}(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}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]jc.snd_pcm_playback_hw_availasbuh1hhjubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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)}(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&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubah}(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.hhMVhjubjg)}(havailable frame sizeh]havailable frame size}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.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}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_hw_availsbc.snd_pcm_capture_hw_availasbuh1hhjZhhhd/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 hjZhhhjhM^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>uh1jhjZhhhjhM^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]j}c.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?hjZhhhjhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjhM^ubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM^hjShhubjb)}(hhh]jg)}(hGet the free space for captureh]hGet the free space for capture}(hj1hhhNhNubah}(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&]uh1jahjShhhjhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIjjIjjjuh1hhhhj]hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](jg)}(h**Parameters**h]j)}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMbhjMubj)}(hhh]j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjrh]hstruct snd_pcm_runtime *runtime}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM_hjlubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjiubah}(h]h ]h"]h$]h&]uh1jhjMubjg)}(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.hhMahjMubjg)}(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.hhMahjMubeh}(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}(hjhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_playback_readyasbuh1hhj+ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj'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)}(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.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)}(hj.h]h Description}(hj0hhhNhNubah}(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.hhMlhjubjg)}(hEChecks whether enough free space is available on the playback buffer.h]hEChecks whether enough free space is available on the playback buffer.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhjubjg)}(h **Return**h]j)}(hjUh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmhjubjg)}(h&Non-zero if available, or zero if not.h]h&Non-zero if available, or zero if not.}(hjkhhhNhNubah}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj0 hhhNhNubah}(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}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwhjW hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMwubeh}(h]h ](jfunctioneh"]h$]h&]jjjjr jjr jjjuh1hhhhj]hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Description** Checks whether enough capture data is available on the capture buffer. **Return** Non-zero if available, or zero if not.h](jg)}(h**Parameters**h]j)}(hj| h]h Parameters}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM{hjv ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj h]h#struct snd_pcm_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMxhj ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMxhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMxhj ubah}(h]h ]h"]h$]h&]uh1jhjv 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.hhMzhjv ubjg)}(hFChecks whether enough capture data is available on the capture buffer.h]hFChecks whether enough capture data is available on the capture buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMyhjv ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM{hjv ubjg)}(h&Non-zero if available, or zero if not.h]h&Non-zero if available, or zero if not.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM|hjv ubeh}(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}(hjB 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 }(hjQ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj> hhhjP hMubj)}(hsnd_pcm_playback_datah]j%)}(hsnd_pcm_playback_datah]hsnd_pcm_playback_data}(hjc hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj> hhhjP 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)}jje 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>uh1jEhjw ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj> hhhjP hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj: hhhjP hMubah}(h]j5 ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjP hMhj7 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&]uh1jahj7 hhhjP hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj 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&]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)}(hjC h]h#struct snd_pcm_substream *substream}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj= ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjX hMhjY ubah}(h]h ]h"]h$]h&]uh1jhj= ubeh}(h]h ]h"]h$]h&]uh1jhjX hMhj: ubah}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj~ h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj| ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(h6Checks whether any data exists on the playback buffer.h]h6Checks whether any data exists on the playback buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(hNon-zero if any data exists, or zero if not. If stop_threshold is bigger or equal to boundary, then this function returns always non-zero.h]hNon-zero if any data exists, or zero if not. If stop_threshold is bigger or equal to boundary, then this function returns always non-zero.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]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 }(hj4 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj# ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjE hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjG modnameN classnameNjj)}j]j)}jj sbc.snd_pcm_playback_emptyasbuh1hhj# ubj)}(h h]h }(hje hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj# ubj)}(hjh]h*}(hjs hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj# ubj%)}(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 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.}(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)}(hjM h]hReturn}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubjg)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hjc 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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhj hhubjb)}(hhh]jg)}(h)check whether the capture buffer is emptyh]h)check whether the capture buffer is empty}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjOhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhj]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)}(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)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjnubjg)}(h+Checks whether the capture buffer is empty.h]h+Checks whether the capture buffer is empty.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjnubjg)}(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"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.hhMhjnubeh}(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}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjHhMubj)}(hsnd_pcm_trigger_doneh]j%)}(hsnd_pcm_trigger_doneh]hsnd_pcm_trigger_done}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhjHhMubj@)}(hG(struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(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_trigger_doneasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubjF)}(h struct snd_pcm_substream *masterh](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]jc.snd_pcm_trigger_doneasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(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)}(hMark the master substreamh]hMark the master substream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjghhubah}(h]h ]h"]h$]h&]uh1jahj/hhhjHhMubeh}(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)}(hjh]h Description}(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)}(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.}(hj5hhhNhNubah}(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.}(hjDhhhNhNubah}(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}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhd/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 hjohhhjhMubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjhMubj)}(hparams_channelsh]j%)}(hparams_channelsh]hparams_channels}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjhMubj@)}(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_channelsasbuh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj3hhhNhNubah}(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?hjohhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkhhhjhMubah}(h]jfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhhubjb)}(hhh]jg)}(h-Get the number of channels from the hw paramsh]h-Get the number of channels from the hw params}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjfhhubah}(h]h ]h"]h$]h&]uh1jahjhhhhjhMubeh}(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&hhhj8hMubj@)}(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)}jjisb 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>uh1jEhj{ubah}(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&Get the sample rate from the hw paramsh]h&Get the sample rate 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.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhj]hNhNubj)}(h^**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the sample rateh](jg)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjDhhhNhNubah}(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)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjah]h!const struct snd_pcm_hw_params *p}(hjchhhNhNubah}(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}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjXubah}(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 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.hhMhj<ubeh}(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}(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}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubjL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj sbc.params_period_sizeasbuh1hhj6ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubah}(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.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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hMhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjSh]hReturn}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubjg)}(hthe period size in framesh]hthe period size in frames}(hjihhhNhNubah}(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_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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.params_periodsasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjehhhNhNubah}(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}(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_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}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKhhhd/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 hjKhhhj]hMubh)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKhhhj]hMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhj]hMubj)}(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>uh1jhjKhhhj]hMubj@)}(h#(const struct snd_pcm_hw_params *p)h]jF)}(h!const struct snd_pcm_hw_params *ph](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.params_buffer_sizeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjKhhhj]hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGhhhj]hMubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]hMhjDhhubjb)}(hhh]jg)}(h2Get the buffer size (in frames) from the hw paramsh]h2Get the buffer size (in frames) from the hw params}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjBhhubah}(h]h ]h"]h$]h&]uh1jahjDhhhj]hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhj]hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in framesh](jg)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjaubj)}(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&]uh1jhjhMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubjg)}(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.hhMhjaubjg)}(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.hhMhjaubeh}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM"ubh)}(hinth]hint}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhM"ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM"ubj)}(hparams_buffer_bytesh]j%)}(hparams_buffer_bytesh]hparams_buffer_bytes}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(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}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hsnd_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)}jjEsbc.params_buffer_bytesasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hjh]hp}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWubah}(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)}(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&]uh1jahjhhhjhM"ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj]hNhNubj)}(hg**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in bytesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(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.hhM&hjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hj=h]h!const struct snd_pcm_hw_params *p}(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#hj7ubj)}(hhh]jg)}(h hw paramsh]h hw params}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhM#hjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhM#hj4ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjxh]hReturn}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM%hjubjg)}(hthe buffer size in bytesh]hthe buffer size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM%hjubeh}(h]h ] kernelindentah"]h$]h&]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&]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_singleasbuh1hhjubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjShhhNhNubah}(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}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j4c.snd_pcm_hw_constraint_singleasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj%)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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>uh1jEhjubeh}(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}(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&]uh1jahjhhhjhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhj]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)}(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.hhMghj2ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjWh]hstruct snd_pcm_runtime *runtime}(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.hhMdhjQubj)}(hhh]jg)}(hPCM runtime instanceh]hPCM runtime instance}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhMdhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhMdhjNubj)}(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&]uh1jhjhMehjNubj)}(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&]uh1jhjhMfhjNubeh}(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.hhMhhj2ubjg)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhhj2ubeh}(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}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMyubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEhhhjWhMyubj)}(hsnd_pcm_format_cpu_endianh]j%)}(hsnd_pcm_format_cpu_endianh]hsnd_pcm_format_cpu_endian}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjEhhhjWhMyubj@)}(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)}jjlsbc.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>uh1jEhj~ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjEhhhjWhMyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhjWhMyubah}(h]j<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhMyhj>hhubjb)}(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&]uh1jahj>hhhjWhMyubeh}(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)}(hj"h]hsnd_pcm_format_t format}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMzhjubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMzhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMzhjubah}(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)}(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.}(hjshhhNhNubah}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hj8 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 the PCM sync idh]hset the PCM sync id}(hjb 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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjz jjz jjjuh1hhhhj]hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream **Description** Use the default PCM sync identifier for the specific card.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj~ ubj)}(hhh]j)}(h:``struct snd_pcm_substream *substream`` the pcm substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj h]h#struct snd_pcm_substream *substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj)}(hhh]jg)}(hthe pcm substreamh]hthe pcm substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj~ ubjg)}(h**Description**h]j)}(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: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.hhMhj~ ubeh}(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&]uh1hhj!hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj2!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!hhhj1!hMubj)}(hsnd_pcm_set_runtime_bufferh]j%)}(hsnd_pcm_set_runtime_bufferh]hsnd_pcm_set_runtime_buffer}(hjD!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!hhhj1!hMubj@)}(hB(struct snd_pcm_substream *substream, struct snd_dma_buffer *bufp)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj`!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\!ubj)}(h h]h }(hjm!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)}jjF!sbc.snd_pcm_set_runtime_bufferasbuh1hhj\!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\!ubj%)}(h substreamh]h substream}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjX!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*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj%)}(hbufph]hbufp}(hj)"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjX!ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj!hhhj1!hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj1!hMubah}(h]j!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1!hMhj!hhubjb)}(hhh]jg)}(hSet the PCM runtime bufferh]hSet the PCM runtime buffer}(hjS"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjP"hhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj1!hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjk"jjk"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)}(hju"h]h Parameters}(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.hhMhjo"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&]uh1jhjo"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.hhMhjo"ubjg)}(hCopy the buffer information to runtime->dma_buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](h8Copy the buffer information to runtime->dma_buffer when }(hj#hhhNhNubj)}(h**bufp**h]hbufp}(hj&#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubhA is non-NULL. Otherwise it clears the current buffer information.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjo"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}(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 }(hjn#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[#hhhjm#hMubj)}(hsnd_pcm_gettimeh]j%)}(hsnd_pcm_gettimeh]hsnd_pcm_gettime}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|#ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[#hhhjm#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 }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj $ubh)}(hhh]j%)}(h timespec64h]h timespec64}(hj,$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.$modnameN classnameNjj)}j]j#c.snd_pcm_gettimeasbuh1hhj $ubj)}(h h]h }(hjJ$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj $ubj)}(hjh]h*}(hjX$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj $ubj%)}(htvh]htv}(hje$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[#hhhjm#hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjW#hhhjm#hMubah}(h]jR#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjm#hMhjT#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&]uh1jahjT#hhhjm#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}(hj"%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%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}(hjc%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 }(hjr%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_%hhhjq%hM+ubj)}(hsnd_pcm_set_fixed_bufferh]j%)}(hsnd_pcm_set_fixed_bufferh]hsnd_pcm_set_fixed_buffer}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj_%hhhjq%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 }(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}(hjG&hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjC&ubj)}(h h]h }(hjT&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjC&ubh)}(hhh]j%)}(hdeviceh]hdevice}(hje&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjg&modnameN classnameNjj)}j]j%c.snd_pcm_set_fixed_bufferasbuh1hhjC&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%)}(hdatah]hdata}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjC&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?hj_%hhhjq%hM+ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[%hhhjq%hM+ubah}(h]jV%ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjq%hM+hjX%hhubjb)}(hhh]jg)}(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&]uh1jahjX%hhhjq%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)}(hj2'h]h Parameters}(hj4'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0'ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM/hj,'ubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjQ'h]h#struct snd_pcm_substream *substream}(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:34: ./include/sound/pcm.hhM,hjK'ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjf'hM,hjg'ubah}(h]h ]h"]h$]h&]uh1jhjK'ubeh}(h]h ]h"]h$]h&]uh1jhjf'hM,hjH'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-hjH'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.hjH'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/hjH'ubeh}(h]h ]h"]h$]h&]uh1jhj,'ubjg)}(h**Description**h]j)}(hj7(h]h Description}(hj9(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5(ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM1hj,'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.}(hjM(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM0hj,'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.hhM5hj,'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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM6hj,'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 }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(hjh]h*}(hj,)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj%)}(hpcmh]hpcm}(hj9)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubjF)}(hint typeh](h)}(hinth]hint}(hjR)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjN)ubj)}(h h]h }(hj`)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjN)ubj%)}(htypeh]htype}(hjn)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjN)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]j)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]j)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}(hjP*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM@hjM*hhubah}(h]h ]h"]h$]h&]uh1jahj(hhhj(hM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjh*jjh*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)}(hjr*h]h Parameters}(hjt*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp*ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhjl*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}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj+hMChj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj+hMChj*ubj)}(h;``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.hhMDhj6+ubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjU+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQ+hMDhjR+ubah}(h]h ]h"]h$]h&]uh1jhj6+ubeh}(h]h ]h"]h$]h&]uh1jhjQ+hMDhj*ubeh}(h]h ]h"]h$]h&]uh1jhjl*ubjg)}(h**Description**h]j)}(hjw+h]h Description}(hjy+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju+ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMFhjl*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.hhMEhjl*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.hhMIhjl*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.hhMJhjl*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}(hj,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}(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_pcm_substreamh]hsnd_pcm_substream}(hjS,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjP,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjU,modnameN classnameNjj)}j]j,c.snd_pcm_sgbuf_get_addrasbuh1hhj1,ubj)}(h h]h }(hjq,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1,ubj%)}(h substreamh]h substream}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-,ubjF)}(hunsigned int ofsh](h)}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hinth]hint}(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>uh1jEhj-,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&]jjjj-jj-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}(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#-ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream 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.hhMWhjB-ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hja-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]-hMWhj^-ubah}(h]h ]h"]h$]h&]uh1jhjB-ubeh}(h]h ]h"]h$]h&]uh1jhj]-hMWhj?-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-hMXhj?-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}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-hhhj.hMcubj)}(h h]h }(hj,.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}(hj>.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:.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}(hjZ.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjV.ubj)}(h h]h }(hjg.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV.ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjx.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjz.modnameN classnameNjj)}j]j)}jj@.sbc.snd_pcm_sgbuf_get_chunk_sizeasbuh1hhjV.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV.ubj%)}(h substreamh]h substream}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjV.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjR.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>uh1jEhjR.ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hj+/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hinth]hint}(hj9/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hjG/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hsizeh]hsize}(hjU/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjR.ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj-hhhj.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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMfhj0ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj0hMfhj/ubj)}(h+``unsigned int size`` byte size to examine h](j)}(h``unsigned int size``h]j)}(hj20h]hunsigned int size}(hj40hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj00ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghj,0ubj)}(hhh]jg)}(hbyte size to examineh]hbyte size to examine}(hjK0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjG0hMghjH0ubah}(h]h ]h"]h$]h&]uh1jhj,0ubeh}(h]h ]h"]h$]h&]uh1jhjG0hMghj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubjg)}(h **Return**h]j)}(hjm0h]hReturn}(hjo0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk0ubah}(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}(hj0hhhNhNubah}(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}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0hhhj0hMubj)}(hsnd_pcm_limit_isa_dma_sizeh]j%)}(hsnd_pcm_limit_isa_dma_sizeh]hsnd_pcm_limit_isa_dma_size}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj0hhhj0hMubj@)}(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 1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(h size_t *maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj'1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)1modnameN classnameNjj)}j]j)}jj0sbc.snd_pcm_limit_isa_dma_sizeasbuh1hhj 1ubj)}(h h]h }(hjG1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 1ubj)}(hjh]h*}(hjU1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 1ubj%)}(hmaxh]hmax}(hjb1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj0hhhj0hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0hhhj0hMubah}(h]j0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hMhj0hhubjb)}(hhh]jg)}(h.Get the max size fitting with ISA DMA transferh]h.Get the max size fitting with ISA DMA transfer}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj1hhubah}(h]h ]h"]h$]h&]uh1jahj0hhhj0hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhj]hNhNubj)}(hY**Parameters** ``int dma`` DMA number ``size_t *max`` pointer to store the max sizeh](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj1ubj)}(hhh](j)}(h``int dma`` DMA number h](j)}(h ``int dma``h]j)}(hj1h]hint dma}(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)}(h DMA numberh]h DMA number}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMhj1ubj)}(h-``size_t *max`` pointer to store the max sizeh](j)}(h``size_t *max``h]j)}(hj2h]h size_t *max}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj2ubj)}(hhh]jg)}(hpointer to store the max sizeh]hpointer to store the max size}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1ubeh}(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}(hj`2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\2hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hjn2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\2hhhjm2hMubh)}(hcharh]hchar}(hj|2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\2hhhjm2hMubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\2hhhjm2hMubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\2hhhjm2hMubj)}(hsnd_pcm_direction_nameh]j%)}(hsnd_pcm_direction_nameh]hsnd_pcm_direction_name}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\2hhhjm2hMubj@)}(h(int direction)h]jF)}(h int directionh](h)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj%)}(h directionh]h direction}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj\2hhhjm2hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjX2hhhjm2hMubah}(h]jS2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjm2hMhjU2hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj 3hhhNhNubah}(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&]uh1jahjU2hhhjm2hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#3jj#3jjjuh1hhhhj]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)}(hj-3h]h Parameters}(hj/3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+3ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj'3ubj)}(hhh]j)}(hB``int direction`` Stream's direction, one of SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hjL3h]h int direction}(hjN3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjF3ubj)}(hhh]jg)}(h/Stream's direction, one of SNDRV_PCM_STREAM_XXXh]h1Stream’s direction, one of SNDRV_PCM_STREAM_XXX}(hje3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhja3hMhjb3ubah}(h]h ]h"]h$]h&]uh1jhjF3ubeh}(h]h ]h"]h$]h&]uh1jhja3hMhjC3ubah}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj'3ubjg)}(h4Returns a string naming the direction of the stream.h]h4Returns a string naming the direction of the stream.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj'3ubeh}(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}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hMubh)}(hcharh]hchar}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhj3hMubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hMubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj3hMubj)}(hsnd_pcm_stream_strh]j%)}(hsnd_pcm_stream_strh]hsnd_pcm_stream_str}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj3hMubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj14hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj-4ubj)}(h h]h }(hj>4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-4ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjO4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ4modnameN classnameNjj)}j]j)}jj4sbc.snd_pcm_stream_strasbuh1hhj-4ubj)}(h h]h }(hjo4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-4ubj)}(hjh]h*}(hj}4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-4ubj%)}(h substreamh]h substream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)4ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhj3hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj3hMubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hMhj3hhubjb)}(hhh]jg)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj4hhhNhNubah}(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&]uh1jahj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhj]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)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj4h]h#struct snd_pcm_substream *substream}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj 5hMhj 5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj 5hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h **Return**h]j)}(hj05h]hReturn}(hj25hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.5ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubjg)}(h,A string naming the direction of the stream.h]h,A string naming the direction of the stream.}(hjF5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4ubeh}(h]h ] kernelindentah"]h$]h&]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}(hju5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjq5hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjq5hhhj5hMubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jsnd_pcm_chmap_substreamsbc.snd_pcm_chmap_substreamasbuh1hhjq5hhhj5hMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjq5hhhj5hMubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq5hhhj5hMubj)}(hsnd_pcm_chmap_substreamh]j%)}(hj5h]hsnd_pcm_chmap_substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjq5hhhj5hMubj@)}(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 6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j5c.snd_pcm_chmap_substreamasbuh1hhj5ubj)}(h h]h }(hj+6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj96hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(hinfoh]hinfo}(hjF6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(hunsigned int idxh](h)}(hunsignedh]hunsigned}(hj_6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[6ubj)}(h h]h }(hjm6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[6ubh)}(hinth]hint}(hj{6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[6ubj%)}(hidxh]hidx}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjq5hhhj5hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjm5hhhj5hMubah}(h]jh5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj5hMhjj5hhubjb)}(hhh]jg)}(h6get the PCM substream assigned to the given chmap infoh]h6get the PCM substream assigned to the given chmap info}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6hhubah}(h]h ]h"]h$]h&]uh1jahjj5hhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj]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)}(hj6h]h Parameters}(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.hhMhj6ubj)}(hhh](j)}(h1``struct snd_pcm_chmap *info`` chmap information h](j)}(h``struct snd_pcm_chmap *info``h]j)}(hj7h]hstruct snd_pcm_chmap *info}(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.hhMhj6ubj)}(hhh]jg)}(hchmap informationh]hchmap information}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj6ubj)}(h0``unsigned int idx`` the substream number index h](j)}(h``unsigned int idx``h]j)}(hj;7h]hunsigned int idx}(hj=7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj97ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj57ubj)}(hhh]jg)}(hthe substream number indexh]hthe substream number index}(hjT7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjP7hMhjQ7ubah}(h]h ]h"]h$]h&]uh1jhj57ubeh}(h]h ]h"]h$]h&]uh1jhjP7hMhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h **Return**h]j)}(hjv7h]hReturn}(hjx7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt7ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubjg)}(h/the matched PCM substream, or NULL if not foundh]h/the matched PCM substream, or NULL if not found}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubeh}(h]h ] kernelindentah"]h$]h&]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}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jpcm_format_to_bitssbc.pcm_format_to_bitsasbuh1hhj7hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7hhhj7hMubj)}(hpcm_format_to_bitsh]j%)}(hj7h]hpcm_format_to_bits}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj7hhhj7hMubj@)}(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}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j7c.pcm_format_to_bitsasbuh1hhj 8ubj)}(h h]h }(hj.8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj 8ubj%)}(h pcm_formath]h pcm_format}(hj<8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj 8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj7hhhj7hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhj7hMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hMhj7hhubjb)}(hhh]jg)}(h0Strong-typed conversion of pcm_format to bitwiseh]h0Strong-typed conversion of pcm_format to bitwise}(hjf8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjc8hhubah}(h]h ]h"]h$]h&]uh1jahj7hhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj~8jj~8jjjuh1hhhhj]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)}(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)}(h+``snd_pcm_format_t pcm_format`` PCM format h](j)}(h``snd_pcm_format_t pcm_format``h]j)}(hj8h]hsnd_pcm_format_t pcm_format}(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 PCM formath]h PCM format}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubjg)}(h **Return**h]j)}(hj8h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj8ubjg)}(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.hhMhj8ubeh}(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%)}(hj!9h]hpcm_for_each_format}(hj+9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'9ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj#9hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj9hhhj>9hMubah}(h]j9ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>9hMhj9hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj9hhhj>9hMubeh}(h]h ](jmacroeh"]h$]h&]jjjjW9jjW9jjjuh1hhhhj]hNhNubjg)}(h``pcm_for_each_format (f)``h]j)}(hj]9h]hpcm_for_each_format (f)}(hj_9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[9ubah}(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}(hjw9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjs9ubah}(h]h ]h"]h$]h&]uh1jhj9hMhj]hhubj)}(hF**Parameters** ``f`` the iterator variable in snd_pcm_format_t typeh](jg)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubj)}(hhh]j)}(h4``f`` the iterator variable in snd_pcm_format_t typeh](j)}(h``f``h]j)}(hj9h]hf}(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:34: ./include/sound/pcm.hhMhj9ubj)}(hhh]jg)}(h.the iterator variable in snd_pcm_format_t typeh]h.the iterator variable in snd_pcm_format_t type}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(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$: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 }(hj3:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj :hhhj2:hMubj)}(hsnd_pcm_format_signedh]j%)}(hsnd_pcm_format_signedh]hsnd_pcm_format_signed}(hjE:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj :hhhj2: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}(hjd:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjf:modnameN classnameNjj)}j]j)}jjG:sbc.snd_pcm_format_signedasbuh1hhj]:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]:ubj%)}(hformath]hformat}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjY:ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj :hhhj2:hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:hhhj2:hMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2:hMhj:hhubjb)}(hhh]jg)}(h%Check the PCM format is signed linearh]h%Check the PCM format is signed linear}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jahj:hhhj2:hMubeh}(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 signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.h](jg)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj:ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj:h]hsnd_pcm_format_t format}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj:ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubjg)}(h **Return**h]j)}(hj8;h]hReturn}(hj:;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6;ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj:ubjg)}(hs1 if the given PCM format is 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.}(hjN;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj:ubeh}(h]h ] kernelindentah"]h$]h&]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&]uh1hhjy;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 hjy;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>uh1jhjy;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?hjy;hhhj;hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhju;hhhj;hMubah}(h]jp;ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj;hMhjr;hhubjb)}(hhh]jg)}(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&]uh1jahjr;hhhj;hMubeh}(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 unsigned linear, 0 if signed linear, and a negative error code for non-linear formats.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:38: ./sound/core/pcm_misc.chMhj1<ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjV<h]hsnd_pcm_format_t format}(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:38: ./sound/core/pcm_misc.chMhjP<ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjo<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk<hMhjl<ubah}(h]h ]h"]h$]h&]uh1jhjP<ubeh}(h]h ]h"]h$]h&]uh1jhjk<hMhjM<ubah}(h]h ]h"]h$]h&]uh1jhj1<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.chMhj1<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.chMhj1<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 }(hj6=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hformath]hformat}(hjD=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}(hjn=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'hjk=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}(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.chM3ubj)}(h h]h }(hj>>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+>hhhj=>hM3ubj)}(hsnd_pcm_format_little_endianh]j%)}(hsnd_pcm_format_little_endianh]hsnd_pcm_format_little_endian}(hjP>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL>ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+>hhhj=>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}(hjo>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq>modnameN classnameNjj)}j]j)}jjR>sbc.snd_pcm_format_little_endianasbuh1hhjh>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjh>ubj%)}(hformath]hformat}(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=>hM3ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj'>hhhj=>hM3ubah}(h]j">ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj=>hM3hj$>hhubjb)}(hhh]jg)}(h%Check 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$>hhhj=>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}(hj!?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hM4hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hM4hj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubjg)}(h **Return**h]j)}(hjC?h]hReturn}(hjE?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA?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.}(hjY?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}(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.chMFhj@hhubah}(h]h ]h"]h$]h&]uh1jahj}?hhhj?hMFubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8@jj8@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)}(hjB@h]h Parameters}(hjD@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.chMJhj<@ubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hja@h]hsnd_pcm_format_t format}(hjc@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.chMGhj[@ubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjz@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjv@hMGhjw@ubah}(h]h ]h"]h$]h&]uh1jhj[@ubeh}(h]h ]h"]h$]h&]uh1jhjv@hMGhjX@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.chMIhj<@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.chMIhj<@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}(hjAhhhNhNubah}(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}(hj!AhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#AmodnameN classnameNjj)}j]j)}jjAsbc.snd_pcm_format_widthasbuh1hhjAubj)}(h h]h }(hjAAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj%)}(hformath]hformat}(hjOAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubah}(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}(hjyAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMXhjvAhhubah}(h]h ]h"]h$]h&]uh1jahj@hhhj@hMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhj9hNhNubj)}(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)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM\hjAubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjAh]hsnd_pcm_format_t format}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMYhjAubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMYhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMYhjAubah}(h]h ]h"]h$]h&]uh1jhjAubjg)}(h **Return**h]j)}(hjAh]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM[hjAubjg)}(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 BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM[hjAubeh}(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}(hj:BhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6Bhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMkubj)}(h h]h }(hjIBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6BhhhjHBhMkubj)}(hsnd_pcm_format_physical_widthh]j%)}(hsnd_pcm_format_physical_widthh]hsnd_pcm_format_physical_width}(hj[BhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6BhhhjHBhMkubj@)}(h(snd_pcm_format_t format)h]jF)}(hsnd_pcm_format_t formath](h)}(hhh]j%)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjzBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|BmodnameN classnameNjj)}j]j)}jj]Bsbc.snd_pcm_format_physical_widthasbuh1hhjsBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsBubj%)}(hformath]hformat}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoBubah}(h]h ]h"]h$]h&]j=j>uh1j?hj6BhhhjHBhMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2BhhhjHBhMkubah}(h]j-Bah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHBhMkhj/Bhhubjb)}(hhh]jg)}(h+return the physical bit-width of the formath]h+return the physical bit-width of the format}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMkhjBhhubah}(h]h ]h"]h$]h&]uh1jahj/BhhhjHBhMkubeh}(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)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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)}(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.chMlhj Cubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hj,ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(ChMlhj)Cubah}(h]h ]h"]h$]h&]uh1jhj Cubeh}(h]h ]h"]h$]h&]uh1jhj(ChMlhj Cubah}(h]h ]h"]h$]h&]uh1jhjBubjg)}(h **Return**h]j)}(hjNCh]hReturn}(hjPChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLCubah}(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.}(hjdChhhNhNubah}(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}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jsnd_pcm_format_sizesbc.snd_pcm_format_sizeasbuh1hhjChhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM~ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjChM~ubj)}(hsnd_pcm_format_sizeh]j%)}(hjCh]hsnd_pcm_format_size}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjChM~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}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]jCc.snd_pcm_format_sizeasbuh1hhjCubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj%)}(hformath]hformat}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubjF)}(hsize_t samplesh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj0DhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-Dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2DmodnameN classnameNjj)}j]jCc.snd_pcm_format_sizeasbuh1hhj)Dubj)}(h h]h }(hjNDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)Dubj%)}(hsamplesh]hsamples}(hj\DhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)Dubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjCubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjChM~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjChM~ubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjChM~hjChhubjb)}(hhh]jg)}(h3return the byte size of samples on the given formath]h3return the byte size of samples on the given format}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM~hjDhhubah}(h]h ]h"]h$]h&]uh1jahjChhhjChM~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDjjDjjjuh1hhhhj9hNhNubj)}(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)}(hjDh]h Parameters}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjDubj)}(hhh](j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjDh]hsnd_pcm_format_t format}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjDubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMhjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhMhjDubj)}(h!``size_t samples`` sampling rate h](j)}(h``size_t samples``h]j)}(hjEh]hsize_t samples}(hjEhhhNhNubah}(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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjDubeh}(h]h ]h"]h$]h&]uh1jhjDubjg)}(h **Return**h]j)}(hj;Eh]hReturn}(hj=EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Eubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjDubjg)}(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.}(hjQEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjDubeh}(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}(hjEhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|Ehhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|EhhhjEhMubh)}(hunsignedh]hunsigned}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj|EhhhjEhMubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|EhhhjEhMubh)}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj|EhhhjEhMubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|EhhhjEhMubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|EhhhjEhMubj)}(hsnd_pcm_format_silence_64h]j%)}(hsnd_pcm_format_silence_64h]hsnd_pcm_format_silence_64}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj|EhhhjEhMubj@)}(h(snd_pcm_format_t format)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)}jjEsbc.snd_pcm_format_silence_64asbuh1hhjEubj)}(h h]h }(hj$FhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hformath]hformat}(hj2FhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubah}(h]h ]h"]h$]h&]j=j>uh1j?hj|EhhhjEhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxEhhhjEhMubah}(h]jsEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhMhjuEhhubjb)}(hhh]jg)}(h'return the silent data in 8 bytes arrayh]h'return the silent data in 8 bytes array}(hj\FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjYFhhubah}(h]h ]h"]h$]h&]uh1jahjuEhhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtFjjtFjjjuh1hhhhj9hNhNubj)}(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)}(hj~Fh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Fubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjxFubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjFh]hsnd_pcm_format_t format}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjFubj)}(hhh]jg)}(hthe format to checkh]hthe format to check}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjxFubjg)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjxFubjg)}(h0The format pattern to fill or ``NULL`` if error.h](hThe format pattern to fill or }(hjFhhhNhNubj)}(h``NULL``h]hNULL}(hjFhhhNhNubah}(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.chMhjxFubeh}(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}(hj/GhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+Ghhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hj>GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+Ghhhj=GhMubj)}(hsnd_pcm_format_set_silenceh]j%)}(hsnd_pcm_format_set_silenceh]hsnd_pcm_format_set_silence}(hjPGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+Ghhhj=GhMubj@)}(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}(hjoGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqGmodnameN classnameNjj)}j]j)}jjRGsbc.snd_pcm_format_set_silenceasbuh1hhjhGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhGubj%)}(hformath]hformat}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdGubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hdatah]hdata}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdGubjF)}(hunsigned int samplesh](h)}(hunsignedh]hunsigned}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hj"HhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj%)}(hsamplesh]hsamples}(hj0HhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdGubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj+Ghhhj=GhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj'Ghhhj=GhMubah}(h]j"Gah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj=GhMhj$Ghhubjb)}(hhh]jg)}(h"set the silence data on the bufferh]h"set the silence data on the buffer}(hjZHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjWHhhubah}(h]h ]h"]h$]h&]uh1jahj$Ghhhj=GhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrHjjrHjjjuh1hhhhj9hNhNubj)}(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)}(hj|Hh]h Parameters}(hj~HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzHubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjvHubj)}(hhh](j)}(h+``snd_pcm_format_t format`` the PCM format h](j)}(h``snd_pcm_format_t format``h]j)}(hjHh]hsnd_pcm_format_t format}(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:38: ./sound/core/pcm_misc.chMhjHubj)}(hhh]jg)}(hthe PCM formath]hthe PCM format}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(h"``void *data`` the buffer pointer h](j)}(h``void *data``h]j)}(hjHh]h void *data}(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:38: ./sound/core/pcm_misc.chMhjHubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjHubj)}(h>``unsigned int samples`` the number of samples to set silence h](j)}(h``unsigned int samples``h]j)}(hj Ih]hunsigned int samples}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Iubah}(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)}(h$the number of samples to set silenceh]h$the number of samples to set silence}(hj&IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"IhMhj#Iubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhj"IhMhjHubeh}(h]h ]h"]h$]h&]uh1jhjvHubjg)}(h**Description**h]j)}(hjHIh]h Description}(hjJIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFIubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjvHubjg)}(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.}(hj^IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjvHubjg)}(h **Return**h]j)}(hjoIh]hReturn}(hjqIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmIubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjvHubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjvHubeh}(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}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhjIhMubj)}(hsnd_pcm_hw_limit_ratesh]j%)}(hsnd_pcm_hw_limit_ratesh]hsnd_pcm_hw_limit_rates}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhjIhMubj@)}(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}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjIsbc.snd_pcm_hw_limit_ratesasbuh1hhjIubj)}(h h]h }(hj/JhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hj=JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hhwh]hhw}(hjJJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubah}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhjIhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhjIhMubah}(h]jIah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjIhMhjIhhubjb)}(hhh]jg)}(h"determine rate_min/rate_max fieldsh]h"determine rate_min/rate_max fields}(hjtJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjqJhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjIhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj9hNhNubj)}(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)}(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:38: ./sound/core/pcm_misc.chMhjJubj)}(hhh]j)}(h4``struct snd_pcm_hardware *hw`` the pcm hw instance h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjJh]hstruct snd_pcm_hardware *hw}(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:38: ./sound/core/pcm_misc.chMhjJubj)}(hhh]jg)}(hthe pcm hw instanceh]hthe pcm hw instance}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjJubjg)}(h**Description**h]j)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjJubjg)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjJubjg)}(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.chMhjJubjg)}(hZero if successful.h]hZero if successful.}(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.chMhjJubeh}(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}(hj\KhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXKhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj)}(h h]h }(hjkKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXKhhhjjKhMubh)}(hinth]hint}(hjyKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXKhhhjjKhMubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXKhhhjjKhMubj)}(hsnd_pcm_rate_to_rate_bith]j%)}(hsnd_pcm_rate_to_rate_bith]hsnd_pcm_rate_to_rate_bit}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjXKhhhjjKhMubj@)}(h(unsigned int rate)h]jF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(hrateh]hrate}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubah}(h]h ]h"]h$]h&]j=j>uh1j?hjXKhhhjjKhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjTKhhhjjKhMubah}(h]jOKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjKhMhjQKhhubjb)}(hhh]jg)}(h.converts sample rate to SNDRV_PCM_RATE_xxx bith]h.converts sample rate to SNDRV_PCM_RATE_xxx bit}(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&]uh1jahjQKhhhjjKhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/Ljj/Ljjjuh1hhhhj9hNhNubj)}(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)}(hj9Lh]h Parameters}(hj;LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Lubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj3Lubj)}(hhh]j)}(h1``unsigned int rate`` the sample rate to convert h](j)}(h``unsigned int rate``h]j)}(hjXLh]hunsigned int rate}(hjZLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjRLubj)}(hhh]jg)}(hthe sample rate to converth]hthe sample rate to convert}(hjqLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmLhMhjnLubah}(h]h ]h"]h$]h&]uh1jhjRLubeh}(h]h ]h"]h$]h&]uh1jhjmLhMhjOLubah}(h]h ]h"]h$]h&]uh1jhj3Lubjg)}(h **Return**h]j)}(hjLh]hReturn}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj3Lubjg)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj3Lubeh}(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)}(huh1jhjLhhhjLhMubj@)}(h(unsigned int rate_bit)h]jF)}(hunsigned int rate_bith](h)}(hunsignedh]hunsigned}(hj1MhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-Mubj)}(h h]h }(hj?MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-Mubh)}(hinth]hint}(hjMMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-Mubj)}(h h]h }(hj[MhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-Mubj%)}(hrate_bith]hrate_bit}(hjiMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-Mubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)Mubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhjLhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjLhMubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhMhjLhhubjb)}(hhh]jg)}(h.converts SNDRV_PCM_RATE_xxx bit to sample rateh]h.converts SNDRV_PCM_RATE_xxx bit to sample rate}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jahjLhhhjLhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhj9hNhNubj)}(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)}(hjMh]h Parameters}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubj)}(hhh]j)}(h2``unsigned int rate_bit`` the rate bit to convert h](j)}(h``unsigned int rate_bit``h]j)}(hjMh]hunsigned int rate_bit}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubj)}(hhh]jg)}(hthe rate bit to converth]hthe rate bit to convert}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubjg)}(h **Return**h]j)}(hjNh]hReturn}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Nubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubjg)}(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.}(hj%NhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjMubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj9hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_pcm_rate_mask_intersect (C function)c.snd_pcm_rate_mask_intersecthNtauh1hhj9hhhNhNubh)}(hhh](h)}(hUunsigned int snd_pcm_rate_mask_intersect (unsigned int rates_a, unsigned int rates_b)h]h)}(hTunsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a, unsigned int rates_b)h](h)}(hunsignedh]hunsigned}(hjTNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPNhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM1ubj)}(h h]h }(hjcNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPNhhhjbNhM1ubh)}(hinth]hint}(hjqNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPNhhhjbNhM1ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPNhhhjbNhM1ubj)}(hsnd_pcm_rate_mask_intersecth]j%)}(hsnd_pcm_rate_mask_intersecth]hsnd_pcm_rate_mask_intersect}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPNhhhjbNhM1ubj@)}(h,(unsigned int rates_a, unsigned int rates_b)h](jF)}(hunsigned int rates_ah](h)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hrates_ah]hrates_a}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubjF)}(hunsigned int rates_bh](h)}(hunsignedh]hunsigned}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj OhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj(OhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hrates_bh]hrates_b}(hj6OhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjNubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPNhhhjbNhM1ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLNhhhjbNhM1ubah}(h]jGNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbNhM1hjINhhubjb)}(hhh]jg)}(h0computes the intersection between two rate masksh]h0computes the intersection between two rate masks}(hj`OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM1hj]Ohhubah}(h]h ]h"]h$]h&]uh1jahjINhhhjbNhM1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxOjjxOjjjuh1hhhhj9hNhNubj)}(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)}(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:38: ./sound/core/pcm_misc.chM5hj|Oubj)}(hhh](j)}(h-``unsigned int rates_a`` The first rate mask h](j)}(h``unsigned int rates_a``h]j)}(hjOh]hunsigned int rates_a}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM2hjOubj)}(hhh]jg)}(hThe first rate maskh]hThe first rate mask}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhM2hjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhM2hjOubj)}(h.``unsigned int rates_b`` The second rate mask h](j)}(h``unsigned int rates_b``h]j)}(hjOh]hunsigned int rates_b}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM3hjOubj)}(hhh]jg)}(hThe second rate maskh]hThe second rate mask}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhM3hjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhM3hjOubeh}(h]h ]h"]h$]h&]uh1jhj|Oubjg)}(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:38: ./sound/core/pcm_misc.chM5hj|Oubjg)}(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.}(hj+PhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM4hj|Oubjg)}(h **Return**h]j)}(hjPhhhNhNubah}(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:38: ./sound/core/pcm_misc.chM8hj|Oubjg)}(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.}(hjRPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM9hj|Oubeh}(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}(hjsPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpPhhhhhK)ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_lib_preallocate_free (C function)c.snd_pcm_lib_preallocate_freehNtauh1hhjpPhhhNhNubh)}(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}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK|ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhK|ubj)}(hsnd_pcm_lib_preallocate_freeh]j%)}(hsnd_pcm_lib_preallocate_freeh]hsnd_pcm_lib_preallocate_free}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjPhK|ubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjPsbc.snd_pcm_lib_preallocate_freeasbuh1hhjPubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hj#QhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(h substreamh]h substream}(hj0QhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubah}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjPhK|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjPhK|ubah}(h]jPah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhK|hjPhhubjb)}(hhh]jg)}(h;release the preallocated buffer of the specified substream.h]h;release the preallocated buffer of the specified substream.}(hjZQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK|hjWQhhubah}(h]h ]h"]h$]h&]uh1jahjPhhhjPhK|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrQjjrQjjjuh1hhhhjpPhNhNubj)}(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)}(hj|Qh]h Parameters}(hj~QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzQubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjvQubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjQh]h#struct snd_pcm_substream *substream}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chK}hjQubj)}(hhh]jg)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhK}hjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhK}hjQubah}(h]h ]h"]h$]h&]uh1jhjvQubjg)}(h**Description**h]j)}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjvQubjg)}(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.chK~hjvQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_pcm_lib_preallocate_free_for_all (C function)&c.snd_pcm_lib_preallocate_free_for_allhNtauh1hhjpPhhhNhNubh)}(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}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKubj)}(h h]h }(hj*RhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhj)RhKubj)}(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}(hjuh1jhjRhhhj)RhKubj@)}(h(struct snd_pcm *pcm)h]jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjXRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTRubj)}(h h]h }(hjeRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTRubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjvRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxRmodnameN classnameNjj)}j]j)}jj>Rsb&c.snd_pcm_lib_preallocate_free_for_allasbuh1hhjTRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTRubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTRubj%)}(hpcmh]hpcm}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPRubah}(h]h ]h"]h$]h&]j=j>uh1j?hjRhhhj)RhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhj)RhKubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)RhKhjRhhubjb)}(hhh]jg)}(h,release all pre-allocated buffers on the pcmh]h,release all pre-allocated buffers on the 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.chKhjRhhubah}(h]h ]h"]h$]h&]uh1jahjRhhhj)RhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1hhhhjpPhNhNubj)}(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)}(hjSh]hstruct snd_pcm *pcm}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjSubj)}(hhh]jg)}(hthe pcm instanceh]hthe pcm instance}(hj5ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1ShKhj2Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj1ShKhjSubah}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hjWSh]h Description}(hjYShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUSubah}(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.}(hjmShhhNhNubah}(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&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_lib_preallocate_pages (C function)c.snd_pcm_lib_preallocate_pageshNtauh1hhjpPhhhNhNubh)}(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}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjShhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9ubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjShM9ubj)}(hsnd_pcm_lib_preallocate_pagesh]j%)}(hsnd_pcm_lib_preallocate_pagesh]hsnd_pcm_lib_preallocate_pages}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjShM9ubj@)}(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}(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_pcm_lib_preallocate_pagesasbuh1hhjSubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hj%ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(h substreamh]h substream}(hj2ThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(hint typeh](h)}(hinth]hint}(hjKThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGTubj)}(h h]h }(hjYThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGTubj%)}(htypeh]htype}(hjgThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|Tubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|Tubh)}(hhh]j%)}(hdeviceh]hdevice}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jTc.snd_pcm_lib_preallocate_pagesasbuh1hhj|Tubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|Tubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|Tubj%)}(hdatah]hdata}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|Tubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jTc.snd_pcm_lib_preallocate_pagesasbuh1hhjTubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hsizeh]hsize}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj;UhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8Uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=UmodnameN classnameNjj)}j]jTc.snd_pcm_lib_preallocate_pagesasbuh1hhj4Uubj)}(h h]h }(hjYUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4Uubj%)}(hmaxh]hmax}(hjgUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4Uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjSubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjShhhjShM9ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjShhhjShM9ubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShM9hjShhubjb)}(hhh]jg)}(h%pre-allocation for the given DMA typeh]h%pre-allocation for the given DMA type}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9hjUhhubah}(h]h ]h"]h$]h&]uh1jahjShhhjShM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhjpPhNhNubj)}(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)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjUubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjUh]h#struct snd_pcm_substream *substream}(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)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhM:hjUubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjUhM:hjUubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj Vh]hint type}(hj VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Vubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM;hjVubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj$VhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj VhM;hj!Vubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhj VhM;hjUubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjDVh]hstruct device *data}(hjFVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBVubah}(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>Vubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hj]VhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYVhM<hjZVubah}(h]h ]h"]h$]h&]uh1jhj>Vubeh}(h]h ]h"]h$]h&]uh1jhjYVhM<hjUubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hj}Vh]h size_t size}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Vubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM=hjwVubj)}(hhh]jg)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhM=hjVubah}(h]h ]h"]h$]h&]uh1jhjwVubeh}(h]h ]h"]h$]h&]uh1jhjVhM=hjUubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjVh]h size_t max}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM>hjVubj)}(hhh]jg)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhM>hjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhM>hjUubeh}(h]h ]h"]h$]h&]uh1jhjUubjg)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM@hjUubjg)}(h0Do pre-allocation for the given DMA buffer type.h]h0Do pre-allocation for the given DMA buffer type.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM?hjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_pcm_lib_preallocate_pages_for_all (C function)'c.snd_pcm_lib_preallocate_pages_for_allhNtauh1hhjpPhhhNhNubh)}(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}(hj6WhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2Whhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKubj)}(h h]h }(hjEWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2WhhhjDWhMKubj)}(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}(hjWWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2WhhhjDWhMKubj@)}(hD(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](jF)}(hstruct snd_pcm *pcmh](jL)}(hjOh]hstruct}(hjsWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoWubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjYWsb'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjoWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoWubj%)}(hpcmh]hpcm}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkWubjF)}(hint typeh](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(htypeh]htype}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkWubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXubj)}(h h]h }(hj(XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hj6XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hdatah]hdata}(hjCXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkWubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj_XhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjaXmodnameN classnameNjj)}j]jW'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjXXubj)}(h h]h }(hj}XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXXubj%)}(hsizeh]hsize}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkWubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jW'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj%)}(hmaxh]hmax}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj2WhhhjDWhMKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.WhhhjDWhMKubah}(h]j)Wah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDWhMKhj+Whhubjb)}(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&]uh1jahj+WhhhjDWhMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYjjYjjjuh1hhhhjpPhNhNubj)}(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)}(hjYh]h Parameters}(hj!YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhjYubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj>Yh]hstruct snd_pcm *pcm}(hj@YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuh1jhjZhhhjZhM^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}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j)}jjZsbc.snd_pcm_set_managed_bufferasbuh1hhjZubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hj+[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(h substreamh]h substream}(hj8[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hint typeh](h)}(hinth]hint}(hjQ[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjM[ubj)}(h h]h }(hj_[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjM[ubj%)}(htypeh]htype}(hjm[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjM[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hstruct device *datah](jL)}(hjOh]hstruct}(hj[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j[c.snd_pcm_set_managed_bufferasbuh1hhj[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hdatah]hdata}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j[c.snd_pcm_set_managed_bufferasbuh1hhj[ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj%)}(hsizeh]hsize}(hj%\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjA\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjC\modnameN classnameNjj)}j]j[c.snd_pcm_set_managed_bufferasbuh1hhj:\ubj)}(h h]h }(hj_\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:\ubj%)}(hmaxh]hmax}(hjm\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?hjZhhhjZhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjZhM^ubah}(h]jZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhM^hjZhhubjb)}(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&]uh1jahjZhhhjZhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjpPhNhNubj)}(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_*)}(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)}(hjJ]h]hstruct device *data}(hjL]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMahjD]ubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjc]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_]hMahj`]ubah}(h]h ]h"]h$]h&]uh1jhjD]ubeh}(h]h ]h"]h$]h&]uh1jhj_]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.chMdhj\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 }(hj^hhhNhNubj)}(h**size**h]hsize}(hj$^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh is non-zero and }(hj^hhhNhNubj)}(h**max**h]hmax}(hj6^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^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().}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMnhj\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 }(hjO^hhhNhNubj)}(h**size**h]hsize}(hjW^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO^ubh and }(hjO^hhhNhNubj)}(h**max**h]hmax}(hji^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO^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.}(hjO^hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMshj\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.chMwhj\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.chMyhj\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&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_pcm_set_managed_buffer_all (C function) c.snd_pcm_set_managed_buffer_allhNtauh1hhjpPhhhNhNubh)}(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 }(hj"_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubh)}(hhh]j%)}(hsnd_pcmh]hsnd_pcm}(hj3_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5_modnameN classnameNjj)}j]j)}jj^sb c.snd_pcm_set_managed_buffer_allasbuh1hhj_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%)}(hpcmh]hpcm}(hjn_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]jO_ 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}(hj/`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1`modnameN classnameNjj)}j]jO_ c.snd_pcm_set_managed_buffer_allasbuh1hhj(`ubj)}(h h]h }(hjM`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(`ubj%)}(hsizeh]hsize}(hj[`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(`ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj _ubjF)}(h size_t maxh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjw`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjt`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjy`modnameN classnameNjj)}j]jO_ c.snd_pcm_set_managed_buffer_allasbuh1hhjp`ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp`ubj%)}(hmaxh]hmax}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjp`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`jjjuh1hhhhjpPhNhNubj)}(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)}(hjah]hstruct snd_pcm *pcm}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj aubah}(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)}(hthe pcm instanceh]hthe pcm instance}(hj'ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#ahMhj$aubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj#ahMhjaubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hjGah]hint type}(hjIahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEaubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjAaubj)}(hhh]jg)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj`ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\ahMhj]aubah}(h]h ]h"]h$]h&]uh1jhjAaubeh}(h]h ]h"]h$]h&]uh1jhj\ahMhjaubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjah]hstruct device *data}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~aubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjzaubj)}(hhh]jg)}(hDMA type dependent datah]hDMA type dependent data}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjaubah}(h]h ]h"]h$]h&]uh1jhjzaubeh}(h]h ]h"]h$]h&]uh1jhjahMhjaubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjah]h size_t size}(hjahhhNhNubah}(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 requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahMhjaubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjah]h size_t max}(hjahhhNhNubah}(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 bhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjaubeh}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hj-bh]h Description}(hj/bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+bubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.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.}(hjCbhhhNhNubah}(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)}(hjTbh]hReturn}(hjVbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRbubah}(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}(hjjbhhhNhNubah}(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&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_malloc_pages (C function)c.snd_pcm_lib_malloc_pageshNtauh1hhjpPhhhNhNubh)}(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}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjbhMubj)}(hsnd_pcm_lib_malloc_pagesh]j%)}(hsnd_pcm_lib_malloc_pagesh]hsnd_pcm_lib_malloc_pages}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbhhhjbhMubj@)}(h2(struct snd_pcm_substream *substream, size_t size)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjbhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjbsbc.snd_pcm_lib_malloc_pagesasbuh1hhjbubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj)}(hjh]h*}(hj"chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj%)}(h substreamh]h substream}(hj/chhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubjF)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjKchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMcmodnameN classnameNjj)}j]jcc.snd_pcm_lib_malloc_pagesasbuh1hhjDcubj)}(h h]h }(hjichhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDcubj%)}(hsizeh]hsize}(hjwchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjbubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjbhhhjbhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjbhhhjbhMubah}(h]jbah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhMhjbhhubjb)}(hhh]jg)}(hallocate the DMA bufferh]hallocate the DMA buffer}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjchhubah}(h]h ]h"]h$]h&]uh1jahjbhhhjbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhjpPhNhNubj)}(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)}(hjch]h Parameters}(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.chMhjcubj)}(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)}(hjch]h#struct snd_pcm_substream *substream}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjcubj)}(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&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchMhjcubj)}(h3``size_t size`` the requested buffer size in bytes h](j)}(h``size_t size``h]j)}(hjdh]h size_t size}(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 requested buffer size in bytesh]h"the requested buffer size in bytes}(hj4dhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0dhMhj1dubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhj0dhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjcubjg)}(h**Description**h]j)}(hjVdh]h Description}(hjXdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTdubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjcubjg)}(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().}(hjldhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjcubjg)}(h **Return**h]j)}(hj}dh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{dubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjcubjg)}(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.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpPhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_free_pages (C function)c.snd_pcm_lib_free_pageshNtauh1hhjpPhhhNhNubh)}(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}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdhhhjdhMubj)}(hsnd_pcm_lib_free_pagesh]j%)}(hsnd_pcm_lib_free_pagesh]hsnd_pcm_lib_free_pages}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjdhhhjdhMubj@)}(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 ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jjdsbc.snd_pcm_lib_free_pagesasbuh1hhjdubj)}(h h]h }(hj=ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjKehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(h substreamh]h substream}(hjXehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubah}(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!release the allocated DMA buffer.h]h!release the allocated DMA buffer.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjehhubah}(h]h ]h"]h$]h&]uh1jahjdhhhjdhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1hhhhjpPhNhNubj)}(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)}(hjeh]h Parameters}(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.chMhjeubj)}(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)}(hjeh]h#struct snd_pcm_substream *substream}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubj)}(hhh]jg)}(h'the substream to release the DMA bufferh]h'the substream to release the DMA buffer}(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**Description**h]j)}(hjeh]h Description}(hjfhhhNhNubah}(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.chMhjeubjg)}(hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().h]hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubjg)}(h **Return**h]j)}(hj%fh]hReturn}(hj'fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#fubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj;fhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjpPhhhNhNubeh}(h]pcm-memory-managementah ]h"]pcm memory managementah$]h&]uh1hhj]hhhhhK)ubh)}(hhh](h)}(hPCM DMA Engine APIh]hPCM DMA Engine API}(hj\fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYfhhhhhK-ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_hwparams_to_dma_slave_config (C function)"c.snd_hwparams_to_dma_slave_confighNtauh1hhjYfhhhNhNubh)}(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}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhjfhK,ubj)}(h snd_hwparams_to_dma_slave_configh]j%)}(h snd_hwparams_to_dma_slave_configh]h snd_hwparams_to_dma_slave_config}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfhhhjfhK,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}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubjL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjfsb"c.snd_hwparams_to_dma_slave_configasbuh1hhjfubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hj'ghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(h substreamh]h substream}(hj4ghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h&const struct snd_pcm_hw_params *paramsh](jL)}(hj\h]hconst}(hjMghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIgubj)}(h h]h }(hjZghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIgubjL)}(hjOh]hstruct}(hjhghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIgubj)}(h h]h }(hjughhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIgubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jg"c.snd_hwparams_to_dma_slave_configasbuh1hhjIgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIgubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIgubj%)}(hparamsh]hparams}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]jg"c.snd_hwparams_to_dma_slave_configasbuh1hhjgubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hj"hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(h slave_configh]h slave_config}(hj/hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjfhhhjfhK,ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{fhhhjfhK,ubah}(h]jvfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhK,hjxfhhubjb)}(hhh]jg)}(h%Convert hw_params to dma_slave_configh]h%Convert hw_params to dma_slave_config}(hjYhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,hjVhhhubah}(h]h ]h"]h$]h&]uh1jahjxfhhhjfhK,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqhjjqhjjjuh1hhhhjYfhNhNubj)}(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)}(hj{hh]h Parameters}(hj}hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjuhubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjhh]h)const struct snd_pcm_substream *substream}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(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)}(h PCM substreamh]h PCM substream}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhK-hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhK-hjhubj)}(h5``const struct snd_pcm_hw_params *params`` hw_params h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjhh]h&const struct snd_pcm_hw_params *params}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(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)}(h hw_paramsh]h hw_params}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhK.hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhK.hjhubj)}(h;``struct dma_slave_config *slave_config`` DMA slave config h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj ih]h%struct dma_slave_config *slave_config}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj iubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK/hjiubj)}(hhh]jg)}(hDMA slave configh]hDMA slave config}(hj%ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!ihK/hj"iubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhj!ihK/hjhubeh}(h]h ]h"]h$]h&]uh1jhjuhubjg)}(h**Description**h]j)}(hjGih]h Description}(hjIihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEiubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK1hjuhubjg)}(hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.h]hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.}(hj]ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjuhubjg)}(h **Return**h]j)}(hjnih]hReturn}(hjpihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjliubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK3hjuhubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK4hjuhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h7snd_dmaengine_pcm_set_config_from_dai_data (C function),c.snd_dmaengine_pcm_set_config_from_dai_datahNtauh1hhjYfhhhNhNubh)}(hhh](h)}(hvoid snd_dmaengine_pcm_set_config_from_dai_data (const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h]h)}(hvoid snd_dmaengine_pcm_set_config_from_dai_data(const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h](h)}(hvoidh]hvoid}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihKZubj)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]j%)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]h*snd_dmaengine_pcm_set_config_from_dai_data}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihKZubj@)}(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 jhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj)jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+jmodnameN classnameNjj)}j]j)}jjisb,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjiubj)}(h h]h }(hjIjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjWjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(h substreamh]h substream}(hjdjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(h1const struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hj\h]hconst}(hj}jhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyjubjL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyjubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jEj,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjyjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyjubj%)}(hdma_datah]hdma_data}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj&khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(kmodnameN classnameNjj)}j]jEj,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjkubj)}(h h]h }(hjDkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj)}(hjh]h*}(hjRkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj%)}(h slave_configh]h slave_config}(hj_khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhjihKZubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihKZubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihKZhjihhubjb)}(hhh]jg)}(h2Initializes a dma slave config using DAI DMA data.h]h2Initializes a dma slave config using DAI DMA data.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZhjkhhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihKZubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhjYfhNhNubj)}(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)}(hjkh]h Parameters}(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^hjkubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjkh]h)const struct snd_pcm_substream *substream}(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 PCM substreamh]h PCM substream}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhK\hjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhK\hjkubj)}(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)}(hjlh]h1const struct snd_dmaengine_dai_dma_data *dma_data}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK]hjkubj)}(hhh]jg)}(h DAI DMA datah]h DAI DMA data}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhK]hjlubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhK]hjkubj)}(hB``struct dma_slave_config *slave_config`` DMA slave configuration h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:lubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK^hj6lubj)}(hhh]jg)}(hDMA slave configurationh]hDMA slave configuration}(hjUlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQlhK^hjRlubah}(h]h ]h"]h$]h&]uh1jhj6lubeh}(h]h ]h"]h$]h&]uh1jhjQlhK^hjkubeh}(h]h ]h"]h$]h&]uh1jhjkubjg)}(h**Description**h]j)}(hjwlh]h Description}(hjylhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjulubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK`hjkubjg)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK_hjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_trigger (C function)c.snd_dmaengine_pcm_triggerhNtauh1hhjYfhhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhKubj)}(hsnd_dmaengine_pcm_triggerh]j%)}(hsnd_dmaengine_pcm_triggerh]hsnd_dmaengine_pcm_trigger}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhKubj@)}(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&]uh1jKhjlubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjlsbc.snd_dmaengine_pcm_triggerasbuh1hhjlubj)}(h h]h }(hj7mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjEmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(h substreamh]h substream}(hjRmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(hint cmdh](h)}(hinth]hint}(hjkmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgmubj)}(h h]h }(hjymhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgmubj%)}(hcmdh]hcmd}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubeh}(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*dmaengine based PCM trigger implementationh]h*dmaengine based PCM trigger implementation}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhjYfhNhNubj)}(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)}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjmh]h#struct snd_pcm_substream *substream}(hjmhhhNhNubah}(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 nhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhKhjnubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjnhKhjmubj)}(h``int cmd`` Trigger command h](j)}(h ``int cmd``h]j)}(hj+nh]hint cmd}(hj-nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)nubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj%nubj)}(hhh]jg)}(hTrigger commandh]hTrigger command}(hjDnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@nhKhjAnubah}(h]h ]h"]h$]h&]uh1jhj%nubeh}(h]h ]h"]h$]h&]uh1jhj@nhKhjmubeh}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjfnh]h Description}(hjhnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdnubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmubjg)}(heThis function can be used as the PCM trigger callback for dmaengine based PCM driver implementations.h]heThis function can be used as the PCM trigger callback for dmaengine based PCM driver implementations.}(hj|nhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmubjg)}(h **Return**h]j)}(hjnh]hReturn}(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.chKhjmubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_pointer_no_residue (C function)&c.snd_dmaengine_pcm_pointer_no_residuehNtauh1hhjYfhhhNhNubh)}(hhh](h)}(h\snd_pcm_uframes_t snd_dmaengine_pcm_pointer_no_residue (struct snd_pcm_substream *substream)h]h)}(h[snd_pcm_uframes_t snd_dmaengine_pcm_pointer_no_residue(struct snd_pcm_substream *substream)h](h)}(hhh]j%)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}j$snd_dmaengine_pcm_pointer_no_residuesb&c.snd_dmaengine_pcm_pointer_no_residueasbuh1hhjnhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnhhhjnhKubj)}(h$snd_dmaengine_pcm_pointer_no_residueh]j%)}(hjnh]h$snd_dmaengine_pcm_pointer_no_residue}(hj ohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjnhhhjnhKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj$ohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj oubj)}(h h]h }(hj1ohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj oubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjBohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?oubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDomodnameN classnameNjj)}j]jn&c.snd_dmaengine_pcm_pointer_no_residueasbuh1hhj oubj)}(h h]h }(hj`ohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj oubj)}(hjh]h*}(hjnohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj oubj%)}(h substreamh]h substream}(hj{ohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj oubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubah}(h]h ]h"]h$]h&]j=j>uh1j?hjnhhhjnhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjnhhhjnhKubah}(h]jnah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhKhjnhhubjb)}(hhh]jg)}(h*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjohhubah}(h]h ]h"]h$]h&]uh1jahjnhhhjnhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhjYfhNhNubj)}(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)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjoubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjoh]h#struct snd_pcm_substream *substream}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjoubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohKhjoubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohKhjoubah}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h**Description**h]j)}(hj!ph]h Description}(hj#phhhNhNubah}(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.c!hKhjoubjg)}(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.}(hj7phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjoubjg)}(h **Return**h]j)}(hjHph]hReturn}(hjJphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFpubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjoubjg)}(hPCM position in framesh]hPCM position in frames}(hj^phhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_dmaengine_pcm_pointer (C function)c.snd_dmaengine_pcm_pointerhNtauh1hhjYfhhhNhNubh)}(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}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jsnd_dmaengine_pcm_pointersbc.snd_dmaengine_pcm_pointerasbuh1hhjphhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjphhhjphKubj)}(hsnd_dmaengine_pcm_pointerh]j%)}(hjph]hsnd_dmaengine_pcm_pointer}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjphhhjphKubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jpc.snd_dmaengine_pcm_pointerasbuh1hhjpubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hj)qhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(h substreamh]h substream}(hj6qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjpubah}(h]h ]h"]h$]h&]j=j>uh1j?hjphhhjphKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjphhhjphKubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphKhjphhubjb)}(hhh]jg)}(h*dmaengine based PCM pointer implementationh]h*dmaengine based PCM pointer implementation}(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.chKhj]qhhubah}(h]h ]h"]h$]h&]uh1jahjphhhjphKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxqjjxqjjjuh1hhhhjYfhNhNubj)}(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)}(hjqh]h Parameters}(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.chKhj|qubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjqh]h#struct snd_pcm_substream *substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhjqubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhKhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhKhjqubah}(h]h ]h"]h$]h&]uh1jhj|qubjg)}(h**Description**h]j)}(hjqh]h Description}(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.chKhj|qubjg)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj|qubjg)}(h **Return**h]j)}(hjrh]hReturn}(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.chKhj|qubjg)}(hPCM position in framesh]hPCM position in frames}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKhj|qubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_dmaengine_pcm_request_channel (C function)#c.snd_dmaengine_pcm_request_channelhNtauh1hhjYfhhhNhNubh)}(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}(hjHrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDrhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hjVrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDrhhhjUrhMubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjgrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjirmodnameN classnameNjj)}j]j)}j!snd_dmaengine_pcm_request_channelsb#c.snd_dmaengine_pcm_request_channelasbuh1hhjDrhhhjUrhMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDrhhhjUrhMubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDrhhhjUrhMubj)}(h!snd_dmaengine_pcm_request_channelh]j%)}(hjrh]h!snd_dmaengine_pcm_request_channel}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjDrhhhjUrhMubj@)}(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}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jr#c.snd_dmaengine_pcm_request_channelasbuh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(h filter_fnh]h filter_fn}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubjF)}(hvoid *filter_datah](h)}(hvoidh]hvoid}(hj shhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjsubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hj&shhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(h filter_datah]h filter_data}(hj3shhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjDrhhhjUrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@rhhhjUrhMubah}(h]j;rah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUrhMhj=rhhubjb)}(hhh]jg)}(h%Request channel for the dmaengine PCMh]h%Request channel for the 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.chMhjZshhubah}(h]h ]h"]h$]h&]uh1jahj=rhhhjUrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjusjjusjjjuh1hhhhjYfhNhNubj)}(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)}(hjsh]h Parameters}(hjshhhNhNubah}(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.chMhjysubj)}(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)}(hjsh]hdma_filter_fn filter_fn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjsubj)}(hhh]jg)}(h/Filter function used to request the DMA channelh]h/Filter function used to request the DMA channel}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMhjsubj)}(h=``void *filter_data`` Data passed to the DMA filter function h](j)}(h``void *filter_data``h]j)}(hjsh]hvoid *filter_data}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjsubj)}(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&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMhjsubeh}(h]h ]h"]h$]h&]uh1jhjysubjg)}(h**Description**h]j)}(hjth]h Description}(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.chMhjysubjg)}(hAThis function request a DMA channel for usage with dmaengine PCM.h]hAThis function request a DMA channel for usage with dmaengine PCM.}(hj(thhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjysubjg)}(h **Return**h]j)}(hj9th]hReturn}(hj;thhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7tubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjysubjg)}(h!NULL or the requested DMA channelh]h!NULL or the requested DMA channel}(hjOthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjysubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_open (C function)c.snd_dmaengine_pcm_openhNtauh1hhjYfhhhNhNubh)}(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}(hj~thhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzthhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM'ubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzthhhjthM'ubj)}(hsnd_dmaengine_pcm_openh]j%)}(hsnd_dmaengine_pcm_openh]hsnd_dmaengine_pcm_open}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjzthhhjthM'ubj@)}(h<(struct snd_pcm_substream *substream, struct dma_chan *chan)h](jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjtsbc.snd_dmaengine_pcm_openasbuh1hhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(h substreamh]h substream}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hj-uhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)uubj)}(h h]h }(hj:uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)uubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hjKuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMumodnameN classnameNjj)}j]jtc.snd_dmaengine_pcm_openasbuh1hhj)uubj)}(h h]h }(hjiuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)uubj)}(hjh]h*}(hjwuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)uubj%)}(hchanh]hchan}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjzthhhjthM'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvthhhjthM'ubah}(h]jqtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthM'hjsthhubjb)}(hhh]jg)}(h$Open a dmaengine based PCM substreamh]h$Open a dmaengine based PCM substream}(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'hjuhhubah}(h]h ]h"]h$]h&]uh1jahjsthhhjthM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjYfhNhNubj)}(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)}(hjuh]h Parameters}(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+hjuubj)}(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}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhM(hjvubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjvhM(hjuubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hj(vh]hstruct dma_chan *chan}(hj*vhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&vubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM)hj"vubj)}(hhh]jg)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjAvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=vhM)hj>vubah}(h]h ]h"]h$]h&]uh1jhj"vubeh}(h]h ]h"]h$]h&]uh1jhj=vhM)hjuubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjcvh]h Description}(hjevhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjavubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjuubjg)}(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.}(hjyvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM*hjuubjg)}(h **Return**h]j)}(hjvh]hReturn}(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.chM.hjuubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM/hjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dmaengine_pcm_close (C function)c.snd_dmaengine_pcm_closehNtauh1hhjYfhhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMkubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvhhhjvhMkubj)}(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>uh1jhjvhhhjvhMkubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hj whhhNhNubah}(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}(hj*whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,wmodnameN classnameNjj)}j]j)}jjvsbc.snd_dmaengine_pcm_closeasbuh1hhjwubj)}(h h]h }(hjJwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjXwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(h substreamh]h substream}(hjewhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjwubah}(h]h ]h"]h$]h&]j=j>uh1j?hjvhhhjvhMkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjvhMkubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMkhjvhhubjb)}(hhh]jg)}(h%Close a dmaengine based PCM substreamh]h%Close a dmaengine based PCM substream}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMkhjwhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjvhMkubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjYfhNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** 0 on success, a negative error code otherwiseh](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMohjwubj)}(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}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMlhjwubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMlhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMlhjwubah}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h **Return**h]j)}(hj xh]hReturn}(hj xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj xubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMnhjwubjg)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(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.chMnhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_close_release_chan (C function)&c.snd_dmaengine_pcm_close_release_chanhNtauh1hhjYfhhhNhNubh)}(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}(hjPxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLxhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMxubj)}(h h]h }(hj_xhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLxhhhj^xhMxubj)}(h$snd_dmaengine_pcm_close_release_chanh]j%)}(h$snd_dmaengine_pcm_close_release_chanh]h$snd_dmaengine_pcm_close_release_chan}(hjqxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmxubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLxhhhj^xhMxubj@)}(h%(struct snd_pcm_substream *substream)h]jF)}(h#struct snd_pcm_substream *substreamh](jL)}(hjOh]hstruct}(hjxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jjsxsb&c.snd_dmaengine_pcm_close_release_chanasbuh1hhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(h substreamh]h substream}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubah}(h]h ]h"]h$]h&]j=j>uh1j?hjLxhhhj^xhMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHxhhhj^xhMxubah}(h]jCxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^xhMxhjExhhubjb)}(hhh]jg)}(h9Close a dmaengine based PCM substream and release channelh]h9Close a dmaengine based PCM substream and release channel}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMxhj yhhubah}(h]h ]h"]h$]h&]uh1jahjExhhhj^xhMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(yjj(yjjjuh1hhhhjYfhNhNubj)}(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)}(hj2yh]h Parameters}(hj4yhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0yubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hj,yubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjQyh]h#struct snd_pcm_substream *substream}(hjSyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOyubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMzhjKyubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfyhMzhjgyubah}(h]h ]h"]h$]h&]uh1jhjKyubeh}(h]h ]h"]h$]h&]uh1jhjfyhMzhjHyubah}(h]h ]h"]h$]h&]uh1jhj,yubjg)}(h**Description**h]j)}(hjyh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hj,yubjg)}(h;Releases the DMA channel associated with the PCM substream.h]h;Releases the DMA channel associated with the PCM substream.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM{hj,yubjg)}(h **Return**h]j)}(hjyh]hReturn}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM}hj,yubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM~hj,yubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h6snd_dmaengine_pcm_refine_runtime_hwparams (C function)+c.snd_dmaengine_pcm_refine_runtime_hwparamshNtauh1hhjYfhhhNhNubh)}(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&]uh1hhjyhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyhhhjzhMubj)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]j%)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]h)snd_dmaengine_pcm_refine_runtime_hwparams}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjyhhhjzhMubj@)}(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}(hj5zhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1zubj)}(h h]h }(hjBzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1zubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjSzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUzmodnameN classnameNjj)}j]j)}jjzsb+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj1zubj)}(h h]h }(hjszhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1zubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1zubj%)}(h substreamh]h substream}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1zubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-zubjF)}(h+struct snd_dmaengine_dai_dma_data *dma_datah](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]joz+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%)}(hdma_datah]hdma_data}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-zubjF)}(hstruct snd_pcm_hardware *hwh](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_hardwareh]hsnd_pcm_hardware}(hj5{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7{modnameN classnameNjj)}j]joz+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj{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%)}(hhwh]hhw}(hjn{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-zubjF)}(hstruct dma_chan *chanh](jL)}(hjOh]hstruct}(hj{hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubh)}(hhh]j%)}(hdma_chanh]hdma_chan}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]joz+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj{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%)}(hchanh]hchan}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-zubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjyhhhjzhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjyhhhjzhMubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzhMhjyhhubjb)}(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&]uh1jahjyhhhjzhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj |jj |jjjuh1hhhhjYfhNhNubj)}(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)}(hj*|h]h Parameters}(hj,|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(|ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj$|ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjI|h]h#struct snd_pcm_substream *substream}(hjK|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjC|ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjb|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^|hMhj_|ubah}(h]h ]h"]h$]h&]uh1jhjC|ubeh}(h]h ]h"]h$]h&]uh1jhj^|hMhj@|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|hMhj@|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|hMhj@|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 }hMhj@|ubeh}(h]h ]h"]h$]h&]uh1jhj$|ubjg)}(h**Description**h]j)}(hj/}h]h Description}(hj1}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$|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.}(hjE}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)}(hjV}h]hReturn}(hjX}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT}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}(hjl}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&]uh1jhjYfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_pcm_substream_to_dma_direction (C function)$c.snd_pcm_substream_to_dma_directionhNtauh1hhjYfhhhn/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 }(hj1~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjB~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD~modnameN classnameNjj)}j]j}$c.snd_pcm_substream_to_dma_directionasbuh1hhj~ubj)}(h h]h }(hj`~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjn~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~jjjuh1hhhhjYfhj}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)}(hj!h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj~ubjg)}(hDMA transfer directionh]hDMA transfer direction}(hj7hhhNhNubah}(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&]uh1jhjYfhhhj}hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_dmaengine_dai_dma_data (C struct)c.snd_dmaengine_dai_dma_datahNtauh1hhjYfhhhj}hNubh)}(hhh](h)}(hsnd_dmaengine_dai_dma_datah]h)}(h!struct snd_dmaengine_dai_dma_datah](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjbhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbhhhjshKubj)}(hsnd_dmaengine_dai_dma_datah]j%)}(hj`h]hsnd_dmaengine_dai_dma_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjbhhhjshKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhjshKubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshKhj[hhubjb)}(hhh]jg)}(hDAI DMA configuration datah]hDAI DMA configuration data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK:hjhhubah}(h]h ]h"]h$]h&]uh1jahj[hhhjshKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhjYfhj}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}(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.hhK>hjubh 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; };}hjsbah}(h]h ]h"]h$]h&]j=j>uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK@hjubjg)}(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.hhKLhjubj)}(hhh](j)}(hA``addr`` Address of the DAI data source or destination register. h](j)}(h``addr``h]j)}(hjh]haddr}(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.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK@hjubj)}(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)}(hjÀh]h filter_data}(hjŀhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.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.}(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.hhKAhjـubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj؀hKBhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKChjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKChjubj)}(h7``fifo_size`` FIFO size of the DAI controller in bytes h](j)}(h ``fifo_size``h]j)}(hj6h]h fifo_size}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKDhj0ubj)}(hhh]jg)}(h(FIFO size of the DAI controller in bytesh]h(FIFO size of the DAI controller in bytes}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhKDhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhKDhjubj)}(hF``flags`` PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now h](j)}(h ``flags``h]j)}(hjoh]hflags}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKEhjiubj)}(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&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhKEhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKGhjubj)}(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.hhKGhj܁ubj)}(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&]uh1jhj܁ubeh}(h]h ]h"]h$]h&]uh1jhjhKGhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhj}hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_config (C struct)c.snd_dmaengine_pcm_confighNtauh1hhjYfhhhj}hNubh)}(hhh](h)}(hsnd_dmaengine_pcm_configh]h)}(hstruct snd_dmaengine_pcm_configh](jL)}(hjOh]hstruct}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKNubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjIhKNubj)}(hsnd_dmaengine_pcm_configh]j%)}(hj6h]hsnd_dmaengine_pcm_config}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjIhKNubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4hhhjIhKNubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjIhKNhj1hhubjb)}(hhh]jg)}(h*Configuration data for dmaengine based PCMh]h*Configuration data for dmaengine based PCM}(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.hhKqhj{hhubah}(h]h ]h"]h$]h&]uh1jahj1hhhjIhKNubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhjYfhj}hNubj)}(hXK**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)}(hXstruct 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]hXstruct snd_dmaengine_pcm_config { int (*prepare_slave_config)(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config); struct dma_chan *(*compat_request_channel)( struct snd_soc_pcm_runtime *rtd, struct snd_pcm_substream *substream); int (*process)(struct snd_pcm_substream *substream, int channel, unsigned long hwoff, unsigned long bytes); const char *name; dma_filter_fn compat_filter_fn; struct device *dma_dev; const char *chan_names[SNDRV_PCM_STREAM_LAST + 1]; const struct snd_pcm_hardware *pcm_hardware; unsigned int prealloc_buffer_size; };}hjsbah}(h]h ]h"]h$]h&]j=j>uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKwhjubjg)}(h **Members**h]j)}(hĵh]hMembers}(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.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.hhKvhjubj)}(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.}(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.hhKuhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hKvhjubj)}(hY``process`` Callback used to apply processing on samples transferred from/to user space. h](j)}(h ``process``h]j)}(hj_h]hprocess}(hjahhhNhNubah}(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.hhKxhjYubj)}(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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKwhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthKxhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKyhjubj)}(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)}(hj҃h]hcompat_filter_fn}(hjԃhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjЃubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK|hj̃ubj)}(hhh]jg)}(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&]uh1jhj̃ubeh}(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}(hjhhhNhNubah}(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}hj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hK~hjubj)}(h^``chan_names`` If set, these custom DMA channel names will be requested at registration time. h](j)}(h``chan_names``h]j)}(hjFh]h chan_names}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj@ubj)}(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.}(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\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjubj)}(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&]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.hhKhjzubj)}(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&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h?``prealloc_buffer_size`` Size of the preallocated audio buffer.h](j)}(h``prealloc_buffer_size``h]j)}(hjh]hprealloc_buffer_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]jg)}(h&Size of the preallocated audio buffer.h]h&Size of the preallocated audio buffer.}(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τubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj΄hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhj}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.hhKhjYfhhubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjYfhhubeh}(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}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhK2ubh)}(hhh](h)}(hGeneral Control Interfaceh]hGeneral Control Interface}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhhhhhK5ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify (C function)c.snd_ctl_notifyhNtauh1hhjBhhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhhe/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 hjhhhhjzhKubj)}(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>uh1jhjhhhhjzhKubj@)}(hF(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjDžhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjąubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjɅmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_notifyasbuh1hhjubj)}(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)}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(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_notifyasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hidh]hid}(hjÆhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhhjzhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjdhhhjzhKubah}(h]j_ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjzhKhjahhubjb)}(hhh]jg)}(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&]uh1jahjahhhjzhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(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.chKhj ubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification 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&]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}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChKhj%ubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjgh]hunsigned int mask}(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:54: ./sound/core/control.chKhjaubj)}(hhh]jg)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hKhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hKhj%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}(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&]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.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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify_one (C function)c.snd_ctl_notify_onehNtauh1hhjBhhhNhNubh)}(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}(hj hhhNhNubah}(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 }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj.hKubj)}(hsnd_ctl_notify_oneh]j%)}(hsnd_ctl_notify_oneh]hsnd_ctl_notify_one}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj.hKubj@)}(hX(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](jF)}(hstruct snd_card *cardh](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]j)}jjCsbc.snd_ctl_notify_oneasbuh1hhjYubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(hunsigned int maskh](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%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjˈubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(hstruct snd_kcontrol *kctlh](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 reftargetj@modnameN classnameNjj)}j]jc.snd_ctl_notify_oneasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkctlh]hkctl}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUubjF)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(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>uh1jEhjUubeh}(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)}(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&]uh1jahjhhhj.hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjBhNhNubj)}(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)}(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)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hj3h]hstruct snd_card *card}(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:54: ./sound/core/control.chKhj-ubj)}(hhh]jg)}(hthe card to send notificationh]hthe card to send notification}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhKhj*ubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjlh]hunsigned int mask}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjfubj)}(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&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKhj*ubj)}(hD``struct snd_kcontrol *kctl`` the pointer with the control instance h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjh]hstruct snd_kcontrol *kctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h%the pointer with the control instanceh]h%the pointer with the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj*ubj)}(hA``unsigned int ioff`` the additional offset to the control index h](j)}(h``unsigned int ioff``h]j)}(hjފh]hunsigned int ioff}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj܊ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj؊ubj)}(hhh]jg)}(h*the additional offset to the control indexh]h*the additional offset to the control index}(hjhhhNhNubah}(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&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(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.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new (C function) c.snd_ctl_newhNtauh1hhjBhhhNhNubh)}(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}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZhhhjlhKubj)}(h snd_ctl_newh]j%)}(h snd_ctl_newh]h snd_ctl_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjZhhhjlhKubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.snd_ctl_newasbuh1hhjubj)}(h h]h }(hjًhhhNhNubah}(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%)}(hkctlh]hkctl}(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 }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcounth]hcount}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int accessh](h)}(hunsignedh]hunsigned}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(haccessh]haccess}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_file *fileh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjɌhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ctl_fileh]h snd_ctl_file}(hjڌhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj׌ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj܌modnameN classnameNjj)}j]jՋ c.snd_ctl_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjZhhhjlhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjlhKubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhKhjShhubjb)}(hhh]jg)}(h0create a new control instance with some elementsh]h0create a new control instance with some elements}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj:hhubah}(h]h ]h"]h$]h&]uh1jahjShhhjlhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhjBhNhNubj)}(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)}(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:54: ./sound/core/control.chKhjYubj)}(hhh](j)}(hI``struct snd_kcontrol **kctl`` the pointer to store new control instance 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:54: ./sound/core/control.chKhjxubj)}(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&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKhjuubj)}(h>``unsigned int count`` the number of elements in this control h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h&the number of elements in this controlh]h&the number of elements in this control}(hjЍhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj̍hKhj͍ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj̍hKhjuubj)}(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}(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)}(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&]uh1jhjhKhjuubj)}(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}(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.chKhj#ubj)}(hhh]jg)}(h!given when locking these elementsh]h!given when locking these elements}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubjg)}(h**Description**h]j)}(hjdh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjYubjg)}(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 (}(hjzhhhNhNubj)}(h **count**h]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubh.). Each element has given access permissions (}(hjzhhhNhNubj)}(h **access**h]haccess}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubh). Each element is locked when }(hjzhhhNhNubj)}(h**file**h]hfile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubh is given.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjYubjg)}(h **Return**h]j)}(hjh]hReturn}(hjÎhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjYubjg)}(h#0 on success, error code on failureh]h#0 on success, 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.chKhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new1 (C function)c.snd_ctl_new1hNtauh1hhjBhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}j snd_ctl_new1sbc.snd_ctl_new1asbuh1hhjhhhjhKubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(h snd_ctl_new1h]j%)}(hjCh]h snd_ctl_new1}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(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&]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_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jAc.snd_ctl_new1asbuh1hhj|ubj)}(h h]h }(hj׏hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hncontrolh]hncontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj hhhNhNubah}(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%)}(h private_datah]h private_data}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjxubeh}(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+create a control instance from the templateh]h+create a control instance from the template}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj[hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhjBhNhNubj)}(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&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjzubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h/``void *private_data`` the private data to set 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjҐubj)}(hhh]jg)}(hthe private data to seth]hthe private data to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjҐubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjzubjg)}(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.chKhjzubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjzubjg)}(hDThe pointer of the newly generated instance, or ``NULL`` on failure.h](h0The pointer of the newly generated instance, or }(hjPhhhNhNubj)}(h``NULL``h]hNULL}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh on failure.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_free_one (C function)c.snd_ctl_free_onehNtauh1hhjBhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM<ubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjΑhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjʑubj)}(h h]h }(hjۑhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʑubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_free_oneasbuh1hhjʑubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʑubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʑubj%)}(hkcontrolh]hkcontrol}(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?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}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM<hjNhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhjBhNhNubj)}(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)}(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.chM@hjmubj)}(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}(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&]uh1jhjmubjg)}(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?hjmubjg)}(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>hjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_add (C function) c.snd_ctl_addhNtauh1hhjBhhhNhNubh)}(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}(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)}(h snd_ctl_addh]j%)}(h snd_ctl_addh]h snd_ctl_add}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](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_cardh]hsnd_card}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj5sb c.snd_ctl_addasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(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 reftargetjmodnameN classnameNjj)}j]j c.snd_ctl_addasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(h$add the control instance to the cardh]h$add the control instance to the card}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj?hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhjBhNhNubj)}(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)}(hjdh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj^ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjzubj)}(h>``struct snd_kcontrol *kcontrol`` the control instance to add h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control instance to addh]hthe control instance to add}(hjՔhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjєhMhjҔubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjєhMhjzubeh}(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)}(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.chMhj^ubjg)}(h9It frees automatically the control which cannot be added.h]h9It frees automatically the control which cannot be added.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj^ubjg)}(h **Return**h]j)}(hj-h]hReturn}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj^ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjChhhNhNubah}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_replace (C function)c.snd_ctl_replacehNtauh1hhjBhhhNhNubh)}(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}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnhhhe/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 hjnhhhjhM)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>uh1jhjnhhhjhM)ubj@)}(hK(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj͕hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʕubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjϕmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_replaceasbuh1hhjubj)}(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 *kcontrolh](jL)}(hjOh]hstruct}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNjj)}j]jc.snd_ctl_replaceasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjnhhhjhM)ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjhM)ubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM)hjghhubjb)}(hhh]jg)}(h(replace the control instance of the cardh]h(replace the control instance of 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)hjԖhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjhM)ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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-hjubj)}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hM*hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hM*hjubj)}(hB``struct snd_kcontrol *kcontrol`` the control instance to replace h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjQh]hstruct snd_kcontrol *kcontrol}(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:54: ./sound/core/control.chM+hjKubj)}(hhh]jg)}(hthe control instance to replaceh]hthe control instance to replace}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhM+hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM+hjubj)}(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,hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjŗh]h Description}(hjǗhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj×ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM.hjubjg)}(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.}(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-hjubjg)}(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.chM1hjubjg)}(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.chM3hjubjg)}(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.chM4hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove (C function)c.snd_ctl_removehNtauh1hhjBhhhNhNubh)}(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}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM^ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhjNhM^ubj)}(hsnd_ctl_removeh]j%)}(hsnd_ctl_removeh]hsnd_ctl_remove}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhjNhM^ubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjcsbc.snd_ctl_removeasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjɘhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hcardh]hcard}(hj֘hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(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]jc.snd_ctl_removeasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhjNhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhjNhM^ubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNhM^hj5hhubjb)}(hhh]jg)}(h/remove the control from the card and release ith]h/remove the control from the card and release it}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM^hjmhhubah}(h]h ]h"]h$]h&]uh1jahj5hhhjNhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM_hjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjʙhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjƙhM_hjǙubah}(h]h ]h"]h$]h&]uh1jhjubeh}(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 }(hj;hhhNhNubj)}(h **kcontrol**h]hkcontrol}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh argument is allowed as noop.}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMahjubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhjubjg)}(h **Return**h]j)}(hjmh]hReturn}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove_id (C function)c.snd_ctl_remove_idhNtauh1hhjBhhhNhNubh)}(hhh](h)}(hIint snd_ctl_remove_id (struct snd_card *card, struct snd_ctl_elem_id *id)h]h)}(hHint snd_ctl_remove_id(struct snd_card *card, struct snd_ctl_elem_id *id)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMtubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMtubj)}(hsnd_ctl_remove_idh]j%)}(hsnd_ctl_remove_idh]hsnd_ctl_remove_id}(hjӚhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjϚubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMtubj@)}(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 reftargetjmodnameN classnameNjj)}j]j)}jj՚sbc.snd_ctl_remove_idasbuh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)c.snd_ctl_remove_idasbuh1hhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMtubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMtubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMthjhhubjb)}(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.chMthjߛhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMuhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hMuhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hMuhjubj)}(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&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMvhjVubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMvhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhMvhjubeh}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMwhjubjg)}(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.chMzhjubjg)}(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.chM{hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ctl_remove_user_ctl (C function)c.snd_ctl_remove_user_ctlhNtauh1hhjBhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_remove_user_ctlh]j%)}(hsnd_ctl_remove_user_ctlh]hsnd_ctl_remove_user_ctl}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h7(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_ctl_file *fileh](jL)}(hjOh]hstruct}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(h snd_ctl_fileh]h snd_ctl_file}(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_remove_user_ctlasbuh1hhj<ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hfileh]hfile}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjНhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj͝ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjҝmodnameN classnameNjj)}j]jzc.snd_ctl_remove_user_ctlasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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)}(h,remove and release the unlocked user controlh]h,remove and release the unlocked user control}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj0hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjBhNhNubj)}(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)}(hjUh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjOubj)}(hhh](j)}(h5``struct snd_ctl_file * file`` active control handle h](j)}(h``struct snd_ctl_file * file``h]j)}(hjth]hstruct snd_ctl_file * file}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjnubj)}(hhh]jg)}(hactive control handleh]hactive control handle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjƞhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjžhMhjÞubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjžhMhjkubeh}(h]h ]h"]h$]h&]uh1jhjOubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjOubjg)}(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.chMhjOubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjOubjg)}(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.chMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ctl_activate_id (C function)c.snd_ctl_activate_idhNtauh1hhjBhhhNhNubh)}(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}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjbhMubj)}(hsnd_ctl_activate_idh]j%)}(hsnd_ctl_activate_idh]hsnd_ctl_activate_id}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjbhMubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjwsbc.snd_ctl_activate_idasbuh1hhjubj)}(h h]h }(hjϟhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjݟhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]j˟c.snd_ctl_activate_idasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int activeh](h)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj%)}(hactiveh]hactive}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjbhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjbhMubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhMhjIhhubjb)}(hhh]jg)}(h/activate/inactivate the control of the given idh]h/activate/inactivate the control of the given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjѠjjѠjjjuh1hhhhjBhNhNubj)}(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)}(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.chMhjՠubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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)}(hE``struct snd_ctl_elem_id *id`` the control id to activate/inactivate h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hj3h]hstruct snd_ctl_elem_id *id}(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:54: ./sound/core/control.chMhj-ubj)}(hhh]jg)}(h%the control id to activate/inactivateh]h%the control id to activate/inactivate}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjubj)}(h$``int active`` non-zero to activate h](j)}(h``int active``h]j)}(hjlh]h int active}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjfubj)}(hhh]jg)}(hnon-zero to activateh]hnon-zero to activate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjՠubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.h]hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjՠubjg)}(h **Return**h]j)}(hjΡh]hReturn}(hjСhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̡ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjՠubjg)}(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.chMhjՠubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename_id (C function)c.snd_ctl_rename_idhNtauh1hhjBhhhNhNubh)}(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}(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_rename_idh]j%)}(hsnd_ctl_rename_idh]hsnd_ctl_rename_id}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj!hMubj@)}(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}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj6sbc.snd_ctl_rename_idasbuh1hhjLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubjF)}(hstruct snd_ctl_elem_id *src_idh](jL)}(hjOh]hstruct}(hj¢hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjϢhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjݢubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_rename_idasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hsrc_idh]hsrc_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubjF)}(hstruct snd_ctl_elem_id *dst_idh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]jc.snd_ctl_rename_idasbuh1hhj.ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hdst_idh]hdst_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj!hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj!hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj!hMhjhhubjb)}(hhh]jg)}(h'replace the id of a control on the cardh]h'replace the id of a control on the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj!hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjˣjjˣjjjuh1hhhhjBhNhNubj)}(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)}(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.chMhjϣubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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)}(hj-h]hstruct snd_ctl_elem_id *src_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.chMhj'ubj)}(hhh]jg)}(h the old idh]h the old id}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjubj)}(h.``struct snd_ctl_elem_id *dst_id`` the new id h](j)}(h"``struct snd_ctl_elem_id *dst_id``h]j)}(hjfh]hstruct snd_ctl_elem_id *dst_id}(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.chMhj`ubj)}(hhh]jg)}(h the new idh]h the new id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjubeh}(h]h ]h"]h$]h&]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)}(hVFinds the control with the old id from the card, and replaces the id with the new one.h]hVFinds the control with the old id from the card, and replaces the id with the new one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjϣubjg)}(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.chMhjϣubjg)}(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.}(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ϣ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.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:54: ./sound/core/control.chMhjϣubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename (C function)c.snd_ctl_renamehNtauh1hhjBhhhNhNubh)}(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}(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 }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'hhhj9hMubj)}(hsnd_ctl_renameh]j%)}(hsnd_ctl_renameh]hsnd_ctl_rename}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'hhhj9hMubj@)}(hD(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjNsbc.snd_ctl_renameasbuh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjڥhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj֥ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj֥ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.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%)}(hkctlh]hkctl}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj֥ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hcharh]hchar}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj'hhhj9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#hhhj9hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hMhj hhubjb)}(hhh]jg)}(hrename the control on the cardh]hrename the control on the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjЦjjЦjjjuh1hhhhjBhNhNubj)}(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)}(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.chMhjԦubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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)}(h4``struct snd_kcontrol *kctl`` the control to rename h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hj2h]hstruct snd_kcontrol *kctl}(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:54: ./sound/core/control.chMhj,ubj)}(hhh]jg)}(hthe control to renameh]hthe control to rename}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubj)}(h"``const char *name`` the new name 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:54: ./sound/core/control.chMhjeubj)}(hhh]jg)}(h the new nameh]h the new name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjԦubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(h:Renames the specified control on the card to the new name.h]h:Renames the specified control on the card to the new name.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjԦubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hj˧hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjԦubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_numid (C function)c.snd_ctl_find_numidhNtauh1hhjBhhhNhNubh)}(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&]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_numidsbc.snd_ctl_find_numidasbuh1hhjhhhjhM%ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM%ubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM%ubj)}(hsnd_ctl_find_numidh]j%)}(hj7h]hsnd_ctl_find_numid}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM%ubj@)}(h+(struct snd_card *card, unsigned int numid)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]j5c.snd_ctl_find_numidasbuh1hhjpubj)}(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 numidh](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%)}(hnumidh]hnumid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubeh}(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)}(h2find the control instance with the given number-idh]h2find the control instance with the given number-id}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hjChhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhjBhNhNubj)}(hXR**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)}(hjhh]h Parameters}(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)hjbubj)}(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&hj~ubj)}(h/``unsigned int numid`` the number-id to search h](j)}(h``unsigned int numid``h]j)}(hjh]hunsigned int numid}(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)}(hthe number-id to searchh]hthe number-id to search}(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~ubeh}(h]h ]h"]h$]h&]uh1jhjbubjg)}(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)hjbubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM(hjbubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjbubjg)}(h **Return**h]j)}(hj1h]hReturn}(hj3hhhNhNubah}(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-hjbubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjGhhhNhNubj)}(h``NULL``h]hNULL}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh if not.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_id (C function)c.snd_ctl_find_idhNtauh1hhjBhhhNhNubh)}(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*}(hj֪hhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(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 }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjYhhhNhNubah}(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}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_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_find_idasbuh1hhjnubj)}(h h]h }(hjɫhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hj׫hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(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+find the control instance with the given idh]h+find the control instance with the given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM>hj hhubah}(h]h ]h"]h$]h&]uh1jahj}hhhjhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjBhNhNubj)}(hXR**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)}(hj0h]h Parameters}(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.chMBhj*ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjOh]hstruct snd_card *card}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjIubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhM?hjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhM?hjFubj)}(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@hjFubeh}(h]h ]h"]h$]h&]uh1jhj*ubjg)}(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:54: ./sound/core/control.chMBhj*ubjg)}(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.}(hj٬hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMAhj*ubjg)}(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.chMDhj*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.chMFhj*ubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMDhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_ioctl (C function)c.snd_ctl_register_ioctlhNtauh1hhjBhhhNhNubh)}(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}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhe/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 hjLhhhj^hMubj)}(hsnd_ctl_register_ioctlh]j%)}(hsnd_ctl_register_ioctlh]hsnd_ctl_register_ioctl}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhj^hMubj@)}(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)}jjssbc.snd_ctl_register_ioctlasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(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^hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj^hMubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMhjEhhubjb)}(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&]uh1jahjEhhhj^hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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}(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)}(hioctl callback functionh]hioctl callback function}(hjBhhhNhNubah}(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&]uh1jhjubjg)}(h**Description**h]j)}(hjdh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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.}(hjzhhhNhNubah}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_register_ioctl_compat (C function)c.snd_ctl_register_ioctl_compathNtauh1hhjBhhhNhNubh)}(hhh](h)}(h=int snd_ctl_register_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(huh1jhj̮hhhjޮhM%ubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_register_ioctl_compatasbuh1hhj ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hfcnh]hfcn}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj̮hhhjޮ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)}(h8register the device-specific 32bit compat control-ioctlsh]h8register the device-specific 32bit compat control-ioctls}(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&]uh1jahjŮhhhjޮhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM'hjubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(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 **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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_unregister_ioctl (C function)c.snd_ctl_unregister_ioctlhNtauh1hhjBhhhNhNubh)}(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 }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj7hMIubj)}(hsnd_ctl_unregister_ioctlh]j%)}(hsnd_ctl_unregister_ioctlh]hsnd_ctl_unregister_ioctl}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj%hhhj7hMIubj@)}(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}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jjLsbc.snd_ctl_unregister_ioctlasbuh1hhjbubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj%)}(hfcnh]hfcn}(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%hhhj7hMIubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj!hhhj7hMIubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj7hMIhjhhubjb)}(hhh]jg)}(h.de-register the device-specific control-ioctlsh]h.de-register the device-specific control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMIhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj7hMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjٰjjٰjjjuh1hhhhjBhNhNubj)}(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.chMMhjݰubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMJhjubah}(h]h ]h"]h$]h&]uh1jhjݰubjg)}(h **Return**h]j)}(hj=h]hReturn}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjݰubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjݰubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_unregister_ioctl_compat (C function)!c.snd_ctl_unregister_ioctl_compathNtauh1hhjBhhhNhNubh)}(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&]uh1hhj~hhhe/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 hj~hhhjhMVubj)}(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>uh1jhj~hhhjhMVubj@)}(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$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjımodnameN classnameNjj)}j]j)}jjsb!c.snd_ctl_unregister_ioctl_compatasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(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~hhhjhMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhMVubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMVhjwhhubjb)}(hhh]jg)}(h;de-register the device-specific compat 32bit control-ioctlsh]h;de-register the device-specific compat 32bit 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.chMVhjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjBhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMZhj6ubj)}(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)}(hj[h]hsnd_kctl_ioctl_func_t fcn}(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.chMXhjUubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMXhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMXhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(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.chMZhj6ubjg)}(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.chMZhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_request_layer (C function)c.snd_ctl_request_layerhNtauh1hhjBhhhNhNubh)}(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}(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_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>uh1jhjײhhhjhMubj@)}(h(const char *module_name)h]jF)}(hconst char *module_nameh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h module_nameh]h module_name}(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ײhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjӲhhhjhMubah}(h]jβah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjвhhubjb)}(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&]uh1jahjвhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(hjdzh]hconst char *module_name}(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)}(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&]uh1jfhjܳhMhjݳubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjܳhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(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}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_layer (C function)c.snd_ctl_register_layerhNtauh1hhjBhhhNhNubh)}(hhh](h)}(huh1jhjChhhjUhMubj@)}(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)}jjjsbc.snd_ctl_register_layerasbuh1hhjubj)}(h h]h }(hj´hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjдhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlopsh]hlops}(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?hjChhhjUhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?hhhjUhMubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUhMhj<hhubjb)}(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&]uh1jahj<hhhjUhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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}(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.chMhj#ubj)}(hhh]j)}(h7``struct snd_ctl_layer_ops *lops`` operation structure h](j)}(h"``struct snd_ctl_layer_ops *lops``h]j)}(hjHh]hstruct snd_ctl_layer_ops *lops}(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.chMhjBubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_disconnect_layer (C function)c.snd_ctl_disconnect_layerhNtauh1hhjBhhhNhNubh)}(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 }(hj׵hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjĵhhhjֵhMubj)}(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ĵhhhjֵhMubj@)}(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}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_disconnect_layerasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlopsh]hlops}(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ֵhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjֵhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjֵhMhjhhubjb)}(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&]uh1jahjhhhjֵhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(h**Parameters** ``struct snd_ctl_layer_ops *lops`` operation structure **Description** It is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j)}(h7``struct snd_ctl_layer_ops *lops`` operation structure h](j)}(h"``struct snd_ctl_layer_ops *lops``h]j)}(hjɶh]hstruct snd_ctl_layer_ops *lops}(hj˶hhhNhNubah}(h]h ]h"]h$]h&]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&]uh1jfhj޶hMhj߶ubah}(h]h ]h"]h$]h&]uh1jhjöubeh}(h]h ]h"]h$]h&]uh1jhj޶hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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).}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_ctl_boolean_mono_info (C function)c.snd_ctl_boolean_mono_infohNtauh1hhjBhhhNhNubh)}(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}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chML ubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEhhhjWhML ubj)}(hsnd_ctl_boolean_mono_infoh]j%)}(hsnd_ctl_boolean_mono_infoh]hsnd_ctl_boolean_mono_info}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjEhhhjWhML 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)}jjlsbc.snd_ctl_boolean_mono_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}(hj߷hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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_ctl_boolean_mono_infoasbuh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjEhhhjWhML ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhjWhML ubah}(h]j<ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhML hj>hhubjb)}(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}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chML hjvhhubah}(h]h ]h"]h$]h&]uh1jahj>hhhjWhML ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMN hjubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjӸhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjϸhMN hjиubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϸhMN hjubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.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 hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj.h]h Description}(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: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.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMP hjubjg)}(h **Return**h]j)}(hjUh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMS hjubjg)}(hZero (always successful)h]hZero (always successful)}(hjkhhhNhNubah}(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&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_boolean_stereo_info (C function)c.snd_ctl_boolean_stereo_infohNtauh1hhjBhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(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)}jjsbc.snd_ctl_boolean_stereo_infoasbuh1hhjӹ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}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjӹubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjϹubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jc.snd_ctl_boolean_stereo_infoasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(huinfoh]huinfo}(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?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}(hjʺhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb hjǺhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMb ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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&]uh1jfhj hMd hj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMd hjubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjDh]hstruct snd_ctl_elem_info *uinfo}(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.chMe hj>ubj)}(hhh]jg)}(h info to storeh]h info to store}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMe hjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMe 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: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.chMf 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.chMi 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.chMj hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjBhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_enum_info (C function)c.snd_ctl_enum_infohNtauh1hhjBhhhNhNubh)}(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 }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_enum_infoasbuh1hhj$ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjthhhNhNubah}(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>uh1jEhj ubjF)}(hunsigned int channelsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjļhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hchannelsh]hchannels}(hjҼhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(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 }(hjhhhNhNubah}(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>uh1jEhj ubjF)}(hconst char *const names[]h](jL)}(hj\h]hconst}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hcharh]hchar}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj%)}(hnamesh]hnames}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubj)}(h[h]h[}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj)}(h]h]h]}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMx ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMx ubah}(h]j޻ah ](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 hj޽hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjBhNhNubj)}(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)}(hj"h]hstruct snd_ctl_elem_info *info}(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.chMy hjubj)}(hhh]jg)}(hthe structure to be filledh]hthe structure to be filled}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMy hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMy hjubj)}(hJ``unsigned int channels`` the number of the control's channels; often one h](j)}(h``unsigned int channels``h]j)}(hj[h]hunsigned int channels}(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.chMz hjUubj)}(hhh]jg)}(h/the number of the control's channels; often oneh]h1the number of the control’s channels; often one}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMz hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMz hjubj)}(hP``unsigned int items`` the number of control values; also the size of **names** h](j)}(h``unsigned int items``h]j)}(hjh]hunsigned int items}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{ hjubj)}(hhh]jg)}(h8the number of control values; also the size of **names**h](h/the number of control values; also the size of }(hjhhhNhNubj)}(h **names**h]hnames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jfhjhM{ hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hjubj)}(hR``const char *const names[]`` an array containing the names of all control values h](j)}(h``const char *const names[]``h]j)}(hj۾h]hconst char *const names[]}(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)}(h3an array containing the names of all control valuesh]h3an array containing the names of all control values}(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&]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 }(hj,hhhNhNubj)}(h**info**h]hinfo}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubh to their appropriate values. If the control’s accessibility is not the default (readable and writable), the caller has to fill }(hj,hhhNhNubj)}(h**info->access**h]h info->access}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubh.}(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} hjubjg)}(h **Return**h]j)}(hjah]hReturn}(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:54: ./sound/core/control.chM hjubjg)}(hZero (always successful)h]hZero (always successful)}(hjwhhhNhNubah}(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&]uh1jhjBhhhNhNubeh}(h]general-control-interfaceah ]h"]general control interfaceah$]h&]uh1hhj1hhhhhK5ubh)}(hhh](h)}(hAC97 Codec APIh]hAC97 Codec API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK9ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_write (C function)c.snd_ac97_writehNtauh1hhjhhhNhNubh)}(hhh](h)}(hUvoid snd_ac97_write (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]h)}(hTvoid snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjοhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjͿhMubj)}(hsnd_ac97_writeh]j%)}(hsnd_ac97_writeh]hsnd_ac97_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjܿubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjͿhMubj@)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_writeasbuh1hhjubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(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?hjhhhjͿhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjͿhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjͿhMhjhhubjb)}(hhh]jg)}(h#write a value on the given registerh]h#write a value on the given register}(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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjͿhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhjhNhNubj)}(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)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjbh]hstruct snd_ac97 *ac97}(hjdhhhNhNubah}(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)}(hthe ac97 instanceh]hthe ac97 instance}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjYubj)}(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&]uh1jhjhMhjYubj)}(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&]uh1jhjhMhjYubeh}(h]h ]h"]h$]h&]uh1jhj=ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj=ubjg)}(hXWrites a value on the given register. This will invoke the write callback directly after the register check. This function doesn't change the register cache unlike #snd_ca97_write_cache(), so use this only when you don't want to reflect the change to the suspend/resume state.h]hXWrites a value on the given register. This will invoke the write callback directly after the register check. This function doesn’t change the register cache unlike #snd_ca97_write_cache(), so use this only when you don’t want to reflect the change to the suspend/resume state.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_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}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjbhMubh)}(hshorth]hshort}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhjbhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjbhMubj)}(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>uh1jhjPhhhjbhMubj@)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjbhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLhhhjbhMubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbhMhjIhhubjb)}(hhh]jg)}(h$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.chMhj~hhubah}(h]h ]h"]h$]h&]uh1jahjIhhhjbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX **Parameters** ``struct snd_ac97 *ac97`` the ac97 instance ``unsigned short reg`` the register to read **Description** Reads a value from the given register. This will invoke the read callback directly after the register check. **Return** The read value.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM"hjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h,``unsigned short reg`` the register to read h](j)}(h``unsigned short reg``h]j)}(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 readh]hthe register to read}(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)}(hj6h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(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.}(hjLhhhNhNubah}(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)}(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)}(hThe read value.h]hThe read value.}(hjshhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hshorth]hshort}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>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&]jjjjjjjjjuh1hhhhjhNhNubj)}(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@hj ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjEh]hstruct snd_ac97 *ac97}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(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 ac97 instanceh]hthe ac97 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.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hj~h]hunsigned short 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>hjxubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhM>hj<ubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hjh]hunsigned short value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM?hjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(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.chMAhj ubjg)}(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.chM@hj ubeh}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMSubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhjEhMSubj)}(hsnd_ac97_updateh]j%)}(hsnd_ac97_updateh]hsnd_ac97_update}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhjEhMSubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.snd_ac97_updateasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(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>uh1jEhjlubjF)}(hunsigned short valueh](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%)}(hvalueh]hvalue}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhjEhMSubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhjEhMSubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhMShj,hhubjb)}(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&]uh1jahj,hhhjEhMSubeh}(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}(hjhhhNhNubah}(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)}(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.chMUhj ubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hj,hhhNhNubah}(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)}(hjLh]hunsigned short value}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhjFubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMVhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMVhjubeh}(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.chMWhjubjg)}(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.chMZhjubjg)}(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}(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.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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj0hhhNhNubah}(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}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_update_bitsasbuh1hhj,ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hj|hhhNhNubah}(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)}(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}(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%)}(hmaskh]hmask}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(ubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hshorth]hshort}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj%)}(hvalueh]hvalue}(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?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)}(hj h]hunsigned short reg}(hj"hhhNhNubah}(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 register to changeh]hthe register to change}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMthj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMthjubj)}(h/``unsigned short mask`` the bit-mask to change h](j)}(h``unsigned short mask``h]j)}(hjYh]hunsigned short mask}(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.chMuhjSubj)}(hhh]jg)}(hthe bit-mask to changeh]hthe bit-mask to change}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMuhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMuhjubj)}(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.chMwhjubjg)}(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.chMzhjubjg)}(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)}(huh1jhj5hhhjFhMYubj@)}(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?hj5hhhjFhMYubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhjFhMYubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhMYhj.hhubjb)}(hhh]jg)}(hretrieve codec nameh]hretrieve codec name}(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.chMYhjhhubah}(h]h ]h"]h$]h&]uh1jahj.hhhjFhMYubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhjhNhNubj)}(ht**Parameters** ``struct snd_ac97 *ac97`` the codec instance **Return** The short identifying name of the codec.h](jg)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(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=ubj)}(hhh]j)}(h-``struct snd_ac97 *ac97`` the codec instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjbh]hstruct snd_ac97 *ac97}(hjdhhhNhNubah}(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.chMZhj\ubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMZhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMZhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM\hj=ubjg)}(h(The short identifying name of the codec.h]h(The short identifying name of the codec.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM\hj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_bus (C function)c.snd_ac97_bushNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_ac97_bus (struct snd_card *card, int num, const struct snd_ac97_bus_ops *ops, void *private_data, struct snd_ac97_bus **rbus)h]h)}(hint snd_ac97_bus(struct snd_card *card, int num, const struct snd_ac97_bus_ops *ops, void *private_data, struct snd_ac97_bus **rbus)h](h)}(hinth]hint}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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>uh1jEhjubjF)}(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]jYc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hopsh]hops}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(h private_datah]h private_data}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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]jYc.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>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)}(hcreate an AC97 bus componenth]hcreate an AC97 bus component}(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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhjhNhNubj)}(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)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjbh]hstruct snd_card *card}(hjdhhhNhNubah}(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)}(hthe card instanceh]hthe card instance}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjYubj)}(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&]uh1jhjhMhjYubj)}(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&]uh1jhjhMhjYubj)}(hA``void *private_data`` private data pointer for the new instance h](j)}(h``void *private_data``h]j)}(hj h]hvoid *private_data}(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.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&]uh1jfhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjYubj)}(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)}(hjFh]hstruct snd_ac97_bus **rbus}(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.chMhj@ubj)}(hhh]jg)}(h/the pointer to store the new AC97 bus instance.h]h/the pointer to store the new AC97 bus instance.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hMhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhjYubeh}(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)}(hcCreates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized.h]hcCreates an AC97 bus component. An struct snd_ac97_bus instance is newly allocated and initialized.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubjg)}(h~The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory.h]h~The ops table must include valid callbacks (at least read and write). The other callbacks, wait and reset, are not mandatory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubjg)}(hXThe clock is set to 48000. If another clock is needed, set ``(*rbus)->clock`` manually.h](hclock``h]h(*rbus)->clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh manually.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubjg)}(hdThe AC97 bus instance is registered as a low-level device, so you don't have to release it manually.h]hfThe AC97 bus instance is registered as a low-level device, so you don’t have to release it manually.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubjg)}(h **Return**h]j)}(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.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&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_mixer (C function)c.snd_ac97_mixerhNtauh1hhjhhhNhNubh)}(hhh](h)}(hjint snd_ac97_mixer (struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h]h)}(hiint snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](h)}(hinth]hint}(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 }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhj:hMubj)}(hsnd_ac97_mixerh]j%)}(hsnd_ac97_mixerh]hsnd_ac97_mixer}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhj:hMubj@)}(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}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(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)}jjOsbc.snd_ac97_mixerasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hbush]hbus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(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$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htemplateh]htemplate}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(hstruct snd_ac97 **rac97h](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjGubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hrac97h]hrac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhj:hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj:hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hMhj!hhubjb)}(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&]uh1jahj!hhhj:hMubeh}(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.chMhjubj)}(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)}(hjh]hstruct snd_ac97_bus *bus}(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 AC97 bus which codec is attached toh]h'the AC97 bus which codec is attached to}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhjubj)}(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)}(hjSh]h"struct snd_ac97_template *template}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjMubj)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjubj)}(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&]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&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubjg)}(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.chMhjubjg)}(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.chMhjubjg)}(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.chMhjubjg)}(h **Return**h]j)}(hj h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(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.chM hjubeh}(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}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj`hM ubj)}(hsnd_ac97_update_powerh]j%)}(hsnd_ac97_update_powerh]hsnd_ac97_update_power}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhj`hM 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)}jjusbc.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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int poweruph](h)}(hinth]hint}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj%)}(hpoweruph]hpowerup}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjNhhhj`hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhj`hM ubah}(h]jEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj`hM hjGhhubjb)}(hhh]jg)}(hupdate the powerdown registerh]hupdate the powerdown register}(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 hjyhhubah}(h]h ]h"]h$]h&]uh1jahjGhhhj`hM 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)}(hjh]hint 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)}(h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATEh]h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATE}(hjhhhNhNubah}(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)}(hj/h]h int powerup}(hj1hhhNhNubah}(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 hj)ubj)}(hhh]jg)}(hnon-zero when power up the parth]hnon-zero when power up the part}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhM hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjjh]h Description}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]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.C}(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$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(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_suspendasbuh1hhjubj)}(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 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)}(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(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}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjShhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjehM ubj)}(hsnd_ac97_resumeh]j%)}(hsnd_ac97_resumeh]hsnd_ac97_resume}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjehM 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)}jjzsbc.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?hjShhhjehM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjehM ubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjehM hjLhhubjb)}(hhh]jg)}(h&General resume function for AC97 codech]h&General resume 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&]uh1jahjLhhhjehM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhjhNhNubj)}(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)}(hj9h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(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 hj3ubj)}(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&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjRubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhM hjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhM hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj3ubjg)}(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 hj3ubeh}(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$hjubah}(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}(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}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_tune_hardwareasbuh1hhjubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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]jOc.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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hoverrideh]hoverride}(hjVhhhNhNubah}(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)}(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 hj}hhubah}(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 hjubj)}(hhh]jg)}(h quirk listh]h quirk list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hO``const char *override`` explicit quirk value (overrides the list if non-NULL) h](j)}(h``const char *override``h]j)}(hj3h]hconst char *override}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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)}(h5explicit quirk value (overrides the list if non-NULL)h]h5explicit quirk value (overrides the list if non-NULL)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhM hjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjnh]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]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}(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}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_set_rateasbuh1hhjubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjphhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned 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}(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)}(h*change the rate of the given input/output.h]h*change the rate of the given input/output.}(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.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhjhNhNubj)}(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)}(hjBh]h Parameters}(hjDhhhNhNubah}(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.chKhj<ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjah]hstruct snd_ac97 *ac97}(hjchhhNhNubah}(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.chKhj[ubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhKhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhKhjXubj)}(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&]uh1jhjhKhjXubj)}(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&]uh1jhjhKhjXubeh}(h]h ]h"]h$]h&]uh1jhj<ubjg)}(h**Description**h]j)}(hjh]h Description}(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.chKhj<ubjg)}(hChanges the rate of the given input/output on the codec. If the codec doesn't support VAR, the rate must be 48000 (except for SPDIF).h]hChanges the rate of the given input/output on the codec. If the codec doesn’t support VAR, the rate must be 48000 (except for SPDIF).}(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.chKhj<ubjg)}(hXThe valid registers are AC97_PCM_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits.h]hXThe valid registers are AC97_PCM_MIC_ADC_RATE, AC97_PCM_FRONT_DAC_RATE, AC97_PCM_LR_ADC_RATE. AC97_PCM_SURR_DAC_RATE and AC97_PCM_LFE_DAC_RATE are accepted if the codec supports them. AC97_SPDIF is accepted as a pseudo register to modify the SPDIF status bits.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj<ubjg)}(h **Return**h]j)}(hjDh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj<ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ac97_pcm_assign (C function)c.snd_ac97_pcm_assignhNtauh1hhjhhhNhNubh)}(hhh](h)}(hjint snd_ac97_pcm_assign (struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h]h)}(hiint snd_ac97_pcm_assign(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_pcm_assignh]j%)}(hsnd_ac97_pcm_assignh]hsnd_ac97_pcm_assign}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hR(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](jF)}(hstruct snd_ac97_bus *bush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(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*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short pcms_counth](h)}(hunsignedh]hunsigned}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hshorth]hshort}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(h pcms_counth]h pcms_count}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(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]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj~hhubjb)}(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.chMhj"hhubah}(h]h ]h"]h$]h&]uh1jahj~hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_ac97_bus *bus`` the ac97 bus instance ``unsigned short pcms_count`` count of PCMs to be assigned ``const struct ac97_pcm *pcms`` PCMs to be assigned **Description** It assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjGh]h Parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjAubj)}(hhh](j)}(h3``struct snd_ac97_bus *bus`` the ac97 bus instance h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hjfh]hstruct snd_ac97_bus *bus}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj`ubj)}(hhh]jg)}(hthe ac97 bus instanceh]hthe ac97 bus instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj]ubj)}(h;``unsigned 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&]uh1jhjhMhj]ubj)}(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&]uh1jhjhMhj]ubeh}(h]h ]h"]h$]h&]uh1jhjAubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjAubjg)}(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.chMhjAubjg)}(h **Return**h]j)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjAubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjAubeh}(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&]uh1hhj{hhhj/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 hj{hhhjhM!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>uh1jhj{hhhjhM!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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rateh](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%)}(hrateh]hrate}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum ac97_pcm_cfg cfgh](jL)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubh)}(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]jc.snd_ac97_pcm_openasbuh1hhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj%)}(hcfgh]hcfg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(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}(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{hhhjhM!ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhM!ubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM!hjthhubjb)}(hhh]jg)}(hopens the given AC97 pcmh]hopens the given AC97 pcm}(hjDhhhNhNubah}(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!hjAhhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhM!ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjhNhNubj)}(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)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(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%hj`ubj)}(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"hj|ubj)}(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#hj|ubj)}(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&]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)}(houtput stream characteristicsh]houtput stream characteristics}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM$hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM$hj|ubj)}(hX``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm h](j)}(h``unsigned short slots``h]j)}(hj0h]hunsigned short slots}(hj2hhhNhNubah}(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%hj*ubj)}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhM%hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM%hj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(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'hj`ubjg)}(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&hj`ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.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&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM)hj`ubeh}(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$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct ac97_pcm *pcm)h]jF)}(hstruct ac97_pcm *pcmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_closeasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(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)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(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)}(hj:h]hReturn}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(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.}(hjPhhhNhNubah}(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&]uh1hhj{hhhj/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 hj{hhhjhMubj)}(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>uh1jhj{hhhjhMubj@)}(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}(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{hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhMubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjthhubjb)}(hhh]jg)}(hset double rate constraintsh]hset double rate constraints}(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.chMhj<hhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1hhhhjhNhNubj)}(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)}(hjah]h Parameters}(hjchhhNhNubah}(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.chMhj[ubj)}(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&]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.chMhjzubj)}(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&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMhjwubah}(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&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj[ubjg)}(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.chMhj[ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.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&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]ac97-codec-apiah ]h"]ac97 codec apiah$]h&]uh1hhj1hhhhhK9ubh)}(hhh](h)}(hVirtual Master Control APIh]hVirtual Master Control API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK>ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_add_followers (C function)c.snd_ctl_add_followershNtauh1hhjhhhNhNubh)}(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}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhjNhMubj)}(hsnd_ctl_add_followersh]j%)}(hsnd_ctl_add_followersh]hsnd_ctl_add_followers}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhjNhMubj@)}(hM(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjcsbc.snd_ctl_add_followersasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(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 reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_add_followersasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubjF)}(hconst char *const *listh](jL)}(hj\h]hconst}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hcharh]hchar}(hjzhhhNhNubah}(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[ubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjuubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj<hhhjNhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhjNhMubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNhMhj5hhubjb)}(hhh]jg)}(h!add multiple followers to vmasterh]h!add multiple followers to vmaster}(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&]uh1jahj5hhhjNhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(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)}(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)}(h(``struct snd_card *card`` card instance 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj0ubj)}(hhh]jg)}(h card instanceh]h card instance}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(hC``struct snd_kcontrol *master`` the target vmaster kcontrol object h](j)}(h``struct snd_kcontrol *master``h]j)}(hjoh]hstruct snd_kcontrol *master}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjiubj)}(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&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(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&]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:63: ./sound/core/vmaster.chM!hjubjg)}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_make_virtual_master (C function)c.snd_ctl_make_virtual_masterhNtauh1hhjhhhNhNubh)}(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 }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj5hMubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jsnd_ctl_make_virtual_mastersbc.snd_ctl_make_virtual_masterasbuh1hhj$hhhj5hMubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj5hMubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj5hMubj)}(hsnd_ctl_make_virtual_masterh]j%)}(hjeh]hsnd_ctl_make_virtual_master}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj$hhhj5hMubj@)}(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}(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%)}(htlvh]htlv}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj$hhhj5hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj5hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj5hMhjhhubjb)}(hhh]jg)}(hCreate a virtual master controlh]hCreate a virtual master control}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjkhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj5hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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&]uh1jhj!ubah}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_vmaster_hookasbuh1hhj 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)}(h%void (*hook)(void *private_data, int)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(h(h]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hhookh]hhook}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubj)}(h)h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubh)}(hvoidh]hvoid}(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%)}(h private_datah]h private_data}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubj)}(h,h]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj|ubj)}(hjh]h)}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(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&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.chMhj ubj)}(hhh]jg)}(hthe hook functionh]hthe hook function}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhjubj)}(h<``void *private_data`` the private_data pointer to be saved h](j)}(h``void *private_data``h]j)}(hj_h]hvoid *private_data}(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:63: ./sound/core/vmaster.chMhjYubj)}(hhh]jg)}(h$the private_data pointer to be savedh]h$the private_data pointer to be saved}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjubeh}(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&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_sync_vmaster (C function)c.snd_ctl_sync_vmasterhNtauh1hhjhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(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>uh1jhjhhhjhMubj@)}(h/(struct snd_kcontrol *kcontrol, bool hook_only)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}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jj)sbc.snd_ctl_sync_vmasterasbuh1hhj?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)}(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>uh1jEhj;ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h#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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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)}(hj;h]hstruct snd_kcontrol *kcontrol}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj5ubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj2ubj)}(h&``bool hook_only`` sync only the hook h](j)}(h``bool hook_only``h]j)}(hjth]hbool hook_only}(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:63: ./sound/core/vmaster.chMhjnubj)}(hhh]jg)}(hsync only the hookh]hsync only the hook}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhj2ubeh}(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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_apply_vmaster_followers (C function)!c.snd_ctl_apply_vmaster_followershNtauh1hhjhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(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>uh1jhjhhhjhMubj@)}(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}(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}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jj)sb!c.snd_ctl_apply_vmaster_followersasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfunch]hfunc}(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}(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}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j}!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h vfollowerh]h vfollower}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h,}(hjxhhhNhNubah}(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)}(hjh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(h void *argh](h)}(hvoidh]hvoid}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hargh]harg}(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)}(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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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:63: ./sound/core/vmaster.chM hjubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM hjubj)}(hl``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)}(hj/h]hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)}(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:63: ./sound/core/vmaster.chM hj)ubj)}(hhh]jg)}(hfunction to applyh]hfunction to apply}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhM hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhM hjubj)}(h)``void *arg`` optional function argument h](j)}(h ``void *arg``h]j)}(hjhh]h void *arg}(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:63: ./sound/core/vmaster.chM hjbubj)}(hhh]jg)}(hoptional function argumenth]hoptional function argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hM hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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}(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&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_find_id_mixer (C function)c.snd_ctl_find_id_mixerhNtauh1hhjhhhNhNubh)}(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}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj)}(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$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNjj)}j]j)}jsnd_ctl_find_id_mixersbc.snd_ctl_find_id_mixerasbuh1hhjhhhj.hKubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj.hKubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj.hKubj)}(hsnd_ctl_find_id_mixerh]j%)}(hj^h]hsnd_ctl_find_id_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj.hKubj@)}(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]j\c.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}(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&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(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.hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj.hKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.hKhjhhubjb)}(hhh]jg)}(h4find the control instance with the given name stringh]h4find the control instance with the given name string}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjvhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj.hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(hjh]hconst char *name}(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 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)}(hj.h]h Description}(hj0hhhNhNubah}(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.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 }(hjDhhhNhNubj)}(h**SNDRV_CTL_ELEM_IFACE_MIXER**h]hSNDRV_CTL_ELEM_IFACE_MIXER}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh. Other fields are set to zero.}(hjDhhhNhNubeh}(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().}(hjehhhNhNubah}(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)}(hjvh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(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&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_add_follower (C function)c.snd_ctl_add_followerhNtauh1hhjhhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_followerasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *followerh](jL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(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]jDc.snd_ctl_add_followerasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(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&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(hjh]h Parameters}(hj!hhhNhNubah}(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)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hj>h]hstruct snd_kcontrol *master}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj8ubj)}(hhh]jg)}(hvmaster elementh]hvmaster element}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShKhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShKhj5ubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hjwh]hstruct snd_kcontrol *follower}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjqubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhKhj5ubeh}(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:64: ./include/sound/control.hhKhjubjg)}(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.hhKhjubjg)}(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.hhKhjubjg)}(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.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)}(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.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_add_follower_uncached (C function)c.snd_ctl_add_follower_uncachedhNtauh1hhjhhhNhNubh)}(hhh](h)}(h^int snd_ctl_add_follower_uncached (struct snd_kcontrol *master, struct snd_kcontrol *follower)h]h)}(h]int snd_ctl_add_follower_uncached(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjJhM ubj)}(hsnd_ctl_add_follower_uncachedh]j%)}(hsnd_ctl_add_follower_uncachedh]hsnd_ctl_add_follower_uncached}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjJhM ubj@)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_ctl_add_follower_uncachedasbuh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(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*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhjJhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4hhhjJhM ubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhM hj1hhubjb)}(hhh]jg)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjihhubah}(h]h ]h"]h$]h&]uh1jahj1hhhjJhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(hj!h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(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.}(hj7hhhNhNubah}(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.}(hjFhhhNhNubah}(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)}(hjWh]hReturn}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(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.}(hjmhhhNhNubah}(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&]uh1jhjhhhNhNubeh}(h]virtual-master-control-apiah ]h"]virtual master control apiah$]h&]uh1hhj1hhhhhK>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 }(hjhhhNhNubah}(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 reftargetj+modnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_receiveasbuh1hhjubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst unsigned char *bufferh](jL)}(hj\h]hconst}(hj}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(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?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}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnhj9hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjhNhNubj)}(hX4**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``const unsigned char *buffer`` the buffer pointer ``int count`` the data size to read **Description** Reads the data from the internal buffer. **Return** The size of read data, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhjXubj)}(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}(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:71: ./sound/core/rawmidi.clhMohjwubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMohjtubj)}(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&]uh1jhjhMphjtubj)}(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&]uh1jhjhMqhjtubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshjXubjg)}(h(Reads the data from the internal buffer.h]h(Reads the data from the internal buffer.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhjXubjg)}(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:71: ./sound/core/rawmidi.chMthjXubjg)}(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.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMuhjXubeh}(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 reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_transmit_emptyasbuh1hhjubj)}(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?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}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM.hjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjhNhNubj)}(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)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM2hjrubj)}(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&]uh1jhjrubjg)}(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.chM1hjrubjg)}(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.chM1hjrubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/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 hjhhhj%hMxubj)}(hsnd_rawmidi_transmit_peekh]j%)}(hsnd_rawmidi_transmit_peekh]hsnd_rawmidi_transmit_peek}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj%hMxubj@)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jj:sbc.snd_rawmidi_transmit_peekasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(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>uh1jEhjLubjF)}(h int counth](h)}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj2hhhNhNubah}(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>uh1jEhjLubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj%hMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj%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}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMxhjghhubah}(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)}(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.chM{hjubj)}(hhh]jg)}(hdata size to transferh]hdata size to transfer}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hM{hj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hM{hjubeh}(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&]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.}(hjnhhhNhNubah}(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.}(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~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: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}(hjhhhNhNubah}(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 }(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 reftargetj0 modnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_transmit_ackasbuh1hhj ubj)}(h h]h }(hjN hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj\ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hji hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(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>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)}(hacknowledge the transmissionh]hacknowledge the transmission}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hXt**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``int count`` the transferred count **Description** Advances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished. **Return** The advanced size if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(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$``int count`` the transferred count h](j)}(h ``int count``h]j)}(hjB h]h int count}(hjD 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 transferred counth]hthe transferred count}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjW hMhjX ubah}(h]h ]h"]h$]h&]uh1jhj< ubeh}(h]h ]h"]h$]h&]uh1jhjW 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:71: ./sound/core/rawmidi.chMhj ubjg)}(hAdvances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished.h]hAdvances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished.}(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 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)}(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.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_rawmidi_transmit (C function)c.snd_rawmidi_transmithNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_rawmidi_transmit (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]h)}(hcint snd_rawmidi_transmit(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj)}(h h]h }(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&]uh1jKhj" ubj)}(h h]h }(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj" ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjD hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF modnameN classnameNjj)}j]j)}jj sbc.snd_rawmidi_transmitasbuh1hhj" 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%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj" ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned char *bufferh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hbufferh]hbuffer}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h 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>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"copy from the buffer to the deviceh]h"copy from the buffer to the device}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj9 hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjT jjT 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)}(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.chMhjX 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.chMhjw ubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjw ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjt 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 hMhjt 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 hMhjt ubeh}(h]h ]h"]h$]h&]uh1jhjX 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:71: ./sound/core/rawmidi.chMhjX 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.}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjX ubjg)}(h **Return**h]j)}(hjQ h]hReturn}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjX 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.}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjX 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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h substreamh]h substream}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhj hhubjb)}(hhh]jg)}(h)Discard the all pending bytes and proceedh]h)Discard the all pending bytes and proceed}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjShhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjhNhNubj)}(hz**Parameters** ``struct snd_rawmidi_substream *substream`` rawmidi substream **Return** the number of discarded bytesh](jg)}(h**Parameters**h]j)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjrubj)}(hhh]j)}(h>``struct snd_rawmidi_substream *substream`` rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]jg)}(hrawmidi substreamh]hrawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubjg)}(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.chMhjrubjg)}(hthe number of discarded bytesh]hthe number of discarded bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjrubeh}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/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 hjhhhj%hMPubj)}(hsnd_rawmidi_newh]j%)}(hsnd_rawmidi_newh]hsnd_rawmidi_new}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj%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}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jj:sbc.snd_rawmidi_newasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(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>uh1jEhjLubjF)}(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}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(hint output_counth](h)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj%)}(h output_counth]h output_count}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(hint input_counth](h)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj%)}(h input_counth]h input_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLubjF)}(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>uh1jEhjLubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj%hMPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj%hMPubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%hMPhj hhubjb)}(hhh]jg)}(hcreate a rawmidi instanceh]hcreate a rawmidi instance}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPhj2hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj%hMPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhjhNhNubj)}(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)}(hjWh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMThjQubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjvh]hstruct snd_card *card}(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:71: ./sound/core/rawmidi.chMQhjpubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMQhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhMQhjmubj)}(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&]uh1jhjhMRhjmubj)}(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&]uh1jhjhMShjmubj)}(h2``int output_count`` the number of output streams h](j)}(h``int output_count``h]j)}(hj!h]hint output_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:71: ./sound/core/rawmidi.chMThjubj)}(hhh]jg)}(hthe number of output streamsh]hthe number of output streams}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hMThj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMThjmubj)}(h0``int input_count`` the number of input streams h](j)}(h``int input_count``h]j)}(hjZh]hint input_count}(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:71: ./sound/core/rawmidi.chMUhjTubj)}(hhh]jg)}(hthe number of input streamsh]hthe number of input streams}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMUhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohMUhjmubj)}(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&]uh1jhjhMVhjmubeh}(h]h ]h"]h$]h&]uh1jhjQubjg)}(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.chMXhjQubjg)}(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.chMWhjQubjg)}(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.chMZhjQubjg)}(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[hjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_set_ops (C function)c.snd_rawmidi_set_opshNtauh1hhjhhhNhNubh)}(hhh](h)}(hcvoid snd_rawmidi_set_ops (struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h]h)}(hbvoid snd_rawmidi_set_ops(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](h)}(hvoidh]hvoid}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM&ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjHhM&ubj)}(hsnd_rawmidi_set_opsh]j%)}(hsnd_rawmidi_set_opsh]hsnd_rawmidi_set_ops}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhjHhM&ubj@)}(hJ(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](jF)}(hstruct snd_rawmidi *rmidih](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(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)}jj]sbc.snd_rawmidi_set_opsasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(hrmidih]hrmidi}(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!const struct snd_rawmidi_ops *opsh](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}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_rawmidi_opsh]hsnd_rawmidi_ops}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]jc.snd_rawmidi_set_opsasbuh1hhjubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hopsh]hops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhjHhM&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhjHhM&ubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhM&hj/hhubjb)}(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&]uh1jahj/hhhjHhM&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'hjubj)}(hhh]jg)}(hthe rawmidi instanceh]hthe rawmidi instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubj)}(h>``int stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX h](j)}(h``int stream``h]j)}(hj4h]h int stream}(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)}(h.the stream direction, SNDRV_RAWMIDI_STREAM_XXXh]h.the stream direction, SNDRV_RAWMIDI_STREAM_XXX}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM(hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM(hjubj)}(h9``const struct snd_rawmidi_ops *ops`` the operator table h](j)}(h%``const struct snd_rawmidi_ops *ops``h]j)}(hjmh]h!const struct snd_rawmidi_ops *ops}(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:71: ./sound/core/rawmidi.chM)hjgubj)}(hhh]jg)}(hthe operator tableh]hthe operator table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(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: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)}(huh1jhjhhhj*hKqubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjTubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hirqh]hirq}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(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>uh1jEhjPubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj*hKqubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj*hKqubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hKqhjhhubjb)}(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&]uh1jahjhhhj*hKqubeh}(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)}(hj!h]hint irq}(hj#hhhNhNubah}(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.chKrhjubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hKrhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hKrhjubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjZh]h void *dev_id}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKshjTubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohKshjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKshjubeh}(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.chKthjubjg)}(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.chKvhjubjg)}(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$hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jsnd_mpu401_uart_interrupt_txsbc.snd_mpu401_uart_interrupt_txasbuh1hhjhhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjEhKubj)}(hsnd_mpu401_uart_interrupt_txh]j%)}(hjBh]hsnd_mpu401_uart_interrupt_tx}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjEhKubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkubjF)}(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>uh1jEhjkubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjEhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjEhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhKhjhhubjb)}(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&]uh1jahjhhhjEhKubeh}(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 output. **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.chKhjubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hj<h]hint irq}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhj6ubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhKhj3ubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjuh]h void *dev_id}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjoubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhKhj3ubeh}(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.chKhjubjg)}(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.chKhjubjg)}(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.chKhjubjg)}(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.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_mpu401_uart_new (C function)c.snd_mpu401_uart_newhNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_mpu401_uart_new (struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi ** rrawmidi)h]h)}(hint snd_mpu401_uart_new(struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi **rrawmidi)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjJhMubj)}(hsnd_mpu401_uart_newh]j%)}(hsnd_mpu401_uart_newh]hsnd_mpu401_uart_new}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjJhMubj@)}(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}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_mpu401_uart_newasbuh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(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>uh1jEhjqubjF)}(hunsigned short hardwareh](h)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hhardwareh]hhardware}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hunsigned long porth](h)}(hunsignedh]hunsigned}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(hporth]hport}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(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>uh1jEhjqubjF)}(hint irqh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hirqh]hirq}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hstruct snd_rawmidi **rrawmidih](jL)}(hjOh]hstruct}(hjHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]jc.snd_mpu401_uart_newasbuh1hhjDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj%)}(hrrawmidih]hrrawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhjJhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4hhhjJhMubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhMhj1hhubjb)}(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&]uh1jahj1hhhjJhMubeh}(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&]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.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&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubj)}(h,``int device`` the device index, zero-based h](j)}(h``int device``h]j)}(hjPh]h int device}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjJubj)}(hhh]jg)}(hthe device index, zero-basedh]hthe device index, zero-based}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehMhjubj)}(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&]uh1jhjhMhjubj)}(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&]uh1jhjhMhjubj)}(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.chMhjubj)}(hhh]jg)}(hbitflags MPU401_INFO_XXXh]hbitflags MPU401_INFO_XXX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h:``int irq`` the ISA irq number, -1 if not to be allocated h](j)}(h ``int irq``h]j)}(hj4h]hint irq}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(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 ISA irq number, -1 if not to be allocatedh]h-the ISA irq number, -1 if not to be allocated}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjubj)}(hQ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h"``struct snd_rawmidi ** rrawmidi``h]j)}(hjmh]hstruct snd_rawmidi ** rrawmidi}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjgubj)}(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&]uh1jhjgubeh}(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&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjubjg)}(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.chMhjubjg)}(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.chMhjubjg)}(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.chMhjubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKNubh)}(hhh](h)}(hProc Info Interfaceh]hProc Info Interface}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhhhKQubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_line (C function)c.snd_info_get_linehNtauh1hhj+hhhNhNubh)}(hhh](h)}(hKint snd_info_get_line (struct snd_info_buffer *buffer, char *line, int len)h]h)}(hJint snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)h](h)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjchM@ubj)}(hsnd_info_get_lineh]j%)}(hsnd_info_get_lineh]hsnd_info_get_line}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjchM@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)}jjxsbc.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}(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%)}(hlineh]hline}(hj- hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint lenh](h)}(hinth]hint}(hjF hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjB ubj)}(h h]h }(hjT hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB ubj%)}(hlenh]hlen}(hjb hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjQhhhjchM@ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjMhhhjchM@ubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchM@hjJhhubjb)}(hhh]jg)}(h$read one line from the procfs bufferh]h$read one line from the procfs buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@hj hhubah}(h]h ]h"]h$]h&]uh1jahjJhhhjchM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj+hNhNubj)}(hX**Parameters** ``struct snd_info_buffer *buffer`` the procfs buffer ``char *line`` the buffer to store ``int len`` the max. buffer size **Description** Reads one line from the buffer and stores the string. **Return** Zero if successful, or 1 if error or EOF.h](jg)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj ubj)}(hhh](j)}(h5``struct snd_info_buffer *buffer`` the procfs buffer h](j)}(h"``struct snd_info_buffer *buffer``h]j)}(hj h]hstruct snd_info_buffer *buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMAhj ubj)}(hhh]jg)}(hthe procfs bufferh]hthe procfs buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMAhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMAhj ubj)}(h#``char *line`` the buffer to store h](j)}(h``char *line``h]j)}(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}(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)}(h!``int len`` the max. buffer size h](j)}(h ``int len``h]j)}(hj?!h]hint len}(hjA!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.chMChj9!ubj)}(hhh]jg)}(hthe max. buffer sizeh]hthe max. buffer size}(hjX!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjT!hMChjU!ubah}(h]h ]h"]h$]h&]uh1jhj9!ubeh}(h]h ]h"]h$]h&]uh1jhjT!hMChj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjz!h]h Description}(hj|!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx!ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj ubjg)}(h5Reads one line from the buffer and stores the string.h]h5Reads one line from the buffer and stores the string.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj 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.chMFhj ubjg)}(h)Zero if successful, or 1 if error or EOF.h]h)Zero if successful, or 1 if error or EOF.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj+hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_str (C function)c.snd_info_get_strhNtauh1hhj+hhhNhNubh)}(hhh](h)}(hDconst char * snd_info_get_str (char *dest, const char *src, int len)h]h)}(hBconst char *snd_info_get_str(char *dest, const char *src, int len)h](jL)}(hj\h]hconst}(hj!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj!hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.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*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMdubj)}(hsnd_info_get_strh]j%)}(hsnd_info_get_strh]hsnd_info_get_str}(hj/"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+"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}(hjK"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjG"ubj)}(h h]h }(hjY"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjG"ubj)}(hjh]h*}(hjg"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjG"ubj%)}(hdesth]hdest}(hjt"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjG"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjC"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>uh1jEhjC"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>uh1jEhjC"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}(hj0#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMdhj-#hhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj!hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjjH#jjH#jjjuh1hhhhj+hNhNubj)}(hXX**Parameters** ``char *dest`` the buffer to store the string token ``const char *src`` the original string ``int len`` the max. length of token - 1 **Description** Parses the original string and copy a token to the given string buffer. **Return** The updated pointer of the original string so that it can be used for the next call.h](jg)}(h**Parameters**h]j)}(hjR#h]h Parameters}(hjT#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhjL#ubj)}(hhh](j)}(h4``char *dest`` the buffer to store the string token h](j)}(h``char *dest``h]j)}(hjq#h]h char *dest}(hjs#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo#ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMehjk#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&]uh1jhjk#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMehjh#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#hMfhjh#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#hMghjh#ubeh}(h]h ]h"]h$]h&]uh1jhjL#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.chMihjL#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.}(hj4$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhjL#ubjg)}(h **Return**h]j)}(hjE$h]hReturn}(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.chMkhjL#ubjg)}(hTThe updated pointer of the original string so that it can be used for the next call.h]hTThe updated pointer of the original string so that it can be used for the next call.}(hj[$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhjL#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj+hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_info_create_module_entry (C function)c.snd_info_create_module_entryhNtauh1hhj+hhhNhNubh)}(hhh](h)}(h~struct snd_info_entry * snd_info_create_module_entry (struct module * module, const char *name, struct snd_info_entry *parent)h]h)}(h{struct snd_info_entry *snd_info_create_module_entry(struct module *module, const char *name, struct snd_info_entry *parent)h](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj$hMubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jsnd_info_create_module_entrysbc.snd_info_create_module_entryasbuh1hhj$hhhj$hMubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$hhhj$hMubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hMubj)}(hsnd_info_create_module_entryh]j%)}(hj$h]hsnd_info_create_module_entry}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj$hhhj$hMubj@)}(hH(struct module *module, const char *name, struct snd_info_entry *parent)h](jF)}(hstruct module *moduleh](jL)}(hjOh]hstruct}(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}(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*}(hjN%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj%)}(hmoduleh]hmodule}(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}(hjt%hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjp%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp%ubh)}(hcharh]hchar}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjp%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp%ubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjp%ubj%)}(hnameh]hname}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjp%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*}(hj&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}(hjR&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjO&hhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjj&jjj&jjjuh1hhhhj+hNhNubj)}(hX4**Parameters** ``struct module * module`` the module pointer ``const char *name`` the file name ``struct snd_info_entry *parent`` the parent directory **Description** Creates a new info entry and assigns it to the given module. **Return** The pointer of the new instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hjt&h]h Parameters}(hjv&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr&ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjn&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}(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&]uh1jhjn&ubjg)}(h**Description**h]j)}(hj@'h]h Description}(hjB'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.chMhjn&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}(hj8(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4(ubj)}(h h]h }(hjE(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4(ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjV(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjS(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjX(modnameN classnameNjj)}j]j'c.snd_info_create_card_entryasbuh1hhj4(ubj)}(h h]h }(hjt(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4(ubj%)}(hcardh]hcard}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0(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>uh1jEhj0(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_card_entryasbuh1hhj)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%)}(hparenth]hparent}(hj\)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0(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)jjjuh1hhhhj+hNhNubj)}(hX1**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the file name ``struct snd_info_entry * parent`` the parent directory **Description** Creates a new info entry and assigns it to the given card. **Return** The pointer of the new instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj)ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(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}(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)}(h8``struct snd_info_entry * parent`` the parent directory h](j)}(h"``struct snd_info_entry * parent``h]j)}(hj9*h]hstruct snd_info_entry * parent}(hj;*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7*ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj3*ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hjR*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjN*hMhjO*ubah}(h]h ]h"]h$]h&]uh1jhj3*ubeh}(h]h ]h"]h$]h&]uh1jhjN*hMhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hjt*h]h Description}(hjv*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr*ubah}(h]h ]h"]h$]h&]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&]uh1jhj+hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_info_free_entry (C function)c.snd_info_free_entryhNtauh1hhj+hhhNhNubh)}(hhh](h)}(h8void snd_info_free_entry (struct snd_info_entry * entry)h]h)}(h6void snd_info_free_entry(struct snd_info_entry *entry)h](h)}(hvoidh]hvoid}(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}(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}(hjM+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJ+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjO+modnameN classnameNjj)}j]j)}jj+sbc.snd_info_free_entryasbuh1hhj++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%)}(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+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+jjjuh1hhhhj+hNhNubj)}(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)}(hj.,h]h Description}(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:82: ./sound/core/info.chMhj+ubjg)}(hReleases the info entry.h]hReleases the info entry.}(hjD,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&]uh1jhj+hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_register (C function)c.snd_info_registerhNtauh1hhj+hhhNhNubh)}(hhh](h)}(h4int snd_info_register (struct snd_info_entry *entry)h]h)}(h3int snd_info_register(struct snd_info_entry *entry)h](h)}(hinth]hint}(hjs,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjo,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 hjo,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>uh1jhjo,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?hjo,hhhj,hM$ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjk,hhhj,hM$ubah}(h]jf,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj,hM$hjh,hhubjb)}(hhh]jg)}(hregister the info entryh]hregister the info entry}(hj3-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$hj0-hhubah}(h]h ]h"]h$]h&]uh1jahjh,hhhj,hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjK-jjK-jjjuh1hhhhj+hNhNubj)}(h**Parameters** ``struct snd_info_entry *entry`` the info entry **Description** Registers the proc info entry. The all children entries are registered recursively. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(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:82: ./sound/core/info.chM(hjO-ubj)}(hhh]j)}(h0``struct snd_info_entry *entry`` the info entry h](j)}(h ``struct snd_info_entry *entry``h]j)}(hjt-h]hstruct snd_info_entry *entry}(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:82: ./sound/core/info.chM%hjn-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&]uh1jhjn-ubeh}(h]h ]h"]h$]h&]uh1jhj-hM%hjk-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:82: ./sound/core/info.chM'hjO-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&hjO-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)hjO-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*hjO-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj+hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_rw_proc_new (C function)c.snd_card_rw_proc_newhNtauh1hhj+hhhNhNubh)}(hhh](h)}(hint snd_card_rw_proc_new (struct snd_card *card, const char *name, void *private_data, void (*read)(struct snd_info_entry *, struct snd_info_buffer *), void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer))h]h)}(hint snd_card_rw_proc_new(struct snd_card *card, const char *name, void *private_data, void (*read)(struct snd_info_entry*, struct snd_info_buffer*), void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer))h](h)}(hinth]hint}(hj.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 }(hj*.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}(hj<.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8.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}(hjX.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjT.ubj)}(h h]h }(hje.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT.ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjv.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjs.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjx.modnameN classnameNjj)}j]j)}jj>.sbc.snd_card_rw_proc_newasbuh1hhjT.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT.ubj%)}(hcardh]hcard}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjT.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjP.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>uh1jEhjP.ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj'/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#/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%)}(h private_datah]h private_data}(hjP/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjP.ubjF)}(h=void (*read)(struct snd_info_entry*, struct snd_info_buffer*)h](h)}(hvoidh]hvoid}(hji/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhje/ubj)}(h h]h }(hjw/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje/ubj)}(hjh]h(}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj%)}(hreadh]hread}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hje/ubj)}(hjh]h)}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj)}(hjh]h(}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubjL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhje/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje/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_newasbuh1hhje/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj)}(hjh]h,}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje/ubjL)}(hjOh]hstruct}(hj+0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhje/ubj)}(h h]h }(hj80hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje/ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hjI0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjF0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjK0modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhje/ubj)}(hjh]h*}(hjg0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubj)}(hjh]h)}(hjt0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjP.ubjF)}(hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)h](h)}(hvoidh]hvoid}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h(}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hwriteh]hwrite}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubj)}(hjh]h)}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h(}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubjL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj 1modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhj0ubj)}(h h]h }(hj&1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj41hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hentryh]hentry}(hjA1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubj)}(hjh]h,}(hjO1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj\1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubjL)}(hjOh]hstruct}(hjj1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hjw1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhj0ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hbufferh]hbuffer}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubj)}(hjh]h)}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjP.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.chMBhj1hhubah}(h]h ]h"]h$]h&]uh1jahj.hhhj).hMBubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhj+hNhNubj)}(hX<**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the file name ``void *private_data`` the arbitrary private data ``void (*read)(struct snd_info_entry *, struct snd_info_buffer *)`` the read callback ``void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)`` the write callback, NULL for read-only **Description** This proc file entry will be registered via snd_card_register() call, and it will be removed automatically at the card removal, too. **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj2ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj92h]hstruct snd_card *card}(hj;2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj72ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChj32ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjR2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjN2hMChjO2ubah}(h]h ]h"]h$]h&]uh1jhj32ubeh}(h]h ]h"]h$]h&]uh1jhjN2hMChj02ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hjr2h]hconst char *name}(hjt2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp2ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhjl2ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMDhj2ubah}(h]h ]h"]h$]h&]uh1jhjl2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMDhj02ubj)}(h2``void *private_data`` the arbitrary private data h](j)}(h``void *private_data``h]j)}(hj2h]hvoid *private_data}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj2ubj)}(hhh]jg)}(hthe arbitrary private datah]hthe arbitrary private data}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMEhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMEhj02ubj)}(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)}(hj2h]h?void (*read)(struct snd_info_entry *, struct snd_info_buffer *)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj2ubj)}(hhh]jg)}(hthe read callbackh]hthe read callback}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMFhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMFhj02ubj)}(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)}(hj3h]hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhj3ubj)}(hhh]jg)}(h&the write callback, NULL for read-onlyh]h&the write callback, NULL for read-only}(hj63hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj23hMGhj33ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj23hMGhj02ubeh}(h]h ]h"]h$]h&]uh1jhj2ubjg)}(h**Description**h]j)}(hjX3h]h Description}(hjZ3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhj2ubjg)}(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.}(hjn3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMHhj2ubjg)}(h **Return**h]j)}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMKhj2ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMLhj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj+hhhNhNubeh}(h]proc-info-interfaceah ]h"]proc info interfaceah$]h&]uh1hhjhhhhhKQubeh}(h] proc-info-apiah ]h"] proc info apiah$]h&]uh1hhhhhhhhKNubh)}(hhh](h)}(hCompress Offloadh]hCompress Offload}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhKUubh)}(hhh](h)}(hCompress Offload APIh]hCompress Offload API}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhKXubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_stop_error (C function)c.snd_compr_stop_errorhNtauh1hhj3hhhNhNubh)}(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}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMMubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj4hMMubj)}(hsnd_compr_stop_errorh]j%)}(hsnd_compr_stop_errorh]hsnd_compr_stop_error}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj4hMMubj@)}(h8(struct snd_compr_stream *stream, snd_pcm_state_t state)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hj34hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/4ubj)}(h h]h }(hj@4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/4ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjQ4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjN4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjS4modnameN classnameNjj)}j]j)}jj4sbc.snd_compr_stop_errorasbuh1hhj/4ubj)}(h h]h }(hjq4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/4ubj%)}(hstreamh]hstream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+4ubjF)}(hsnd_pcm_state_t stateh](h)}(hhh]j%)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]jm4c.snd_compr_stop_errorasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(hstateh]hstate}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj+4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj3hhhj4hMMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj4hMMubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMMhj3hhubjb)}(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&]uh1jahj3hhhj4hMMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj3hNhNubj)}(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)}(hj 5h]h Parameters}(hj"5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj5ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj?5h]hstruct snd_compr_stream *stream}(hjA5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=5ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMNhj95ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hjX5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjT5hMNhjU5ubah}(h]h ]h"]h$]h&]uh1jhj95ubeh}(h]h ]h"]h$]h&]uh1jhjT5hMNhj65ubj)}(h<``snd_pcm_state_t state`` state to transition the stream to h](j)}(h``snd_pcm_state_t state``h]j)}(hjx5h]hsnd_pcm_state_t state}(hjz5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv5ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMOhjr5ubj)}(hhh]jg)}(h!state to transition the stream toh]h!state to transition the stream to}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMOhj5ubah}(h]h ]h"]h$]h&]uh1jhjr5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMOhj65ubeh}(h]h ]h"]h$]h&]uh1jhj5ubjg)}(h**Description**h]j)}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMQhj5ubjg)}(h"Stop the stream and set its state.h]h"Stop the stream and set its state.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMPhj5ubjg)}(h2Should be called with compressed device lock held.h]h2Should be called with compressed device lock held.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMRhj5ubjg)}(h **Return**h]j)}(hj5h]hReturn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMThj5ubjg)}(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.chMUhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_compr_task_finished (C function)c.snd_compr_task_finishedhNtauh1hhj3hhhNhNubh)}(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}(hj.6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*6hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hj=6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*6hhhj<6hMubj)}(hsnd_compr_task_finishedh]j%)}(hsnd_compr_task_finishedh]hsnd_compr_task_finished}(hjO6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjK6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj*6hhhj<6hMubj@)}(hF(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjk6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjg6ubj)}(h h]h }(hjx6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg6ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjQ6sbc.snd_compr_task_finishedasbuh1hhjg6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg6ubj%)}(hstreamh]hstream}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjc6ubjF)}(h#struct snd_compr_task_runtime *taskh](jL)}(hjOh]hstruct}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(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]j6c.snd_compr_task_finishedasbuh1hhj6ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj'7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(htaskh]htask}(hj47hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjc6ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj*6hhhj<6hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj&6hhhj<6hMubah}(h]j!6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj<6hMhj#6hhubjb)}(hhh]jg)}(h!Notify that the task was finishedh]h!Notify that the task was finished}(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.chMhj[7hhubah}(h]h ]h"]h$]h&]uh1jahj#6hhhj<6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjv7jjv7jjjuh1hhhhj3hNhNubj)}(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)}(hj7h]h Parameters}(hj7hhhNhNubah}(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.chMhjz7ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj7h]hstruct snd_compr_stream *stream}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj7ubj)}(h?``struct snd_compr_task_runtime *task`` runtime task structure h](j)}(h'``struct snd_compr_task_runtime *task``h]j)}(hj7h]h#struct snd_compr_task_runtime *task}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7ubj)}(hhh]jg)}(hruntime task structureh]hruntime task structure}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj7ubeh}(h]h ]h"]h$]h&]uh1jhjz7ubjg)}(h**Description**h]j)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjz7ubjg)}(h/Set the finished task state and notify waiters.h]h/Set the finished task state and notify waiters.}(hj)8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjz7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compress_new (C function)c.snd_compress_newhNtauh1hhj3hhhNhNubh)}(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}(hjX8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjT8hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hjg8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT8hhhjf8hMubj)}(hsnd_compress_newh]j%)}(hsnd_compress_newh]hsnd_compress_new}(hjy8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjT8hhhjf8hMubj@)}(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}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jj{8sbc.snd_compress_newasbuh1hhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hcardh]hcard}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(h int deviceh](h)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj%)}(hdeviceh]hdevice}(hj#9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hint dirnh](h)}(hinth]hint}(hj<9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj89ubj)}(h h]h }(hjJ9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj89ubj%)}(hdirnh]hdirn}(hjX9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj89ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjq9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjm9ubj)}(h h]h }(hj~9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm9ubh)}(hcharh]hchar}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjm9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm9ubj%)}(hidh]hid}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hstruct snd_compr *comprh](jL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(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]j8c.snd_compress_newasbuh1hhj9ubj)}(h h]h }(hj :hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj%)}(hcomprh]hcompr}(hj%:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjT8hhhjf8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjP8hhhjf8hMubah}(h]jK8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjf8hMhjM8hhubjb)}(hhh]jg)}(hcreate new compress deviceh]hcreate new compress device}(hjO:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjL:hhubah}(h]h ]h"]h$]h&]uh1jahjM8hhhjf8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjg:jjg:jjjuh1hhhhj3hNhNubj)}(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)}(hjq:h]h Parameters}(hjs:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo:ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjk:ubj)}(hhh](j)}(h-``struct snd_card *card`` sound card pointer h](j)}(h``struct snd_card *card``h]j)}(hj:h]hstruct snd_card *card}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj:ubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj:ubj)}(h``int device`` device number h](j)}(h``int device``h]j)}(hj:h]h int device}(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)}(h device numberh]h device number}(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)}(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}(hj6<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.hhKhj3<hhubah}(h]h ]h"]h$]h&]uh1jahj;hhhj<hKubeh}(h]h ](jstructeh"]h$]h&]jjjjN<jjN<jjjuh1hhhhj3hNhNubj)}(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}(hjZ<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV<ubh:}(hjV<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.hhKhjR<ubj)}(hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };h]hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };}hjs<sbah}(h]h ]h"]h$]h&]j=j>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjR<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.hhKhjR<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&]uh1jhjR<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_params (C struct)c.snd_compr_paramshNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_paramsh]h)}(hstruct snd_compr_paramsh](jL)}(hjOh]hstruct}(hj6=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2=hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjD=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2=hhhjC=hKubj)}(hsnd_compr_paramsh]j%)}(hj0=h]hsnd_compr_params}(hjV=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjR=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2=hhhjC=hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.=hhhjC=hKubah}(h]j)=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjC=hKhj+=hhubjb)}(hhh]jg)}(hcompressed stream paramsh]hcompressed stream params}(hjx=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.hhKhju=hhubah}(h]h ]h"]h$]h&]uh1jahj+=hhhjC=hKubeh}(h]h ](jstructeh"]h$]h&]jjjj=jj=jjjuh1hhhhj3hNhNubj)}(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>uh1jhv/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)}(hj>h]hcodec}(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)}(hcodec parametersh]hcodec parameters}(hj7>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3>hK hj4>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj3>hK hj=ubj)}(h.``no_wake_mode`` dont wake on fragment elapsedh](j)}(h``no_wake_mode``h]j)}(hjW>h]h no_wake_mode}(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)}(hdont wake on fragment elapsedh]hdont wake on fragment elapsed}(hjp>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!hjm>ubah}(h]h ]h"]h$]h&]uh1jhjQ>ubeh}(h]h ]h"]h$]h&]uh1jhjl>hK hj=ubeh}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_tstamp (C struct)c.snd_compr_tstamphNtauh1hhj3hhhNhNubh)}(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 ?jjjuh1hhhhj3hNhNubj)}(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; };}hj0?sbah}(h]h ]h"]h$]h&]j=j>uh1jhv/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)}(hjA?h]hMembers}(hjC?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.hhK7hj?ubj)}(hhh](j)}(h2``byte_offset`` Byte offset in ring buffer to DSP h](j)}(h``byte_offset``h]j)}(hj`?h]h byte_offset}(hjb?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+hjZ?ubj)}(hhh]jg)}(h!Byte offset in ring buffer to DSPh]h!Byte offset in ring buffer to DSP}(hjy?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhju?hK+hjv?ubah}(h]h ]h"]h$]h&]uh1jhjZ?ubeh}(h]h ]h"]h$]h&]uh1jhju?hK+hjW?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,hjW?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/hjW?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.}(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.hhK0hj"@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj!@hK1hjW?ubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hjF@h]h sampling_rate}(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.hhK1hj@@ubj)}(hhh]jg)}(hsampling rate of audioh]hsampling rate of audio}(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.hhK2hj\@ubah}(h]h ]h"]h$]h&]uh1jhj@@ubeh}(h]h ]h"]h$]h&]uh1jhj[@hK1hjW?ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_avail (C struct)c.snd_compr_availhNtauh1hhj3hhhNhNubh)}(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.hhKuh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKBhj@ubjg)}(h **Members**h]j)}(hj0Ah]hMembers}(hj2AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Aubah}(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)}(hjOAh]havail}(hjQAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMAubah}(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>hjIAubj)}(hhh]jg)}(hhjeAubah}(h]h ]h"]h$]h&]uh1jhjIAubeh}(h]h ]h"]h$]h&]uh1jhjdAhK>hjFAubj)}(h ``tstamp`` timestamp informationh](j)}(h ``tstamp``h]j)}(hjAh]htstamp}(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.hhK>hjAubj)}(hhh]jg)}(htimestamp informationh]htimestamp information}(hjAhhhNhNubah}(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?hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK>hjFAubeh}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_caps (C struct)c.snd_compr_capshNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_capsh]h)}(hstruct snd_compr_capsh](jL)}(hjOh]hstruct}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAhhhv/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 hjAhhhjAhKEubj)}(hsnd_compr_capsh]j%)}(hjAh]hsnd_compr_caps}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhjAhKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhjAhKEubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhKEhjAhhubjb)}(hhh]jg)}(hcaps descriptorh]hcaps descriptor}(hj$BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKLhj!Bhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjAhKEubeh}(h]h ](jstructeh"]h$]h&]jjjjuh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhj@Bubjg)}(h **Members**h]j)}(hjrBh]hMembers}(hjtBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpBubah}(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@Bubj)}(hhh](j)}(h*``num_codecs`` number of codecs supported h](j)}(h``num_codecs``h]j)}(hjBh]h num_codecs}(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.hhKThjBubj)}(hhh]jg)}(hnumber of codecs supportedh]hnumber of codecs supported}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKThjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKThjBubj)}(h?``direction`` direction supported. Of type snd_compr_direction h](j)}(h ``direction``h]j)}(hjBh]h direction}(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.hhKOhjBubj)}(hhh]jg)}(h0direction supported. Of type snd_compr_directionh]h0direction supported. Of type snd_compr_direction}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhKOhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhKOhjBubj)}(h8``min_fragment_size`` minimum fragment supported by DSP h](j)}(h``min_fragment_size``h]j)}(hjCh]hmin_fragment_size}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhjBubj)}(hhh]jg)}(h!minimum fragment supported by DSPh]h!minimum fragment supported by DSP}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKPhjCubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjChKPhjBubj)}(h8``max_fragment_size`` maximum fragment supported by DSP h](j)}(h``max_fragment_size``h]j)}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Cubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKQhj6Cubj)}(hhh]jg)}(h!maximum fragment supported by DSPh]h!maximum fragment supported by DSP}(hjUChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQChKQhjRCubah}(h]h ]h"]h$]h&]uh1jhj6Cubeh}(h]h ]h"]h$]h&]uh1jhjQChKQhjBubj)}(h1``min_fragments`` min fragments supported by DSP h](j)}(h``min_fragments``h]j)}(hjuCh]h min_fragments}(hjwChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhjoCubj)}(hhh]jg)}(hmin fragments supported by DSPh]hmin fragments supported by DSP}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKRhjCubah}(h]h ]h"]h$]h&]uh1jhjoCubeh}(h]h ]h"]h$]h&]uh1jhjChKRhjBubj)}(h1``max_fragments`` max fragments supported by DSP h](j)}(h``max_fragments``h]j)}(hjCh]h max_fragments}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKShjCubj)}(hhh]jg)}(hmax fragments supported by DSPh]hmax fragments supported by DSP}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKShjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChKShjBubj)}(h&``codecs`` pointer to array of codecs h](j)}(h ``codecs``h]j)}(hjCh]hcodecs}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKNhjCubj)}(hhh]jg)}(hpointer to array of codecsh]hpointer to array of codecs}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChKNhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChKNhjBubj)}(h``reserved`` reserved fieldh](j)}(h ``reserved``h]j)}(hj Dh]hreserved}(hj"DhhhNhNubah}(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.hhKThjDubj)}(hhh]jg)}(hreserved fieldh]hreserved field}(hj9DhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKUhj6Dubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj5DhKThjBubeh}(h]h ]h"]h$]h&]uh1jhj@Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_codec_caps (C struct)c.snd_compr_codec_capshNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_codec_capsh]h)}(hstruct snd_compr_codec_capsh](jL)}(hjOh]hstruct}(hjzDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvDhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK[ubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvDhhhjDhK[ubj)}(hsnd_compr_codec_capsh]j%)}(hjtDh]hsnd_compr_codec_caps}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvDhhhjDhK[ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrDhhhjDhK[ubah}(h]jmDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhK[hjoDhhubjb)}(hhh]jg)}(hquery capability of codech]hquery capability of codec}(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.hhKbhjDhhubah}(h]h ]h"]h$]h&]uh1jahjoDhhhjDhK[ubeh}(h]h ](wjstructeh"]h$]h&]jjjjDjjDjjjuh1hhhhj3hNhNubj)}(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}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh:}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKfhjDubj)}(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>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhhjDubjg)}(h **Members**h]j)}(hj Eh]hMembers}(hj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKnhjDubj)}(hhh](j)}(h0``codec`` codec for which capability is queried h](j)}(h ``codec``h]j)}(hj)Eh]hcodec}(hj+EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Eubah}(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#Eubj)}(hhh]jg)}(h%codec for which capability is queriedh]h%codec for which capability is queried}(hjBEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>EhKdhj?Eubah}(h]h ]h"]h$]h&]uh1jhj#Eubeh}(h]h ]h"]h$]h&]uh1jhj>EhKdhj Eubj)}(h0``num_descriptors`` number of codec descriptors h](j)}(h``num_descriptors``h]j)}(hjbEh]hnum_descriptors}(hjdEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Eubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKehj\Eubj)}(hhh]jg)}(hnumber of codec descriptorsh]hnumber of codec descriptors}(hj{EhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwEhKehjxEubah}(h]h ]h"]h$]h&]uh1jhj\Eubeh}(h]h ]h"]h$]h&]uh1jhjwEhKehj Eubj)}(h3``descriptor`` array of codec capability descriptorh](j)}(h``descriptor``h]j)}(hjEh]h descriptor}(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.hhKehjEubj)}(hhh]jg)}(h$array of codec capability descriptorh]h$array of codec capability descriptor}(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.hhKfhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKehj Eubeh}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsndrv_compress_encoder (C enum)c.sndrv_compress_encoderhNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsndrv_compress_encoderh]h)}(henum sndrv_compress_encoderh](jL)}(hj(h]henum}(hjEhhhNhNubah}(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 }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEhhhjFhKlubj)}(hsndrv_compress_encoderh]j%)}(hjEh]hsndrv_compress_encoder}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjEhhhjFhKlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhjFhKlubah}(h]jEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhKlhjEhhubjb)}(hhh]jg)}(hencoder metadata keyh]hencoder metadata key}(hj7FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKnhj4Fhhubah}(h]h ]h"]h$]h&]uh1jahjEhhhjFhKlubeh}(h]h ](jenumeh"]h$]h&]jjjjOFjjOFjjjuh1hhhhj3hNhNubj)}(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)}(hjYFh]h Constants}(hj[FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWFubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKrhjSFubj)}(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)}(hjxFh]hSNDRV_COMPRESS_ENCODER_PADDING}(hjzFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvFubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKvhjrFubj)}(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}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKuhjFubah}(h]h ]h"]h$]h&]uh1jhjrFubeh}(h]h ]h"]h$]h&]uh1jhjFhKvhjoFubj)}(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)}(hjFh]hSNDRV_COMPRESS_ENCODER_DELAY}(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.hhKyhjFubj)}(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}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKyhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKyhjoFubeh}(h]h ]h"]h$]h&]uh1jhjSFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_metadata (C struct)c.snd_compr_metadatahNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_metadatah]h)}(hstruct snd_compr_metadatah](jL)}(hjOh]hstruct}(hj GhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGhhhjGhKubj)}(hsnd_compr_metadatah]j%)}(hjGh]hsnd_compr_metadata}(hj+GhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'Gubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjGhhhjGhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGhhhjGhKubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGhKhjGhhubjb)}(hhh]jg)}(hcompressed stream metadatah]hcompressed stream metadata}(hjMGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKzhjJGhhubah}(h]h ]h"]h$]h&]uh1jahjGhhhjGhKubeh}(h]h ](jstructeh"]h$]h&]jjjjeGjjeGjjjuh1hhhhj3hNhNubj)}(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}(hjqGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmGubh:}(hjmGhhhNhNubeh}(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~hjiGubj)}(hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };h]hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };}hjGsbah}(h]h ]h"]h$]h&]j=j>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjiGubjg)}(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.hhKhjiGubj)}(hhh](j)}(h``key`` key id h](j)}(h``key``h]j)}(hjGh]hkey}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK|hjGubj)}(hhh]jg)}(hkey idh]hkey id}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhK|hjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhK|hjGubj)}(h``value`` key valueh](j)}(h ``value``h]j)}(hjGh]hvalue}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK|hjGubj)}(hhh]jg)}(h key valueh]h key value}(hj HhhhNhNubah}(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 Hubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjHhK|hjGubeh}(h]h ]h"]h$]h&]uh1jhjiGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_task (C struct)c.snd_compr_taskhNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_taskh]h)}(hstruct snd_compr_taskh](jL)}(hjOh]hstruct}(hjMHhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIHhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj[HhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIHhhhjZHhKubj)}(hsnd_compr_taskh]j%)}(hjGHh]hsnd_compr_task}(hjmHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIHhhhjZHhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEHhhhjZHhKubah}(h]j@Hah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZHhKhjBHhhubjb)}(hhh]jg)}(h)task primitive for non-realtime operationh]h)task primitive for non-realtime operation}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjHhhubah}(h]h ]h"]h$]h&]uh1jahjBHhhhjZHhKubeh}(h]h ](jstructeh"]h$]h&]jjjjHjjHjjjuh1hhhhj3hNhNubj)}(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}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh:}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjHubj)}(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]; };}hjHsbah}(h]h ]h"]h$]h&]j=j>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjHubjg)}(h **Members**h]j)}(hjHh]hMembers}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjHubj)}(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.hhKhjHubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjHubj)}(hH``origin_seqno`` previous sequence number (task identifier) - for reuse h](j)}(h``origin_seqno``h]j)}(hj5Ih]h origin_seqno}(hj7IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Iubah}(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)}(h6previous sequence number (task identifier) - for reuseh]h6previous sequence number (task identifier) - for reuse}(hjNIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJIhKhjKIubah}(h]h ]h"]h$]h&]uh1jhj/Iubeh}(h]h ]h"]h$]h&]uh1jhjJIhKhjHubj)}(h2``input_fd`` data input file descriptor (dma-buf) h](j)}(h ``input_fd``h]j)}(hjnIh]hinput_fd}(hjpIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjhIubj)}(hhh]jg)}(h$data input file descriptor (dma-buf)h]h$data input file descriptor (dma-buf)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjhIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjHubj)}(h4``output_fd`` data output file descriptor (dma-buf) h](j)}(h ``output_fd``h]j)}(hjIh]h output_fd}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubj)}(hhh]jg)}(h%data output file descriptor (dma-buf)h]h%data output file descriptor (dma-buf)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjHubj)}(hQ``input_size`` filled data in bytes (from caller, must not exceed fragment size) h](j)}(h``input_size``h]j)}(hjIh]h input_size}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubj)}(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&]uh1jfhjIhKhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjHubj)}(h*``flags`` see SND_COMPRESS_TFLG_* defines h](j)}(h ``flags``h]j)}(hjJh]hflags}(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)}(hsee SND_COMPRESS_TFLG_* definesh]hsee SND_COMPRESS_TFLG_* defines}(hj2JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.JhKhj/Jubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhj.JhKhjHubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjRJh]hreserved}(hjTJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPJubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjLJubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hjkJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjhJubah}(h]h ]h"]h$]h&]uh1jhjLJubeh}(h]h ]h"]h$]h&]uh1jhjgJhKhjHubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_state (C enum)c.snd_compr_statehNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_stateh]h)}(henum snd_compr_stateh](jL)}(hj(h]henum}(hjJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJhhhjJhKubj)}(hsnd_compr_stateh]j%)}(hjJh]hsnd_compr_state}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJhhhjJhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhjJhKubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhKhjJhhubjb)}(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&]uh1jahjJhhhjJhKubeh}(h]h ](jenumeh"]h$]h&]jjjjKjjKjjjuh1hhhhj3hNhNubj)}(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)}(hjKh]h Constants}(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.hhKhj Kubj)}(hhh](j)}(h4``SND_COMPRESS_TASK_STATE_IDLE`` task is not queued h](j)}(h ``SND_COMPRESS_TASK_STATE_IDLE``h]j)}(hj/Kh]hSND_COMPRESS_TASK_STATE_IDLE}(hj1KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Kubah}(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)Kubj)}(hhh]jg)}(htask is not queuedh]htask is not queued}(hjHKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDKhKhjEKubah}(h]h ]h"]h$]h&]uh1jhj)Kubeh}(h]h ]h"]h$]h&]uh1jhjDKhKhj&Kubj)}(h8``SND_COMPRESS_TASK_STATE_ACTIVE`` task is in the queue h](j)}(h"``SND_COMPRESS_TASK_STATE_ACTIVE``h]j)}(hjhKh]hSND_COMPRESS_TASK_STATE_ACTIVE}(hjjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfKubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjbKubj)}(hhh]jg)}(htask is in the queueh]htask is in the queue}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}KhKhj~Kubah}(h]h ]h"]h$]h&]uh1jhjbKubeh}(h]h ]h"]h$]h&]uh1jhj}KhKhj&Kubj)}(hL``SND_COMPRESS_TASK_STATE_FINISHED`` task was processed, output is availableh](j)}(h$``SND_COMPRESS_TASK_STATE_FINISHED``h]j)}(hjKh]h SND_COMPRESS_TASK_STATE_FINISHED}(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'task was processed, output is availableh]h'task was processed, output is available}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhKhj&Kubeh}(h]h ]h"]h$]h&]uh1jhj Kubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_compr_task_status (C struct)c.snd_compr_task_statushNtauh1hhj3hhhNhNubh)}(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 LhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhjLhKubj)}(hsnd_compr_task_statush]j%)}(hjKh]hsnd_compr_task_status}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKhhhjLhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjLhKubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhKhjKhhubjb)}(hhh]jg)}(h task statush]h task status}(hj=LhhhNhNubah}(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:Lhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhjLhKubeh}(h]h ](jstructeh"]h$]h&]jjjjULjjULjjjuh1hhhhj3hNhNubj)}(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}(hjaLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]Lubh:}(hj]LhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjYLubj)}(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]; };}hjzLsbah}(h]h ]h"]h$]h&]j=j>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjYLubjg)}(h **Members**h]j)}(hjLh]hMembers}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjYLubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjLh]hseqno}(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!sequence number (task identifier)h]h!sequence number (task identifier)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjLubj)}(h6``input_size`` filled data in bytes (from user space) h](j)}(h``input_size``h]j)}(hjLh]h input_size}(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&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&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjLubj)}(h3``output_size`` filled data in bytes (from driver) h](j)}(h``output_size``h]j)}(hjMh]h output_size}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubj)}(hhh]jg)}(h"filled data in bytes (from driver)h]h"filled data in bytes (from driver)}(hj5MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1MhKhj2Mubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhj1MhKhjLubj)}(h?``output_flags`` reserved for future (all zeros - from driver) h](j)}(h``output_flags``h]j)}(hjUMh]h output_flags}(hjWMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOMubj)}(hhh]jg)}(h-reserved for future (all zeros - from driver)h]h-reserved for future (all zeros - from driver)}(hjnMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjMhKhjkMubah}(h]h ]h"]h$]h&]uh1jhjOMubeh}(h]h ]h"]h$]h&]uh1jhjjMhKhjLubj)}(h8``state`` actual task state (SND_COMPRESS_TASK_STATE_*) h](j)}(h ``state``h]j)}(hjMh]hstate}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubj)}(hhh]jg)}(h-actual task state (SND_COMPRESS_TASK_STATE_*)h]h-actual task state (SND_COMPRESS_TASK_STATE_*)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhKhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjLubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hjMh]hreserved}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjLubeh}(h]h ]h"]h$]h&]uh1jhjYLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_vorbis (C struct)c.snd_enc_vorbishNtauh1hhj3hhhu/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}(hj"NhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hj0NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj/NhKubj)}(hsnd_enc_vorbish]j%)}(hjNh]hsnd_enc_vorbis}(hjBNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>Nubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhj/NhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNhhhj/NhKubah}(h]jNah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj/NhKhjNhhubjb)}(hhh]jg)}(hVorbis encoder parametersh]hVorbis encoder parameters}(hjdNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjaNhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhj/NhKubeh}(h]h ](jstructeh"]h$]h&]jjjj|Njj|Njjjuh1hhhhj3hjNhNubj)}(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}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh:}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubj)}(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; };}hjNsbah}(h]h ]h"]h$]h&]j=j>uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubjg)}(h **Members**h]j)}(hjNh]hMembers}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjNubj)}(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)}(hjNh]hquality}(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)}(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.hhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjNubj)}(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 Oh]hmanaged}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Oubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjOubj)}(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$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.hhKhj!Oubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhj OhKhjNubj)}(h1``max_bit_rate`` Enabled only if managed is TRUE h](j)}(h``max_bit_rate``h]j)}(hjEOh]h max_bit_rate}(hjGOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCOubah}(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?Oubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hj^OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZOhKhj[Oubah}(h]h ]h"]h$]h&]uh1jhj?Oubeh}(h]h ]h"]h$]h&]uh1jhjZOhKhjNubj)}(h1``min_bit_rate`` Enabled only if managed is TRUE h](j)}(h``min_bit_rate``h]j)}(hj~Oh]h min_bit_rate}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Oubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjxOubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjxOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhjNubj)}(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)}(hjOh]hdownmix}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjOubj)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhjNubeh}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhjNhNubjg)}(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.hhKhj3hhubjg)}(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}(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.hhKhj3hhubjg)}(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.}(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.hhKhj3hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_real (C struct)c.snd_enc_realhNtauh1hhj3hhhjNhNubh)}(hhh](h)}(h snd_enc_realh]h)}(hstruct snd_enc_realh](jL)}(hjOh]hstruct}(hjFPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBPhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hjTPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBPhhhjSPhKubj)}(h snd_enc_realh]j%)}(hj@Ph]h snd_enc_real}(hjfPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbPubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBPhhhjSPhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj>PhhhjSPhKubah}(h]j9Pah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjSPhKhj;Phhubjb)}(hhh]jg)}(hRealAudio encoder parametersh]hRealAudio encoder parameters}(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.hhKhjPhhubah}(h]h ]h"]h$]h&]uh1jahj;PhhhjSPhKubeh}(h]h ](jstructeh"]h$]h&]jjjjPjjPjjjuh1hhhhj3hjNhNubj)}(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}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh:}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjPubj)}(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; };}hjPsbah}(h]h ]h"]h$]h&]j=j>uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjPubjg)}(h **Members**h]j)}(hjPh]hMembers}(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.hhMhjPubj)}(hhh](j)}(hB``quant_bits`` number of coupling quantization bits in the stream h](j)}(h``quant_bits``h]j)}(hjPh]h quant_bits}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(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}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj QhKhj Qubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj QhKhjPubj)}(h5``start_region`` coupling start region in the stream h](j)}(h``start_region``h]j)}(hj.Qh]h start_region}(hj0QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Qubah}(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(Qubj)}(hhh]jg)}(h#coupling start region in the streamh]h#coupling start region in the stream}(hjGQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjCQhKhjDQubah}(h]h ]h"]h$]h&]uh1jhj(Qubeh}(h]h ]h"]h$]h&]uh1jhjCQhKhjPubj)}(h'``num_regions`` number of regions valueh](j)}(h``num_regions``h]j)}(hjgQh]h num_regions}(hjiQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeQubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjaQubj)}(hhh]jg)}(hnumber of regions valueh]hnumber of regions value}(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.hhKhj}Qubah}(h]h ]h"]h$]h&]uh1jhjaQubeh}(h]h ]h"]h$]h&]uh1jhj|QhKhjPubeh}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhjNhNubjg)}(h**Description**h]j)}(hjQh]h Description}(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.hhKhj3hhubjg)}(h5These options were extracted from the OpenMAX IL spech]h5These options were extracted from the OpenMAX IL spec}(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.hhKhj3hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_flac (C struct)c.snd_enc_flachNtauh1hhj3hhhjNhNubh)}(hhh](h)}(h snd_enc_flach]h)}(hstruct snd_enc_flach](jL)}(hjOh]hstruct}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhMubj)}(h snd_enc_flach]j%)}(hjQh]h snd_enc_flac}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjQhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjQhMubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhMhjQhhubjb)}(hhh]jg)}(hFLAC encoder parametersh]hFLAC encoder parameters}(hj*RhhhNhNubah}(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'Rhhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjQhMubeh}(h]h ](jstructeh"]h$]h&]jjjjBRjjBRjjjuh1hhhhj3hjNhNubj)}(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}(hjNRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJRubh:}(hjJRhhhNhNubeh}(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 hjFRubj)}(h7struct snd_enc_flac { __u32 num; __u32 gain; };h]h7struct snd_enc_flac { __u32 num; __u32 gain; };}hjgRsbah}(h]h ]h"]h$]h&]j=j>uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjFRubjg)}(h **Members**h]j)}(hjxRh]hMembers}(hjzRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvRubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjFRubj)}(hhh](j)}(hQ``num`` serial number, valid only for OGG formats needs to be set by application h](j)}(h``num``h]j)}(hjRh]hnum}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(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 hjRubj)}(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}(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 hjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhM hjRubj)}(h``gain`` Add replay gain tagsh](j)}(h``gain``h]j)}(hjRh]hgain}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(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 hjRubj)}(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 hjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhM hjRubeh}(h]h ]h"]h$]h&]uh1jhjFRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhjNhNubjg)}(h**Description**h]j)}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj3hhubjg)}(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 }(hj*ShhhNhNubh reference)}(h9http://flac.sourceforge.net/documentation_tools_flac.htmlh]h9http://flac.sourceforge.net/documentation_tools_flac.html}(hj4ShhhNhNubah}(h]h ]h"]h$]h&]refurij6Suh1j2Shj*Subeh}(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 hj3hhubjg)}(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.}(hjJShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj3hhubjg)}(h1By default the Subset format is used by encoders.h]h1By default the Subset format is used by encoders.}(hjYShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj3hhubjg)}(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.}(hjhShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj3hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_task_runtime (C struct)c.snd_compr_task_runtimehNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_task_runtimeh]h)}(hstruct snd_compr_task_runtimeh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjShhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjShKubj)}(hsnd_compr_task_runtimeh]j%)}(hjSh]hsnd_compr_task_runtime}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjShhhjShKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjShhhjShKubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShKhjShhubjb)}(hhh]jg)}(htask runtime descriptionh]htask runtime description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjShhubah}(h]h ]h"]h$]h&]uh1jahjShhhjShKubeh}(h]h ](jstructeh"]h$]h&]jjjjSjjSjjjuh1hhhhj3hNhNubj)}(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}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh:}(hjShhhNhNubeh}(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; };}hjTsbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjSubjg)}(h **Members**h]j)}(hj Th]hMembers}(hj"ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(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)}(hj?Th]hlist}(hjAThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Tubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj9Tubj)}(hhh]jg)}(hlist of all managed tasksh]hlist of all managed tasks}(hjXThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjTThKhjUTubah}(h]h ]h"]h$]h&]uh1jhj9Tubeh}(h]h ]h"]h$]h&]uh1jhjTThKhj6Tubj)}(h``input`` input DMA buffer h](j)}(h ``input``h]j)}(hjxTh]hinput}(hjzThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvTubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjrTubj)}(hhh]jg)}(hinput DMA bufferh]hinput DMA buffer}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjrTubeh}(h]h ]h"]h$]h&]uh1jhjThKhj6Tubj)}(h``output`` output DMA buffer h](j)}(h ``output``h]j)}(hjTh]houtput}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjTubj)}(hhh]jg)}(houtput DMA bufferh]houtput DMA buffer}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhj6Tubj)}(h``seqno`` sequence number h](j)}(h ``seqno``h]j)}(hjTh]hseqno}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjTubj)}(hhh]jg)}(hsequence numberh]hsequence number}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjUubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhj6Tubj)}(h4``input_size`` really used data in the input buffer h](j)}(h``input_size``h]j)}(hj#Uh]h input_size}(hj%UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Uubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjUubj)}(hhh]jg)}(h$really used data in the input bufferh]h$really used data in the input buffer}(hjuh1jhj]VhhhjnVhK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYVhhhjnVhK'ubah}(h]jTVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnVhK'hjVVhhubjb)}(hhh]jg)}(hruntime stream descriptionh]hruntime stream description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK/hjVhhubah}(h]h ]h"]h$]h&]uh1jahjVVhhhjnVhK'ubeh}(h]h ](jstructeh"]h$]h&]jjjjVjjVjjjuh1hhhhj3hNhNubj)}(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}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh:}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hjVubj)}(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; };}hjVsbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hjVubjg)}(h **Members**h]j)}(hjVh]hMembers}(hjVhhhNhNubah}(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.hhKLhjVubj)}(hhh](j)}(h``state`` stream state h](j)}(h ``state``h]j)}(hjWh]hstate}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK1hj Wubj)}(hhh]jg)}(h stream stateh]h stream state}(hj)WhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%WhK1hj&Wubah}(h]h ]h"]h$]h&]uh1jhj Wubeh}(h]h ]h"]h$]h&]uh1jhj%WhK1hjWubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjIWh]hops}(hjKWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGWubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK2hjCWubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjbWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^WhK2hj_Wubah}(h]h ]h"]h$]h&]uh1jhjCWubeh}(h]h ]h"]h$]h&]uh1jhj^WhK2hjWubj)}(hd``buffer`` pointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copy h](j)}(h ``buffer``h]j)}(hjWh]hbuffer}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK4hj|Wubj)}(hhh]jg)}(hXpointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copyh]hZpointer to kernel buffer, valid only when not in mmap mode or DSP doesn’t implement copy}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hjWubah}(h]h ]h"]h$]h&]uh1jhj|Wubeh}(h]h ]h"]h$]h&]uh1jhjWhK4hjWubj)}(h)``buffer_size`` size of the above buffer h](j)}(h``buffer_size``h]j)}(hjWh]h buffer_size}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hjWubj)}(hhh]jg)}(hsize of the above bufferh]hsize of the above buffer}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhK5hjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhK5hjWubj)}(h3``fragment_size`` size of buffer fragment in bytes h](j)}(h``fragment_size``h]j)}(hjWh]h fragment_size}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK6hjWubj)}(hhh]jg)}(h size of buffer fragment in bytesh]h size of buffer fragment in bytes}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj XhK6hj Xubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhj XhK6hjWubj)}(h'``fragments`` number of such fragments h](j)}(h ``fragments``h]j)}(hj.Xh]h fragments}(hj0XhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Xubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK7hj(Xubj)}(hhh]jg)}(hnumber of such fragmentsh]hnumber of such fragments}(hjGXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjCXhK7hjDXubah}(h]h ]h"]h$]h&]uh1jhj(Xubeh}(h]h ]h"]h$]h&]uh1jhjCXhK7hjWubj)}(hW``total_bytes_available`` cumulative number of bytes made available in the ring buffer h](j)}(h``total_bytes_available``h]j)}(hjgXh]htotal_bytes_available}(hjiXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeXubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK9hjaXubj)}(hhh]jg)}(hhjYubj)}(hhh]jg)}(h6physical buffer address (not accessible from main CPU)h]h6physical buffer address (not accessible from main CPU)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhK>hjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhK>hjWubj)}(h``dma_bytes`` size of DMA area h](j)}(h ``dma_bytes``h]j)}(hjYh]h dma_bytes}(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.hhK?hjYubj)}(hhh]jg)}(hsize of DMA areah]hsize of DMA area}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhK?hjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhK?hjWubj)}(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&]uh1jhjYubah}(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}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ZhK@hj Zubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhj ZhK@hjWubj)}(h'``active_tasks`` count of active tasks h](j)}(h``active_tasks``h]j)}(hj0Zh]h active_tasks}(hj2ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Zubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKAhj*Zubj)}(hhh]jg)}(hcount of active tasksh]hcount of active tasks}(hjIZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEZhKAhjFZubah}(h]h ]h"]h$]h&]uh1jhj*Zubeh}(h]h ]h"]h$]h&]uh1jhjEZhKAhjWubj)}(h#``total_tasks`` count of all tasks h](j)}(h``total_tasks``h]j)}(hjiZh]h total_tasks}(hjkZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgZubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKBhjcZubj)}(hhh]jg)}(hcount of all tasksh]hcount of all tasks}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~ZhKBhjZubah}(h]h ]h"]h$]h&]uh1jhjcZubeh}(h]h ]h"]h$]h&]uh1jhj~ZhKBhjWubj)}(h0``task_seqno`` last task sequence number (!= 0) h](j)}(h``task_seqno``h]j)}(hjZh]h task_seqno}(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.hhKChjZubj)}(hhh]jg)}(h last task sequence number (!= 0)h]h last task sequence number (!= 0)}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKChjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKChjWubj)}(h``tasks`` list of all tasksh](j)}(h ``tasks``h]j)}(hjZh]htasks}(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.hhKChjZubj)}(hhh]jg)}(hlist of all tasksh]hlist of all tasks}(hjZhhhNhNubah}(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&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKChjWubeh}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_stream (C struct)c.snd_compr_streamhNtauh1hhj3hhhNhNubh)}(hhh](h)}(hsnd_compr_streamh]h)}(hstruct snd_compr_streamh](jL)}(hjOh]hstruct}(hj5[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1[hhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKJubj)}(h h]h }(hjC[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1[hhhjB[hKJubj)}(hsnd_compr_streamh]j%)}(hj/[h]hsnd_compr_stream}(hjU[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj1[hhhjB[hKJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj-[hhhjB[hKJubah}(h]j([ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjB[hKJhj*[hhubjb)}(hhh]jg)}(hcompressed streamh]hcompressed stream}(hjw[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_hjt[hhubah}(h]h ]h"]h$]h&]uh1jahj*[hhhjB[hKJubeh}(h]h ](jstructeh"]h$]h&]jjjj[jj[jjjuh1hhhhj3hNhNubj)}(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}(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.hhKchj[ubj)}(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; };}hj[sbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKehj[ubjg)}(h **Members**h]j)}(hj[h]hMembers}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKthj[ubj)}(hhh](j)}(h``name`` device name h](j)}(h``name``h]j)}(hj[h]hname}(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.hhKahj[ubj)}(hhh]jg)}(h device nameh]h device name}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKahj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKahj[ubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hj\h]hops}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKbhj\ubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hj6\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2\hKbhj3\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj2\hKbhj[ubj)}(h)``runtime`` pointer to runtime structure h](j)}(h ``runtime``h]j)}(hjV\h]hruntime}(hjX\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjP\ubj)}(hhh]jg)}(hpointer to runtime structureh]hpointer to runtime structure}(hjo\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk\hKchjl\ubah}(h]h ]h"]h$]h&]uh1jhjP\ubeh}(h]h ]h"]h$]h&]uh1jhjk\hKchj[ubj)}(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\hKdhj[ubj)}(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\hKehj[ubj)}(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}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hKfhj]ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj]hKfhj[ubj)}(h2``metadata_set`` metadata set flag, true when set h](j)}(h``metadata_set``h]j)}(hj:]h]h metadata_set}(hj<]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKghj4]ubj)}(hhh]jg)}(h metadata set flag, true when seth]h metadata set flag, true when set}(hjS]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjO]hKghjP]ubah}(h]h ]h"]h$]h&]uh1jhj4]ubeh}(h]h ]h"]h$]h&]uh1jhjO]hKghj[ubj)}(hI``next_track`` has userspace signal next track transition, true when set h](j)}(h``next_track``h]j)}(hjs]h]h next_track}(hju]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhhjm]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&]uh1jhjm]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhhj[ubj)}(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]hKihj[ubj)}(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]hKjhj[ubj)}(h-``private_data`` pointer to DSP private data h](j)}(h``private_data``h]j)}(hj^h]h private_data}(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.hhKkhj^ubj)}(hhh]jg)}(hpointer to DSP private datah]hpointer to DSP private data}(hj7^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3^hKkhj4^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj3^hKkhj[ubj)}(h&``dma_buffer`` allocated buffer if anyh](j)}(h``dma_buffer``h]j)}(hjW^h]h dma_buffer}(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.hhKkhjQ^ubj)}(hhh]jg)}(hallocated buffer if anyh]hallocated buffer if any}(hjp^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKlhjm^ubah}(h]h ]h"]h$]h&]uh1jhjQ^ubeh}(h]h ]h"]h$]h&]uh1jhjl^hKkhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_ops (C struct)c.snd_compr_opshNtauh1hhj3hhhNhNubh)}(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 _jjjuh1hhhhj3hNhNubj)}(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; };}hj0_sbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj_ubjg)}(h **Members**h]j)}(hjA_h]hMembers}(hjC_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?_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)}(hj`_h]hopen}(hjb_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.hhKhjZ_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}(hjy_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjv_ubah}(h]h ]h"]h$]h&]uh1jhjZ_ubeh}(h]h ]h"]h$]h&]uh1jhju_hKhjW_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_hKhjW_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_hKhjW_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&]uh1jfhj"`hKhj#`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj"`hKhjW_ubj)}(h6``set_metadata`` Set the metadata values for a stream h](j)}(h``set_metadata``h]j)}(hjF`h]h set_metadata}(hjH`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD`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$Set the metadata values for a streamh]h$Set the metadata values for a stream}(hj_`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[`hKhj\`ubah}(h]h ]h"]h$]h&]uh1jhj@`ubeh}(h]h ]h"]h$]h&]uh1jhj[`hKhjW_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.hhKhjy`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&]uh1jhjy`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjW_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`hKhjW_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 ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhjahKhjW_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)}(hj+ah]hcopy}(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)}(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}(hjDahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjAaubah}(h]h ]h"]h$]h&]uh1jhj%aubeh}(h]h ]h"]h$]h&]uh1jhj@ahKhjW_ubj)}(h,``mmap`` DSP mmap method to mmap DSP memory h](j)}(h``mmap``h]j)}(hjeah]hmmap}(hjgahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcaubah}(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)}(h"DSP mmap method to mmap DSP memoryh]h"DSP mmap method to mmap DSP memory}(hj~ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzahKhj{aubah}(h]h ]h"]h$]h&]uh1jhj_aubeh}(h]h ]h"]h$]h&]uh1jhjzahKhjW_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)}(hjah]hack}(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[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}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKhjW_ubj)}(h2``get_caps`` Retrieve DSP capabilities, mandatory h](j)}(h ``get_caps``h]j)}(hjah]hget_caps}(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$Retrieve DSP capabilities, mandatoryh]h$Retrieve DSP capabilities, mandatory}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKhjW_ubj)}(hI``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory h](j)}(h``get_codec_caps``h]j)}(hjbh]hget_codec_caps}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj bubj)}(hhh]jg)}(h5Retrieve capabilities for a specific codec, mandatoryh]h5Retrieve capabilities for a specific codec, mandatory}(hj*bhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&bhKhj'bubah}(h]h ]h"]h$]h&]uh1jhj bubeh}(h]h ]h"]h$]h&]uh1jhj&bhKhjW_ubj)}(hJ``task_create`` Create a set of input/output buffers for accel operations h](j)}(h``task_create``h]j)}(hjJbh]h task_create}(hjLbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjDbubj)}(hhh]jg)}(h9Create a set of input/output buffers for accel operationsh]h9Create a set of input/output buffers for accel operations}(hjcbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_bhKhj`bubah}(h]h ]h"]h$]h&]uh1jhjDbubeh}(h]h ]h"]h$]h&]uh1jhj_bhKhjW_ubj)}(h9``task_start`` Start (queue) a task for accel operations h](j)}(h``task_start``h]j)}(hjbh]h task_start}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj}bubj)}(hhh]jg)}(h)Start (queue) a task for accel operationsh]h)Start (queue) a task for accel operations}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKhjbubah}(h]h ]h"]h$]h&]uh1jhj}bubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjW_ubj)}(h9``task_stop`` Stop (dequeue) a task for accel operations h](j)}(h ``task_stop``h]j)}(hjbh]h task_stop}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjbubj)}(hhh]jg)}(h*Stop (dequeue) a task for accel operationsh]h*Stop (dequeue) a task for accel operations}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKhjW_ubj)}(hE``task_free`` Free a set of input/output buffers for accel operationsh](j)}(h ``task_free``h]j)}(hjbh]h task_free}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjbubj)}(hhh]jg)}(h7Free a set of input/output buffers for accel operationsh]h7Free a set of input/output buffers for accel operations}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj cubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj chKhjW_ubeh}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr (C struct) c.snd_comprhNtauh1hhj3hhhNhNubh)}(hhh](h)}(h snd_comprh]h)}(hstruct snd_comprh](jL)}(hjOh]hstruct}(hjOchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKchhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hj]chhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKchhhj\chKubj)}(h snd_comprh]j%)}(hjIch]h snd_compr}(hjochhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKchhhj\chKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGchhhj\chKubah}(h]jBcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\chKhjDchhubjb)}(hhh]jg)}(hCompressed deviceh]hCompressed device}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjchhubah}(h]h ]h"]h$]h&]uh1jahjDchhhj\chKubeh}(h]h ](jstructeh"]h$]h&]jjjjcjjcjjjuh1hhhhj3hNhNubj)}(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}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh:}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjcubj)}(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; };}hjcsbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjcubjg)}(h **Members**h]j)}(hjch]hMembers}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjcubj)}(hhh](j)}(h``name`` DSP device name h](j)}(h``name``h]j)}(hjch]hname}(hjdhhhNhNubah}(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}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhKhjcubj)}(h#``dev`` associated device instance h](j)}(h``dev``h]j)}(hj7dh]hdev}(hj9dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5dubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj1dubj)}(hhh]jg)}(hassociated device instanceh]hassociated device instance}(hjPdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLdhKhjMdubah}(h]h ]h"]h$]h&]uh1jhj1dubeh}(h]h ]h"]h$]h&]uh1jhjLdhKhjcubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjpdh]hops}(hjrdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjndubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjdubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKhjcubj)}(h)``private_data`` pointer to DSP pvt data h](j)}(h``private_data``h]j)}(hjdh]h private_data}(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)}(hpointer to DSP pvt datah]hpointer to DSP pvt data}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKhjcubj)}(h``card`` sound card pointer h](j)}(h``card``h]j)}(hjdh]hcard}(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)}(hsound card pointerh]hsound card pointer}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKhjcubj)}(h,``direction`` Playback or capture direction h](j)}(h ``direction``h]j)}(hjeh]h direction}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(hPlayback or capture directionh]hPlayback or capture direction}(hj4ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0ehKhj1eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj0ehKhjcubj)}(h``lock`` device lock h](j)}(h``lock``h]j)}(hjTeh]hlock}(hjVehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjReubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjNeubj)}(hhh]jg)}(h device lockh]h device lock}(hjmehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjiehKhjjeubah}(h]h ]h"]h$]h&]uh1jhjNeubeh}(h]h ]h"]h$]h&]uh1jhjiehKhjcubj)}(h``device`` device id h](j)}(h ``device``h]j)}(hjeh]hdevice}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(h device idh]h device id}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehKhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehKhjcubj)}(h@``use_pause_in_draining`` allow pause in draining, true when seth](j)}(h``use_pause_in_draining``h]j)}(hjeh]huse_pause_in_draining}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(h&allow pause in draining, true when seth]h&allow pause in draining, true when set}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehKhjcubeh}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_compr_use_pause_in_draining (C function)!c.snd_compr_use_pause_in_draininghNtauh1hhj3hhhNhNubh)}(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}(hj fhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hj/fhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhj.fhKubj)}(hsnd_compr_use_pause_in_drainingh]j%)}(hsnd_compr_use_pause_in_drainingh]hsnd_compr_use_pause_in_draining}(hjAfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=fubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfhhhj.fhKubj@)}(h$(struct snd_compr_stream *substream)h]jF)}(h"struct snd_compr_stream *substreamh](jL)}(hjOh]hstruct}(hj]fhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYfubj)}(h h]h }(hjjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYfubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj{fhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}fmodnameN classnameNjj)}j]j)}jjCfsb!c.snd_compr_use_pause_in_drainingasbuh1hhjYfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYfubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYfubj%)}(h substreamh]h substream}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjUfubah}(h]h ]h"]h$]h&]j=j>uh1j?hjfhhhj.fhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhj.fhKubah}(h]jfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj.fhKhjfhhubjb)}(hhh]jg)}(h(Allow pause and resume in draining stateh]h(Allow pause and resume in draining state}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfhhubah}(h]h ]h"]h$]h&]uh1jahjfhhhj.fhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjfjjfjjjuh1hhhhj3hNhNubj)}(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)}(hjgh]h Parameters}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(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)}(hj!gh]h"struct snd_compr_stream *substream}(hj#ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(hcompress substream to seth]hcompress substream to set}(hj:ghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6ghKhj7gubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhj6ghKhjgubah}(h]h ]h"]h$]h&]uh1jhjfubjg)}(h**Description**h]j)}(hj\gh]h Description}(hj^ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZgubah}(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.}(hjrghhhNhNubah}(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&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_compr_set_runtime_buffer (C function)c.snd_compr_set_runtime_bufferhNtauh1hhj3hhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjghMubj)}(hsnd_compr_set_runtime_bufferh]j%)}(hsnd_compr_set_runtime_bufferh]hsnd_compr_set_runtime_buffer}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjghhhjghMubj@)}(h>(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjghhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(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)}jjgsbc.snd_compr_set_runtime_bufferasbuh1hhjgubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hj*hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(hstreamh]hstream}(hj7hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubjF)}(hstruct snd_dma_buffer *bufph](jL)}(hjOh]hstruct}(hjPhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLhubj)}(h h]h }(hj]hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjnhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjphmodnameN classnameNjj)}j]jhc.snd_compr_set_runtime_bufferasbuh1hhjLhubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhubj%)}(hbufph]hbufp}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjgubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjghMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjghhhjghMubah}(h]jgah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghMhjghhubjb)}(hhh]jg)}(hSet the Compress runtime bufferh]hSet the Compress runtime buffer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjhhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjghMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhj3hNhNubj)}(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)}(hjhh]h Parameters}(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.hhMhjhubj)}(hhh](j)}(h;``struct snd_compr_stream *stream`` compress stream to set h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjih]hstruct snd_compr_stream *stream}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj iubj)}(hhh]jg)}(hcompress stream to seth]hcompress stream to set}(hj+ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'ihMhj(iubah}(h]h ]h"]h$]h&]uh1jhj iubeh}(h]h ]h"]h$]h&]uh1jhj'ihMhj iubj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hjKih]hstruct snd_dma_buffer *bufp}(hjMihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIiubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjEiubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjdihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`ihMhjaiubah}(h]h ]h"]h$]h&]uh1jhjEiubeh}(h]h ]h"]h$]h&]uh1jhj`ihMhj iubeh}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(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 }(hjihhhNhNubj)}(h**bufp**h]hbufp}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubhA is non-NULL. Otherwise it clears the current buffer information.}(hjihhhNhNubeh}(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&]uh1jhj3hhhNhNubeh}(h]compress-offload-apiah ]h"]compress offload apiah$]h&]uh1hhj3hhhhhKXubeh}(h]compress-offloadah ]h"]compress offloadah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hASoCh]hASoC}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhK_ubh)}(hhh](h)}(h ASoC Core APIh]h ASoC Core API}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhKbubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_kcontrol_component (C function)c.snd_soc_kcontrol_componenthNtauh1hhjihhhNhNubh)}(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}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj jhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj jhhhjjhMubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hj.jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+jubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0jmodnameN classnameNjj)}j]j)}jsnd_soc_kcontrol_componentsbc.snd_soc_kcontrol_componentasbuh1hhj jhhhjjhMubj)}(h h]h }(hjOjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj jhhhjjhMubj)}(hjh]h*}(hj]jhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj jhhhjjhMubj)}(hsnd_soc_kcontrol_componenth]j%)}(hjLjh]hsnd_soc_kcontrol_component}(hjnjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj jhhhjjhMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]jJjc.snd_soc_kcontrol_componentasbuh1hhjjubj)}(h h]h }(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hkcontrolh]hkcontrol}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj jhhhjjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjjhMubah}(h]jjah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMhjjhhubjb)}(hhh]jg)}(h1Returns the component that registered the controlh]h1Returns the component that registered the control}(hj khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"kjj"kjjjuh1hhhhjihNhNubj)}(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)}(hj,kh]h Parameters}(hj.khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*kubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj&kubj)}(hhh]j)}(hM``struct snd_kcontrol *kcontrol`` The control for which to get the component h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjKkh]hstruct snd_kcontrol *kcontrol}(hjMkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIkubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjEkubj)}(hhh]jg)}(h*The control for which to get the componenth]h*The control for which to get the component}(hjdkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`khMhjakubah}(h]h ]h"]h$]h&]uh1jhjEkubeh}(h]h ]h"]h$]h&]uh1jhj`khMhjBkubah}(h]h ]h"]h$]h&]uh1jhj&kubjg)}(h**Note**h]j)}(hjkh]hNote}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj&kubjg)}(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.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhj&kubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_find_dai (C function)c.snd_soc_find_daihNtauh1hhjihhhNhNubh)}(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}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjkhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkhhhjkhMubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jsnd_soc_find_daisbc.snd_soc_find_daiasbuh1hhjkhhhjkhMubj)}(h h]h }(hj lhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkhhhjkhMubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkhhhjkhMubj)}(hsnd_soc_find_daih]j%)}(hjlh]hsnd_soc_find_dai}(hj*lhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&lubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjkhhhjkhMubj@)}(h.(const struct snd_soc_dai_link_component *dlc)h]jF)}(h,const struct snd_soc_dai_link_component *dlch](jL)}(hj\h]hconst}(hjElhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAlubj)}(h h]h }(hjRlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAlubjL)}(hjOh]hstruct}(hj`lhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjAlubj)}(h h]h }(hjmlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAlubh)}(hhh]j%)}(hsnd_soc_dai_link_componenth]hsnd_soc_dai_link_component}(hj~lhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{lubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]jlc.snd_soc_find_daiasbuh1hhjAlubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAlubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAlubj%)}(hdlch]hdlc}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAlubeh}(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)}(hFind a registered DAIh]hFind a registered DAI}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjlhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjkhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjihNhNubj)}(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)}(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: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)}(hj"mh]h,const struct snd_soc_dai_link_component *dlc}(hj$mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj mubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjmubj)}(hhh]jg)}(hFname of the DAI or the DAI driver and optional component info to matchh]hFname of the DAI or the DAI driver and optional component info to match}(hj;mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7mhMhj8mubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhj7mhMhjmubah}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hj]mh]h Description}(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: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.}(hjsmhhhNhNubah}(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)}(hjmh]hReturn}(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: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.}(hjmhhhNhNubah}(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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_remove_pcm_runtime (C function)c.snd_soc_remove_pcm_runtimehNtauh1hhjihhhNhNubh)}(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}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMrubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmhhhjmhMrubj)}(hsnd_soc_remove_pcm_runtimeh]j%)}(hsnd_soc_remove_pcm_runtimeh]hsnd_soc_remove_pcm_runtime}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjmhhhjmhMrubj@)}(h<(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj$nhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!nubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&nmodnameN classnameNjj)}j]j)}jjmsbc.snd_soc_remove_pcm_runtimeasbuh1hhjnubj)}(h h]h }(hjDnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hjRnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hcardh]hcard}(hj_nhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubjF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjxnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtnubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j@nc.snd_soc_remove_pcm_runtimeasbuh1hhjtnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtnubj%)}(hrtdh]hrtd}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhjmhMrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjmhMrubah}(h]jmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmhMrhjmhhubjb)}(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.chMrhjnhhubah}(h]h ]h"]h$]h&]uh1jahjmhhhjmhMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhjihNhNubj)}(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)}(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:100: ./sound/soc/soc-core.chMvhjoubj)}(hhh](j)}(hI``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime has h](j)}(h``struct snd_soc_card *card``h]j)}(hj:oh]hstruct snd_soc_card *card}(hj``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjsoh]hstruct snd_soc_pcm_runtime *rtd}(hjuohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqoubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMthjmoubj)}(hhh]jg)}(hThe pcm_runtime to removeh]hThe pcm_runtime to remove}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMthjoubah}(h]h ]h"]h$]h&]uh1jhjmoubeh}(h]h ]h"]h$]h&]uh1jhjohMthj1oubeh}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h**Description**h]j)}(hjoh]h Description}(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:100: ./sound/soc/soc-core.chMvhjoubjg)}(h7This function removes a pcm_runtime from the ASoC card.h]h7This function removes a pcm_runtime from the ASoC card.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMuhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_add_pcm_runtime (C function)c.snd_soc_add_pcm_runtimehNtauh1hhjihhhNhNubh)}(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}(hjohhhNhNubah}(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 }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjphMubj)}(hsnd_soc_add_pcm_runtimeh]j%)}(hsnd_soc_add_pcm_runtimeh]hsnd_soc_add_pcm_runtime}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjphMubj@)}(h>(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hj0phhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,pubj)}(h h]h }(hj=phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,pubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjNphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPpmodnameN classnameNjj)}j]j)}jjpsbc.snd_soc_add_pcm_runtimeasbuh1hhj,pubj)}(h h]h }(hjnphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,pubj)}(hjh]h*}(hj|phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,pubj%)}(hcardh]hcard}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,pubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(pubjF)}(h!struct snd_soc_dai_link *dai_linkh](jL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_soc_dai_linkh]hsnd_soc_dai_link}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]jjpc.snd_soc_add_pcm_runtimeasbuh1hhjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hdai_linkh]hdai_link}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj(pubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjphMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjphMubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphMhjohhubjb)}(hhh]jg)}(h*Add a pcm_runtime dynamically via dai_linkh]h*Add a pcm_runtime dynamically via dai_link}(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.chMhj qhhubah}(h]h ]h"]h$]h&]uh1jahjohhhjphMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;qjj;qjjjuh1hhhhjihNhNubj)}(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)}(hjEqh]h Parameters}(hjGqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCqubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj?qubj)}(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)}(hjdqh]hstruct snd_soc_card *card}(hjfqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbqubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj^qubj)}(hhh]jg)}(h/The ASoC card to which the pcm_runtime is addedh]h/The ASoC card to which the pcm_runtime is added}(hj}qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyqhMhjzqubah}(h]h ]h"]h$]h&]uh1jhj^qubeh}(h]h ]h"]h$]h&]uh1jhjyqhMhj[qubj)}(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)}(hjqh]h!struct snd_soc_dai_link *dai_link}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjqubj)}(hhh]jg)}(h The DAI link to find pcm_runtimeh]h The DAI link to find pcm_runtime}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhj[qubeh}(h]h ]h"]h$]h&]uh1jhj?qubjg)}(h**Description**h]j)}(hjqh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj?qubjg)}(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.chMhj?qubjg)}(h**Note**h]j)}(hjqh]hNote}(hjrhhhNhNubah}(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.chMhj?qubjg)}(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.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj?qubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_runtime_set_dai_fmt (C function)c.snd_soc_runtime_set_dai_fmthNtauh1hhjihhhNhNubh)}(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}(hjDrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@rhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjSrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@rhhhjRrhMubj)}(hsnd_soc_runtime_set_dai_fmth]j%)}(hsnd_soc_runtime_set_dai_fmth]hsnd_soc_runtime_set_dai_fmt}(hjerhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjarubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@rhhhjRrhMubj@)}(h7(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj}rubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}rubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jjgrsbc.snd_soc_runtime_set_dai_fmtasbuh1hhj}rubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}rubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}rubj%)}(hrtdh]hrtd}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}rubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyrubjF)}(hunsigned int dai_fmth](h)}(hunsignedh]hunsigned}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(hdai_fmth]hdai_fmt}(hj+shhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj@rhhhjRrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuh1jhjthhhjthMiubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjtsbc.snd_soc_set_dmi_nameasbuh1hhjtubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hcardh]hcard}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubah}(h]h ]h"]h$]h&]j=j>uh1j?hjthhhjthMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}thhhjthMiubah}(h]jxtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthMihjzthhubjb)}(hhh]jg)}(hRegister DMI names to cardh]hRegister DMI names to card}(hjEuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMihjBuhhubah}(h]h ]h"]h$]h&]uh1jahjzthhhjthMiubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]ujj]ujjjuh1hhhhjihNhNubj)}(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)}(hjguh]h Parameters}(hjiuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmhjauubj)}(hhh]j)}(h=``struct snd_soc_card *card`` The card to register DMI names h](j)}(h``struct snd_soc_card *card``h]j)}(hjuh]hstruct snd_soc_card *card}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMjhjuubj)}(hhh]jg)}(hThe card to register DMI namesh]hThe card to register DMI names}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMjhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMjhj}uubah}(h]h ]h"]h$]h&]uh1jhjauubjg)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMlhjauubjg)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMkhjauubjg)}(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}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMvhjauubjg)}(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”.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM{hjauubjg)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM~hjauubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjauubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_cnew (C function)c.snd_soc_cnewhNtauh1hhjihhhNhNubh)}(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}(hjBvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>vhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu ubj)}(h h]h }(hjPvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>vhhhjOvhMu ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjavhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^vubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcvmodnameN classnameNjj)}j]j)}j snd_soc_cnewsbc.snd_soc_cnewasbuh1hhj>vhhhjOvhMu ubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>vhhhjOvhMu ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>vhhhjOvhMu ubj)}(h snd_soc_cnewh]j%)}(hjvh]h snd_soc_cnew}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>vhhhjOvhMu 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}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubjL)}(hjOh]hstruct}(hjvhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j}vc.snd_soc_cnewasbuh1hhjvubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hj!whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(h _templateh]h _template}(hj.whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjGwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjCwubj)}(h h]h }(hjUwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCwubj)}(hjh]h*}(hjcwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCwubj%)}(hdatah]hdata}(hjpwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(hconst char *long_nameh](jL)}(hj\h]hconst}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hcharh]hchar}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(h long_nameh]h long_name}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(hconst char *prefixh](jL)}(hj\h]hconst}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hcharh]hchar}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjwubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hprefixh]hprefix}(hj*xhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj>vhhhjOvhMu ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj:vhhhjOvhMu ubah}(h]j5vah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjOvhMu hj7vhhubjb)}(hhh]jg)}(hcreate new controlh]hcreate new control}(hjTxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu hjQxhhubah}(h]h ]h"]h$]h&]uh1jahj7vhhhjOvhMu ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjlxjjlxjjjuh1hhhhjihNhNubj)}(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)}(hjvxh]h Parameters}(hjxxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtxubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hjpxubj)}(hhh](j)}(h>``const struct snd_kcontrol_new *_template`` control template h](j)}(h,``const struct snd_kcontrol_new *_template``h]j)}(hjxh]h(const struct snd_kcontrol_new *_template}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMv hjxubj)}(hhh]jg)}(hcontrol templateh]hcontrol template}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMv hjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMv hjxubj)}(h$``void *data`` control private data h](j)}(h``void *data``h]j)}(hjxh]h void *data}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMw hjxubj)}(hhh]jg)}(hcontrol private datah]hcontrol private data}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMw hjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMw hjxubj)}(h,``const char *long_name`` control long name h](j)}(h``const char *long_name``h]j)}(hjyh]hconst char *long_name}(hj yhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx hjyubj)}(hhh]jg)}(hcontrol long nameh]hcontrol long name}(hj yhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhMx hjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMx hjxubj)}(h+``const char *prefix`` control name prefix h](j)}(h``const char *prefix``h]j)}(hj@yh]hconst char *prefix}(hjByhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>yubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hj:yubj)}(hhh]jg)}(hcontrol name prefixh]hcontrol name prefix}(hjYyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUyhMy hjVyubah}(h]h ]h"]h$]h&]uh1jhj:yubeh}(h]h ]h"]h$]h&]uh1jhjUyhMy hjxubeh}(h]h ]h"]h$]h&]uh1jhjpxubjg)}(h**Description**h]j)}(hj{yh]h Description}(hj}yhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyyubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM{ hjpxubjg)}(h3Create a new mixer control from a template control.h]h3Create a new mixer control from a template control.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMz hjpxubjg)}(h"Returns 0 for success, else error.h]h"Returns 0 for success, else error.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM| hjpxubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_add_component_controls (C function) c.snd_soc_add_component_controlshNtauh1hhjihhhNhNubh)}(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}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyhhhjyhM 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>uh1jhjyhhhjyhM 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 zhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hj*zhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'zubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,zmodnameN classnameNjj)}j]j)}jjysb c.snd_soc_add_component_controlsasbuh1hhjzubj)}(h h]h }(hjJzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjXzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(h componenth]h component}(hjezhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hj~zhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzzubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjzzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzzubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]jFz c.snd_soc_add_component_controlsasbuh1hhjzzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzzubj%)}(hcontrolsh]hcontrols}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hunsigned int num_controlsh](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 }(hj3{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj%)}(h num_controlsh]h num_controls}(hjA{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?hjyhhhjyhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjyhhhjyhM ubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjyhM hjyhhubjb)}(hhh]jg)}(h(Add an array of controls to a component.h]h(Add an array of controls to a component.}(hjk{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 hjh{hhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjyhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjihNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to add controls to ``const struct snd_kcontrol_new *controls`` Array of controls to add ``unsigned int num_controls`` Number of elements in the array **Return** 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj{ubj)}(hhh](j)}(hE``struct snd_soc_component *component`` Component to add controls to h](j)}(h'``struct snd_soc_component *component``h]j)}(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)}(hComponent to add controls toh]hComponent to add controls to}(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)}(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 hj{ubj)}(h>``unsigned int num_controls`` Number of elements in the array h](j)}(h``unsigned int num_controls``h]j)}(hj|h]hunsigned int num_controls}(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}(hj7|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3|hM hj4|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj3|hM hj{ubeh}(h]h ]h"]h$]h&]uh1jhj{ubjg)}(h **Return**h]j)}(hjY|h]hReturn}(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:100: ./sound/soc/soc-core.chM hj{ubjg)}(h0 for success, else error.h]h0 for success, else error.}(hjo|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_add_card_controls (C function)c.snd_soc_add_card_controlshNtauh1hhjihhhNhNubh)}(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 }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hj'}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hsoc_cardh]hsoc_card}(hj4}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}(hjM}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjI}ubj)}(h h]h }(hjZ}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI}ubjL)}(hjOh]hstruct}(hjh}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjI}ubj)}(h h]h }(hju}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI}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_controlsasbuh1hhjI}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjI}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI}ubj%)}(hcontrolsh]hcontrols}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjI}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.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj~hhubah}(h]h ]h"]h$]h&]uh1jahj|hhhj|hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6~jj6~jjjuh1hhhhjihNhNubj)}(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)}(hj@~h]h Parameters}(hjB~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>~ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj:~ubj)}(hhh](j)}(h>``struct snd_soc_card *soc_card`` SoC card to add controls to h](j)}(h!``struct snd_soc_card *soc_card``h]j)}(hj_~h]hstruct snd_soc_card *soc_card}(hja~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 hjY~ubj)}(hhh]jg)}(hSoC card to add controls toh]hSoC card to add controls to}(hjx~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjt~hM hju~ubah}(h]h ]h"]h$]h&]uh1jhjY~ubeh}(h]h ]h"]h$]h&]uh1jhjt~hM hjV~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 hjV~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 hjV~ubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj:~ubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(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:~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_add_dai_controls (C function)c.snd_soc_add_dai_controlshNtauh1hhjihhhNhNubh)}(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}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhf/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 hjMhhhj_hM ubj)}(hsnd_soc_add_dai_controlsh]j%)}(hsnd_soc_add_dai_controlsh]hsnd_soc_add_dai_controls}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj_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}(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)}jjtsbc.snd_soc_add_dai_controlsasbuh1hhjubj)}(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'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}(hjhhhNhNubah}(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}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]jc.snd_soc_add_dai_controlsasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint num_controlsh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(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>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)}(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.}(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&]uh1jahjFhhhj_hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(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)}(h3``struct snd_soc_dai *dai`` DAI to add controls to 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:100: ./sound/soc/soc-core.chM hj ubj)}(hhh]jg)}(hDAI to add controls toh]hDAI to add controls to}(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)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjKh]h'const struct snd_kcontrol_new *controls}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjEubj)}(hhh]jg)}(harray of controls to addh]harray of controls to add}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hM hjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hM 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 hj~ubj)}(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&]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&]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.}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_card (C function)c.snd_soc_register_cardhNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_register_cardh]j%)}(hsnd_soc_register_cardh]hsnd_soc_register_card}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj!ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjAhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj'sbc.snd_soc_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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj9ubah}(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"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 hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj܂jj܂jjjuh1hhhhjihNhNubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_card (C function)c.snd_soc_unregister_cardhNtauh1hhjihhhNhNubh)}(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}(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 }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhjmhM ubj)}(hsnd_soc_unregister_cardh]j%)}(hsnd_soc_unregister_cardh]hsnd_soc_unregister_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhjmhM 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_unregister_cardasbuh1hhjubj)}(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>uh1jEhjubah}(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$Unregister a card with the ASoC coreh]h$Unregister a card with the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjThhhjmhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhjihNhNubj)}(hB**Parameters** ``struct snd_soc_card *card`` Card to unregisterh](jg)}(h**Parameters**h]j)}(hjAh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM# hj;ubj)}(hhh]j)}(h0``struct snd_soc_card *card`` Card to unregisterh](j)}(h``struct snd_soc_card *card``h]j)}(hj`h]hstruct snd_soc_card *card}(hjbhhhNhNubah}(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% hjZubj)}(hhh]jg)}(hCard to unregisterh]hCard to unregister}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM! hjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhM% hjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_register_dai (C function)c.snd_soc_register_daihNtauh1hhjihhhNhNubh)}(hhh](h)}(hstruct snd_soc_dai * snd_soc_register_dai (struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h]h)}(hstruct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx ubj)}(h h]h }(hjȄhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjDŽhMx 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)}jsnd_soc_register_daisbc.snd_soc_register_daiasbuh1hhjhhhjDŽhMx ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjDŽhMx ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjDŽhMx ubj)}(hsnd_soc_register_daih]j%)}(hjh]hsnd_soc_register_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjDŽhMx 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}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]jc.snd_soc_register_daiasbuh1hhj0ubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj,ubjF)}(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}(hj…hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjąmodnameN classnameNjj)}j]jc.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>uh1jEhj,ubjF)}(hbool legacy_dai_namingh](h)}(hjh]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hlegacy_dai_namingh]hlegacy_dai_naming}(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?hjhhhjDŽhMx ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjDŽhMx ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDŽhMx hjhhubjb)}(hhh]jg)}(h/Register a DAI dynamically & create its widgetsh]h/Register a DAI dynamically & create its widgets}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx hjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjDŽhMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjihNhNubj)}(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)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM| hjuubj)}(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.chMz hjubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMz hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMz 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)}(hjӆh]h"struct snd_soc_dai_driver *dai_drv}(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 driver to use for the DAIh]hDAI driver to use for the DAI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{ hjubah}(h]h ]h"]h$]h&]uh1jhj͆ubeh}(h]h ]h"]h$]h&]uh1jhjhM{ 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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM} hjubj)}(hhh]jg)}(hSif ``true``, use legacy single-name format; if ``false``, use multiple-name format;h](hif }(hj%hhhNhNubj)}(h``true``h]htrue}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh$, use legacy single-name format; if }(hj%hhhNhNubj)}(h ``false``h]hfalse}(hj?hhhNhNubah}(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.chM| hj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hM} hjubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjlh]h Description}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjuubjg)}(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.chM~ hjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_dais (C function)c.snd_soc_unregister_daishNtauh1hhjihhhNhNubh)}(hhh](h)}(hBvoid snd_soc_unregister_dais (struct snd_soc_component *component)h]h)}(hAvoid snd_soc_unregister_dais(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_unregister_daish]j%)}(hsnd_soc_unregister_daish]hsnd_soc_unregister_dais}(hj҇hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj·ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(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_unregister_daisasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjGhhhNhNubah}(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"Unregister DAIs from the ASoC coreh]h"Unregister DAIs from the ASoC core}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjnhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(h7The component for which the DAIs should be unregisteredh]h7The component for which the DAIs should be unregistered}(hjˈhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjȈubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjLjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_dais (C function)c.snd_soc_register_daishNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_register_daish]j%)}(hsnd_soc_register_daish]hsnd_soc_register_dais}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM 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}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.snd_soc_register_daisasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubjF)}(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]jc.snd_soc_register_daisasbuh1hhjubj)}(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>uh1jEhjAubjF)}(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 reftargetj0modnameN classnameNjj)}j]jc.snd_soc_register_daisasbuh1hhj'ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj%)}(hcounth]hcount}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubeh}(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!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&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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}(hjNJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjÊubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(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)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h``size_t count`` Number of DAIsh](j)}(h``size_t count``h]j)}(hj7h]h size_t count}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj1ubj)}(hhh]jg)}(hNumber of DAIsh]hNumber of DAIs}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_unregister_component_by_driver (C function)(c.snd_soc_unregister_component_by_driverhNtauh1hhjihhhNhNubh)}(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.chMu ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMu ubj)}(h&snd_soc_unregister_component_by_driverh]j%)}(h&snd_soc_unregister_component_by_driverh]h&snd_soc_unregister_component_by_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMu ubj@)}(hM(struct device *dev, const struct snd_soc_component_driver *component_driver)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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb(c.snd_soc_unregister_component_by_driverasbuh1hhjʋubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʋubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʋubj%)}(hdevh]hdev}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʋubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjƋubjF)}(h7const struct snd_soc_component_driver *component_driverh](jL)}(hj\h]hconst}(hj@hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubjL)}(hjOh]hstruct}(hj[hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_soc_component_driverh]hsnd_soc_component_driver}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j(c.snd_soc_unregister_component_by_driverasbuh1hhj<ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj%)}(hcomponent_driverh]hcomponent_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjƋubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMu ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMu ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMu hjhhubjb)}(hhh]jg)}(huh1jhjhhhjhKubj@)}(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)}jjӍsb!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjFhhhNhNubah}(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}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(hsnd_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_componentasbuh1hhj[ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubj)}(hjh]h*}(hjĎhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj%)}(h cmpnt_drvh]h cmpnt_drv}(hjюhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubeh}(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*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int num_daih](h)}(hinth]hint}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj%)}(hnum_daih]hnum_dai}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(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'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&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(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&]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)}(hDevice used to manage componenth]hDevice used to manage component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjۏubeh}(h]h ]h"]h$]h&]uh1jhjhKhj؏ubj)}(hF``const struct snd_soc_component_driver *cmpnt_drv`` Component driver h](j)}(h4``const struct snd_soc_component_driver *cmpnt_drv``h]j)}(hjh]h0const struct snd_soc_component_driver *cmpnt_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(hhh]jg)}(hComponent driverh]hComponent driver}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hKhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hKhj؏ubj)}(h2``struct snd_soc_dai_driver *dai_drv`` DAI driver h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjSh]h"struct snd_soc_dai_driver *dai_drv}(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:101: ./sound/soc/soc-devres.chKhjMubj)}(hhh]jg)}(h DAI driverh]h DAI driver}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhKhj؏ubj)}(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&]uh1jhjhKhj؏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.chKhjubjg)}(hSRegister a component with automatic unregistration when the device is unregistered.h]hSRegister a component with automatic unregistration when the device is unregistered.}(hjݐhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'devm_snd_soc_register_card (C function)c.devm_snd_soc_register_cardhNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhK:ubj)}(hdevm_snd_soc_register_cardh]j%)}(hdevm_snd_soc_register_cardh]hdevm_snd_soc_register_card}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhK:ubj@)}(h/(struct device *dev, struct snd_soc_card *card)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjIhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjEubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubh)}(hhh]j%)}(hdeviceh]hdevice}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.devm_snd_soc_register_cardasbuh1hhjEubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjAubjF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjȑhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjّhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj֑ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjۑmodnameN classnameNjj)}j]jc.devm_snd_soc_register_cardasbuh1hhjubj)}(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>uh1jEhjAubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhK:ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhK:ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhK:hjhhubjb)}(hhh]jg)}(h"resource managed card registrationh]h"resource managed card registration}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK:hj9hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjihNhNubj)}(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)}(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.chK>hjXubj)}(hhh](j)}(h2``struct device *dev`` Device used to manage card h](j)}(h``struct device *dev``h]j)}(hj}h]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK;hjwubj)}(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&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjtubj)}(h/``struct snd_soc_card *card`` Card to register 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&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjXubjg)}(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=hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_dmaengine_pcm_register (C function)!c.devm_snd_dmaengine_pcm_registerhNtauh1hhjihhhNhNubh)}(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}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj2hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKeubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2hhhjDhKeubj)}(hdevm_snd_dmaengine_pcm_registerh]j%)}(hdevm_snd_dmaengine_pcm_registerh]hdevm_snd_dmaengine_pcm_register}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj2hhhjDhKeubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjshhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjYsb!c.devm_snd_dmaengine_pcm_registerasbuh1hhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hdevh]hdev}(hj̓hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkubjF)}(h-const struct snd_dmaengine_pcm_config *configh](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_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hconfigh]hconfig}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj%)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjkubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj2hhhjDhKeubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj.hhhjDhKeubah}(h]j)ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhKehj+hhubjb)}(hhh]jg)}(h+resource managed dmaengine PCM registrationh]h+resource managed dmaengine PCM registration}(hjҔhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKehjϔhhubah}(h]h ]h"]h$]h&]uh1jahj+hhhjDhKeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(hXP**Parameters** ``struct device *dev`` The parent device for the PCM device ``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration ``unsigned int flags`` Platform specific quirks **Description** Register a dmaengine based PCM device with automatic unregistration when the device is unregistered.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKihjubj)}(hhh](j)}(h<``struct device *dev`` The parent device for the PCM device h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKfhj ubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(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)}(hjLh]h-const struct snd_dmaengine_pcm_config *config}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKghjFubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKghjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahKghj 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)}(hjh]h Description}(hj•hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.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.}(hj֕hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKihjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_set_sysclk (C function)c.snd_soc_component_set_sysclkhNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKEubj)}(hsnd_soc_component_set_sysclkh]j%)}(hsnd_soc_component_set_sysclkh]hsnd_soc_component_set_sysclk}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKEubj@)}(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}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj>ubj)}(h h]h }(hjOhhhNhNubah}(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 reftargetjbmodnameN classnameNjj)}j]j)}jj(sbc.snd_soc_component_set_sysclkasbuh1hhj>ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(h int clk_idh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj–hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hclk_idh]hclk_id}(hjЖhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(h int sourceh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsourceh]hsource}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hunsigned int freqh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfreqh]hfreq}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hint dirh](h)}(hinth]hint}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKEubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKEubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKEhjhhubjb)}(hhh]jg)}(h+configure COMPONENT system or master clock.h]h+configure COMPONENT system or master clock.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKEhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjj͗jj͗jjjuh1hhhhjihNhNubj)}(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)}(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.chKIhjїubj)}(hhh](j)}(h2``struct snd_soc_component *component`` COMPONENT h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKFhjubj)}(hhh]jg)}(h COMPONENTh]h COMPONENT}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(hj/h]h int clk_id}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKGhj)ubj)}(hhh]jg)}(hDAI specific clock IDh]hDAI specific clock ID}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhKGhjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhKGhjubj)}(h$``int source`` Source for the clock h](j)}(h``int source``h]j)}(hjhh]h int source}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKHhjbubj)}(hhh]jg)}(hSource for the clockh]hSource for the clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hKHhj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hKHhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKIhjubj)}(h0``int dir`` new clock direction - input/output. h](j)}(h ``int dir``h]j)}(hjژh]hint dir}(hjܘhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjؘubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKJhjԘubj)}(hhh]jg)}(h#new clock direction - input/output.h]h#new clock direction - input/output.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjԘubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubeh}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjїubjg)}(h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.h]h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKKhjїubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_component_set_jack (C function)c.snd_soc_component_set_jackhNtauh1hhjihhhNhNubh)}(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}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjhhM ubj)}(hsnd_soc_component_set_jackh]j%)}(hsnd_soc_component_set_jackh]hsnd_soc_component_set_jack}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVhhhjhhM 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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj}sbc.snd_soc_component_set_jackasbuh1hhjubj)}(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)}(hstruct snd_soc_jack *jackh](jL)}(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_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_component_set_jackasbuh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjackh]hjack}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *datah](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%)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjVhhhjhhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjhhM ubah}(h]jMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhhM hjOhhubjb)}(hhh]jg)}(hconfigure component jack.h]hconfigure component jack.}(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&]uh1jahjOhhhjhhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hM hj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hM hjubj)}(h<``struct snd_soc_jack *jack`` structure to use for the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjFh]hstruct snd_soc_jack *jack}(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.chM hj@ubj)}(hhh]jg)}(hstructure to use for the jackh]hstructure to use for the jack}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hM hj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hM 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&]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 hjyubj)}(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&]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&]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.}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_component_get_jack_type (C function)!c.snd_soc_component_get_jack_typehNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(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}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]j)}jj"sb!c.snd_soc_component_get_jack_typeasbuh1hhj8ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(h componenth]h component}(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]h}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjȜjjȜjjjuh1hhhhjihNhNubj)}(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)}(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)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(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&]uh1jhj̜ubjg)}(h**Description**h]j)}(hj,h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hj̜ubjg)}(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.}(hjBhhhNhNubah}(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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_init_regmap (C function)c.snd_soc_component_init_regmaphNtauh1hhjihhhNhNubh)}(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}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmhhhk/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 hjmhhhjhMubj)}(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>uh1jhjmhhhjhMubj@)}(h<(struct snd_soc_component *component, struct regmap *regmap)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_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}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hregmaph]hregmap}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]jc.snd_soc_component_init_regmapasbuh1hhjubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hregmaph]hregmap}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjhMubah}(h]jdah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjfhhubjb)}(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&]uh1jahjfhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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&]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)}(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.chMhjܞubj)}(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&]uh1jhjܞubeh}(h]h ]h"]h$]h&]uh1jhjhMhjٞubj)}(hS``struct regmap *regmap`` The regmap instance that should be used by the component h](j)}(h``struct regmap *regmap``h]j)}(hjh]hstruct regmap *regmap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h8The regmap instance that should be used by the componenth]h8The regmap instance that should be used by the component}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhjٞubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjVh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_exit_regmap (C function)c.snd_soc_component_exit_regmaphNtauh1hhjihhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj؟hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjԟubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԟubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_exit_regmapasbuh1hhjԟubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjԟubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԟubj%)}(h componenth]h component}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjԟubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjПubah}(h]h ]h"]h$]h&]j=j>uh1j?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}(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.chMhjXhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjihNhNubj)}(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)}(hj}h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjwubj)}(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)}(huh1jhj'hhhj9hMubj@)}(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)}jjjsbc.snd_soc_component_readasbuh1hhjubj)}(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}(hjݡhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj'hhhj9hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#hhhj9hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9hMhj hhubjb)}(hhh]jg)}(hRead register valueh]hRead register value}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjUhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjihNhNubj)}(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)}(hjzh]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjtubj)}(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}(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 read h](j)}(h``unsigned int reg``h]j)}(hjҢh]hunsigned int reg}(hjԢhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjТubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj̢ubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(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&]uh1jhjtubjg)}(h **Return**h]j)}(hj h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjtubjg)}(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.chMhjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_component_write (C function)c.snd_soc_component_writehNtauh1hhjihhhNhNubh)}(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}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj`hM ubj)}(hsnd_soc_component_writeh]j%)}(hsnd_soc_component_writeh]hsnd_soc_component_write}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhj`hM 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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjusbc.snd_soc_component_writeasbuh1hhjubj)}(h h]h }(hjͣhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjۣhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjNhhhj`hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhj`hM ubah}(h]jEah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj`hM hjGhhubjb)}(hhh]jg)}(hWrite register valueh]hWrite register value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjGhhhj`hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj̤jj̤jjjuh1hhhhjihNhNubj)}(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)}(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)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(hj.h]hunsigned int reg}(hj0hhhNhNubah}(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}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhjubj)}(h4``unsigned int val`` Value to write to the register h](j)}(h``unsigned int val``h]j)}(hjgh]hunsigned int val}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjaubj)}(hhh]jg)}(hValue to write to the registerh]hValue to write to the register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjubeh}(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&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjФubjg)}(h.0 on success, a negative error code otherwise.h]h.0 on success, a negative error code otherwise.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjФubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_update_bits (C function)c.snd_soc_component_update_bitshNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM7ubj)}(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>uh1jhjhhhjhM7ubj@)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_component_update_bitsasbuh1hhj ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(h componenth]h component}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjΦhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj4ubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(hvalh]hval}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM7ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjߥhhhjhM7ubah}(h]jڥah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM7hjܥhhubjb)}(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&]uh1jahjܥhhhjhM7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(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 update 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.chM8hjէubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjէubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjҧubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hjh]hunsigned int reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM9hjubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hM9hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hM9hjҧubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjMh]hunsigned int mask}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM:hjGubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhM:hjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhM:hjҧubj)}(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;hjҧubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(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.chM=hjubjg)}(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.}(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=hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_soc_component_update_bits_async (C function)%c.snd_soc_component_update_bits_asynchNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMUubj)}(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>uh1jhjhhhjhMUubj@)}(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}(hjChhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?ubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jj)sb%c.snd_soc_component_update_bits_asyncasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(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}(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>uh1jEhj;ubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjSubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMUubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMUhjhhubjb)}(hhh]jg)}(h,Perform asynchronous read/modify/write cycleh]h,Perform asynchronous 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.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjjѪjjѪjjjuh1hhhhjihNhNubj)}(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)}(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.chMYhjժ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.chMWhjubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hj3h]hunsigned int reg}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMXhj-ubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMXhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMXhjubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjlh]hunsigned int mask}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMYhjfubj)}(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&]uh1jhjfubeh}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjubeh}(h]h ]h"]h$]h&]uh1jhjժubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjޫubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM\hjժubjg)}(hXThis function is similar to snd_soc_component_update_bits(), but the update operation is scheduled asynchronously. This means it may not be completed when the function returns. To make sure that all scheduled updates have been completed snd_soc_component_async_complete() must be called.h]hXThis function is similar to snd_soc_component_update_bits(), but the update operation is scheduled asynchronously. This means it may not be completed when the function returns. To make sure that all scheduled updates have been completed snd_soc_component_async_complete() must be called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM[hjժubjg)}(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.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.chMahjժubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_read_field (C function)c.snd_soc_component_read_fieldhNtauh1hhjihhhNhNubh)}(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}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMyubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhMyubh)}(hinth]hint}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhjZhMyubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhMyubj)}(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>uh1jhjHhhhjZhMyubj@)}(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 }(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_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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjZhMyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjZhMyubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjZhMyhjAhhubjb)}(hhh]jg)}(hRead register field valueh]hRead register field 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.chMyhjǭhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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&]uh1jfhj hMzhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMzhjubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hjDh]hunsigned int reg}(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)}(hRegister to readh]hRegister to read}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhM{hjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhM{hjubj)}(h1``unsigned int mask`` mask of the register field 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&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM|hjwubj)}(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&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhM|hjubeh}(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.chM~hjubjg)}(hread value of register field.h]hread value of 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.chM~hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_write_field (C function)c.snd_soc_component_write_fieldhNtauh1hhjihhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(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}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(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 sbc.snd_soc_component_write_fieldasbuh1hhj6ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubjF)}(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>uh1jEhj2ubjF)}(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}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubjF)}(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}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj%)}(hvalh]hval}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2ubeh}(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)}(hwrite to register fieldh]hwrite to 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjȰjjȰjjjuh1hhhhjihNhNubj)}(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)}(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)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(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)}(hj*h]hunsigned int reg}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj$ubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hjChhhNhNubah}(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 mask`` mask of the register field to update h](j)}(h``unsigned int mask``h]j)}(hjch]hunsigned int mask}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj]ubj)}(hhh]jg)}(h$mask of the register field to updateh]h$mask of the register field to update}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMhjubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhj̰ubjg)}(h **Return**h]j)}(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.chMhj̰ubjg)}(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.chMhj̰ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_component_async_complete (C function)"c.snd_soc_component_async_completehNtauh1hhjihhhNhNubh)}(hhh](h)}(hKvoid snd_soc_component_async_complete (struct snd_soc_component *component)h]h)}(hJvoid snd_soc_component_async_complete(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj*hMubj)}(h snd_soc_component_async_completeh]j%)}(h snd_soc_component_async_completeh]h snd_soc_component_async_complete}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubah}(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}(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?sb"c.snd_soc_component_async_completeasbuh1hhjUubj)}(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>uh1jEhjQubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj*hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj*hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj*hMhjhhubjb)}(hhh]jg)}(h%Ensure asynchronous I/O has completedh]h%Ensure asynchronous I/O has completed}(hjܲhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjٲhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj*hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component for which to wait **Description** This function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(hD``struct snd_soc_component *component`` Component for which to wait h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent for which to waith]hComponent for which to wait}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMhjubah}(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&]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.}(hjnhhhNhNubah}(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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_component_test_bits (C function)c.snd_soc_component_test_bitshNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_test_bitsh]j%)}(hsnd_soc_component_test_bitsh]hsnd_soc_component_test_bits}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h^(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjڳhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjֳubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjֳubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_test_bitsasbuh1hhjֳubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjֳubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjֳubj%)}(h componenth]h component}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjֳubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjҳubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hinth]hint}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjҳubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjǴhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjմhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjҳubjF)}(hunsigned int 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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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)}(hTest register for changeh]hTest register for change}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjMhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhjihNhNubj)}(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)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlubj)}(hhh](j)}(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)}(hjʵh]hunsigned int reg}(hj̵hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjȵubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjĵubj)}(hhh]jg)}(hRegister to testh]hRegister to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjߵhMhjubah}(h]h ]h"]h$]h&]uh1jhjĵubeh}(h]h ]h"]h$]h&]uh1jhjߵhMhjubj)}(h=``unsigned int mask`` Mask that specifies which bits to test h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h&Mask that specifies which bits to testh]h&Mask that specifies which bits to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h-``unsigned int value`` Value to test against h](j)}(h``unsigned int value``h]j)}(hj<h]hunsigned int value}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj6ubj)}(hhh]jg)}(hValue to test againsth]hValue to test against}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhMhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjlubjg)}(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.chMhjlubjg)}(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.chMhjlubjg)}(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.chMhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_runtime_action (C function)c.snd_soc_runtime_actionhNtauh1hhjihhhNhNubh)}(hhh](h)}(hUvoid snd_soc_runtime_action (struct snd_soc_pcm_runtime *rtd, int stream, int action)h]h)}(hTvoid snd_soc_runtime_action(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj߶hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj߶hhhjhMXubj)}(hsnd_soc_runtime_actionh]j%)}(hsnd_soc_runtime_actionh]hsnd_soc_runtime_action}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj߶hhhjhMXubj@)}(h9(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](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_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj>hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_actionasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hjyhhhNhNubah}(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 int actionh](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%)}(hactionh]haction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj÷ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj߶hhhjhMXubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj۶hhhjhMXubah}(h]jֶah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMXhjضhhubjb)}(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&]uh1jahjضhhhjhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhjihNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated ``int stream`` Direction of the PCM stream ``int action`` Activate stream if 1. Deactivate if -1. **Description** Increments/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened. Must be called with the rtd->card->pcm_mutex being heldh](jg)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM\hj)ubj)}(hhh](j)}(hG``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjNh]hstruct snd_soc_pcm_runtime *rtd}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMZhjHubj)}(hhh]jg)}(h"ASoC PCM runtime that is activatedh]h"ASoC PCM runtime that is activated}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchMZhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMZhjEubj)}(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[hjEubj)}(h7``int action`` Activate stream if 1. Deactivate if -1. h](j)}(h``int action``h]j)}(hjh]h int action}(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:103: ./sound/soc/soc-pcm.chM\hjubj)}(hhh]jg)}(h'Activate stream if 1. Deactivate if -1.h]h'Activate stream if 1. Deactivate if -1.}(hjٸhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjոhM\hjָubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjոhM\hjEubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM^hj)ubjg)}(hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.h]hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM]hj)ubjg)}(h7Must be called with the rtd->card->pcm_mutex being heldh]h7Must be called with the rtd->card->pcm_mutex being held}(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.chMahj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_runtime_ignore_pmdown_time (C function)$c.snd_soc_runtime_ignore_pmdown_timehNtauh1hhjihhhNhNubh)}(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}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhj\hMzubj)}(h"snd_soc_runtime_ignore_pmdown_timeh]j%)}(h"snd_soc_runtime_ignore_pmdown_timeh]h"snd_soc_runtime_ignore_pmdown_time}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKhhhj\hMzubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsb$c.snd_soc_runtime_ignore_pmdown_timeasbuh1hhjubj)}(h h]h }(hjɹhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj׹hhhNhNubah}(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?hjKhhhj\hMzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGhhhj\hMzubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hMzhjDhhubjb)}(hhh]jg)}(h,Check whether to ignore the power down delayh]h,Check whether to ignore the power down delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzhj hhubah}(h]h ]h"]h$]h&]uh1jahjDhhhj\hMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjihNhNubj)}(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)}(hj0h]h Parameters}(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:103: ./sound/soc/soc-pcm.chM~hj*ubj)}(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)}(hjOh]hstruct snd_soc_pcm_runtime *rtd}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM{hjIubj)}(hhh]jg)}(h,The ASoC PCM runtime that should be checked.h]h,The ASoC PCM runtime that should be checked.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhM{hjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhM{hjFubah}(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)}(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|hj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_runtime_calc_hw (C function)c.snd_soc_runtime_calc_hwhNtauh1hhjihhhNhNubh)}(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}(hjϺhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj˺hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMcubj)}(h h]h }(hj޺hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj˺hhhjݺhMcubj)}(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>uh1jhj˺hhhjݺhMcubj@)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_pcm_hardware *hwh](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_hardwareh]hsnd_pcm_hardware}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.snd_soc_runtime_calc_hwasbuh1hhjzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj)}(hjh]h*}(hjȻhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj%)}(hhwh]hhw}(hjջhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(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?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)}(h$Calculate hw limits for a PCM streamh]h$Calculate hw limits for a PCM stream}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMchj1hhubah}(h]h ]h"]h$]h&]uh1jahjĺhhhjݺhMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhjihNhNubj)}(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)}(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:103: ./sound/soc/soc-pcm.chMghjPubj)}(hhh](j)}(h5``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjuh]hstruct snd_soc_pcm_runtime *rtd}(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:103: ./sound/soc/soc-pcm.chMdhjoubj)}(hhh]jg)}(hASoC PCM runtimeh]hASoC PCM runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMdhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhMdhjlubj)}(hA``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjh]hstruct snd_pcm_hardware *hw}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]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ühMehjlubj)}(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&]uh1jhjhMfhjlubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hj"h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMhhjPubjg)}(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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMghjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_info_enum_double (C function)c.snd_soc_info_enum_doublehNtauh1hhjihhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjuhKubj)}(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>uh1jhjchhhjuhKubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj½hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjĽmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j޽c.snd_soc_info_enum_doubleasbuh1hhjubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjchhhjuhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_hhhjuhKubah}(h]jZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhKhj\hhubjb)}(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&]uh1jahj\hhhjuhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(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.chK"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&]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.chKhjҾubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjҾubeh}(h]h ]h"]h$]h&]uh1jhjhKhjϾubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK hj ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(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&]uh1jhjubjg)}(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:104: ./sound/soc/soc-ops.chK"hjubjg)}(hHCallback to provide information about a double enumerated mixer control.h]hHCallback to provide information about a double enumerated mixer control.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK!hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK$hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_get_enum_double (C function)c.snd_soc_get_enum_doublehNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhK2ubj)}(hsnd_soc_get_enum_doubleh]j%)}(hsnd_soc_get_enum_doubleh]hsnd_soc_get_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhK2ubj@)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjٿubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjÿsbc.snd_soc_get_enum_doubleasbuh1hhjٿ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}(hj6hhhNhNubah}(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}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]jc.snd_soc_get_enum_doubleasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjտubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhK2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhK2ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhK2hjhhubjb)}(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&]uh1jahjhhhjhK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a double enumerated mixer. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK3hj ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj*hhhNhNubah}(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)}(hjJh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chK4hjDubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hK4hj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hK4hjubeh}(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.chK5hjubjg)}(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.chK7hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_put_enum_double (C function)c.snd_soc_put_enum_doublehNtauh1hhjihhhNhNubh)}(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$hjubah}(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}(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}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_enum_doubleasbuh1hhjubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jPc.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>uh1jEhjubeh}(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&]jjjj!jj!jjjuh1hhhhjihNhNubj)}(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)}(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.chKUhj%ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjJh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chKRhjDubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hKRhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hKRhjAubj)}(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.chKShj}ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKShjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhKShjAubeh}(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.chKThj%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.chKVhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_volsw (C function)c.snd_soc_info_volswhNtauh1hhjihhhNhNubh)}(hhh](h)}(hWint snd_soc_info_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hVint snd_soc_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hsnd_soc_info_volswh]j%)}(hsnd_soc_info_volswh]hsnd_soc_info_volsw}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj5sbc.snd_soc_info_volswasbuh1hhjKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(h&single mixer info callback with range.h]h&single mixer info callback with range.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj?hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhjihNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chMhj^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.chMhj}ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjzubj)}(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&]uh1jhjhMhjzubeh}(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.chMhj^ubjg)}(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.chMhj^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.chMhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_info_volsw_sx (C function)c.snd_soc_info_volsw_sxhNtauh1hhjihhhNhNubh)}(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}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM&ubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGhhhjYhM&ubj)}(hsnd_soc_info_volsw_sxh]j%)}(hsnd_soc_info_volsw_sxh]hsnd_soc_info_volsw_sx}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjGhhhjYhM&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)}jjnsbc.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&]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_volsw_sxasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjGhhhjYhM&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjYhM&ubah}(h]j>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhM&hj@hhubjb)}(hhh]jg)}(h'Mixer info callback for SX TLV controlsh]h'Mixer info callback for SX TLV controls}(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&hjxhhubah}(h]h ]h"]h$]h&]uh1jahj@hhhjYhM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM(hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(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: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.}(hjFhhhNhNubah}(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.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM/hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_volsw (C function)c.snd_soc_get_volswhNtauh1hhjihhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jc.snd_soc_get_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%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM=ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhM=ubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM=hjyhhubjb)}(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&]uh1jahjyhhhjhM=ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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)}(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&]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)}(hj.h]h#struct snd_ctl_elem_value *ucontrol}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM?hj(ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChM?hjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChM?hjubeh}(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&]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.chM@hjubjg)}(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.chMChjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_volsw (C function)c.snd_soc_put_volswhNtauh1hhjihhhNhNubh)}(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&]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_volswasbuh1hhjubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjShhhNhNubah}(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}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(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]j4c.snd_soc_put_volswasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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&]jjjjjjjjjuh1hhhhjihNhNubj)}(hX+**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value , within a range, of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(hj.h]hstruct snd_kcontrol *kcontrol}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMShj(ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChMShjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMShj%ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjgh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chMThjaubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMThj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMThj%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.chMUhj 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.chMXhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_get_volsw_sx (C function)c.snd_soc_get_volsw_sxhNtauh1hhjihhhNhNubh)}(hhh](h)}(h]int snd_soc_get_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h\int snd_soc_get_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMgubj)}(hsnd_soc_get_volsw_sxh]j%)}(hsnd_soc_get_volsw_sxh]hsnd_soc_get_volsw_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMgubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](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%)}(h snd_kcontrolh]h snd_kcontrol}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_volsw_sxasbuh1hhj/ubj)}(h h]h }(hjqhhhNhNubah}(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]jmc.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>uh1jEhj+ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMgubeh}(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&]jjjj>jj>jjjuh1hhhhjihNhNubj)}(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)}(hjHh]h Parameters}(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:104: ./sound/soc/soc-ops.chMkhjBubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjgh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhhjaubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hMhhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhhj^ubj)}(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&]uh1jhjhMihj^ubeh}(h]h ]h"]h$]h&]uh1jhjBubjg)}(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.chMkhjBubjg)}(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.chMjhjBubjg)}(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.chMmhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_put_volsw_sx (C function)c.snd_soc_put_volsw_sxhNtauh1hhjihhhNhNubh)}(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}(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.chM|ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+hhhj=hM|ubj)}(hsnd_soc_put_volsw_sxh]j%)}(hsnd_soc_put_volsw_sxh]hsnd_soc_put_volsw_sx}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+hhhj=hM|ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(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)}jjRsbc.snd_soc_put_volsw_sxasbuh1hhjhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubjF)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjdubeh}(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)}(hdouble mixer set callbackh]hdouble mixer set 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.chM|hj\hhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj=hM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjihNhNubj)}(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.chMhj{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.chM}hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM}hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM~hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM~hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM~hjubeh}(h]h ]h"]h$]h&]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.chMhj{ubjg)}(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.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj{ubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_limit_volume (C function)c.snd_soc_limit_volumehNtauh1hhjihhhNhNubh)}(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}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdhhhjvhMubj)}(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>uh1jhjdhhhjvhMubj@)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(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%)}(hnameh]hname}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint maxh](h)}(hinth]hint}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj%)}(hmaxh]hmax}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjdhhhjvhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`hhhjvhMubah}(h]j[ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMhj]hhubjb)}(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&]uh1jahj]hhhjvhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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.chMhjubj)}(hhh]jg)}(hwhere to look for the controlh]hwhere to look for the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``const char *name`` Name of the control h](j)}(h``const char *name``h]j)}(hj4h]hconst char *name}(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:104: ./sound/soc/soc-ops.chMhj.ubj)}(hhh]jg)}(hName of the controlh]hName of the control}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjubj)}(h``int max`` new maximum limit h](j)}(h ``int max``h]j)}(hjmh]hint max}(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:104: ./sound/soc/soc-ops.chMhjgubj)}(hhh]jg)}(hnew maximum limith]hnew maximum limit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_xr_sx (C function)c.snd_soc_info_xr_sxhNtauh1hhjihhhNhNubh)}(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.chMlubj)}(h h]h }(#hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMlubj)}(hsnd_soc_info_xr_sxh]j%)}(hsnd_soc_info_xr_sxh]hsnd_soc_info_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMlubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(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_info_xr_sxasbuh1hhj&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)}(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]jdc.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}(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?hjhhhjhMlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMlubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMlhjhhubjb)}(hhh]jg)}(h#signed multi register info callbackh]h#signed multi register info callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhjihNhNubj)}(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)}(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.chMphj9ubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg 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.chMmhjXubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMmhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMmhjUubj)}(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.chMnhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhjUubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMphj9ubjg)}(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.chMohj9ubjg)}(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.chMthj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_xr_sx (C function)c.snd_soc_get_xr_sxhNtauh1hhjihhhNhNubh)}(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&]uh1hhj"hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj4hMubj)}(hsnd_soc_get_xr_sxh]j%)}(hsnd_soc_get_xr_sxh]hsnd_soc_get_xr_sx}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj"hhhj4hMubj@)}(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_get_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>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_get_xr_sxasbuh1hhjubj)}(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>uh1jEhj[ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj"hhhj4hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj4hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj4hMhjhhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get 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.chMhjShhubah}(h]h ]h"]h$]h&]uh1jahjhhhj4hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnjjnjjjuh1hhhhjihNhNubj)}(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)}(hjxh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubj)}(hhh](j)}(h/``struct snd_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&]uh1jhjrubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubjg)}(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.}(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.chMhjrubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_xr_sx (C function)c.snd_soc_put_xr_sxhNtauh1hhjihhhNhNubh)}(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}(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 }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhjmhMubj)}(hsnd_soc_put_xr_sxh]j%)}(hsnd_soc_put_xr_sxh]hsnd_soc_put_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhjmhMubj@)}(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}(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_put_xr_sxasbuh1hhj 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[hhhjmhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWhhhjmhMubah}(h]jRah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmhMhjThhubjb)}(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&]uh1jahjThhhjmhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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}(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)}(hjDh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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.}(hjZhhhNhNubah}(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.}(hjihhhNhNubah}(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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_strobe (C function)c.snd_soc_get_strobehNtauh1hhjihhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_strobeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(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_get_strobeasbuh1hhjCubj)}(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?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&]jjjjjjjjjuh1hhhhjihNhNubj)}(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}(hj"hhhNhNubah}(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)}(hjBh]h#struct snd_ctl_elem_value *ucontrol}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj<ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhMhjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj}h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_strobe (C function)c.snd_soc_put_strobehNtauh1hhjihhhNhNubh)}(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}(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&]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_put_strobeasbuh1hhj 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)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jHc.snd_soc_put_strobeasbuh1hhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?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&]jjjjjjjjjuh1hhhhjihNhNubj)}(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&]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.chM hjubj)}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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)}(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&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM hjubjg)}(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.chM hjubjg)}(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 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_new_compress (C function)c.snd_soc_new_compresshNtauh1hhjihhhNhNubh)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_new_compressh]j%)}(hsnd_soc_new_compressh]hsnd_soc_new_compress}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j)}jj-sbc.snd_soc_new_compressasbuh1hhjCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(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)}(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&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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&]uh1jfhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjFh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(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.}(hj\hhhNhNubah}(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&]uh1jhjihhhNhNubeh}(h] asoc-core-apiah ]h"] asoc core apiah$]h&]uh1hhjihhhhhKbubh)}(hhh](h)}(h ASoC DAPM APIh]h ASoC DAPM API}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhKlubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_kcontrol_widget (C function)c.snd_soc_dapm_kcontrol_widgethNtauh1hhjzhhhNhNubh)}(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.chMpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMpubh)}(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_widgetasbuh1hhjhhhjhMpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMpubj)}(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>uh1jhjhhhjhMpubj@)}(h(struct snd_kcontrol *kcontrol)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$hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>modnameN classnameNjj)}j]jc.snd_soc_dapm_kcontrol_widgetasbuh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMpubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMphjhhubjb)}(hhh]jg)}(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.chMphjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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.chMthjubj)}(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.chMvhjubj)}(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.chMrhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_dapm_kcontrol_dapm (C function)c.snd_soc_dapm_kcontrol_dapmhNtauh1hhjzhhhNhNubh)}(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}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM|ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjGhM|ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_dapmsbc.snd_soc_dapm_kcontrol_dapmasbuh1hhj6hhhjGhM|ubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjGhM|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhjGhM|ubj)}(hsnd_soc_dapm_kcontrol_dapmh]j%)}(hjwh]hsnd_soc_dapm_kcontrol_dapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhjGhM|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]juc.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?hj6hhhjGhM|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhjGhM|ubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGhM|hj/hhubjb)}(hhh]jg)}(h1Returns the dapm context associated to a kcontrolh]h1Returns the dapm context associated to a kcontrol}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM|hj2hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhjGhM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhjzhNhNubj)}(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)}(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.chMhjQubj)}(hhh]j)}(h/``struct snd_kcontrol *kcontrol`` The kcontrol h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjvh]hstruct snd_kcontrol *kcontrol}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM~hjpubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM~hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhM~hjmubah}(h]h ]h"]h$]h&]uh1jhjQubjg)}(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.chMhjQubjg)}(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.chMhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_bias_level (C function)c.snd_soc_dapm_force_bias_levelhNtauh1hhjzhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_force_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(hcint snd_soc_dapm_force_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_force_bias_levelh]j%)}(hsnd_soc_dapm_force_bias_levelh]hsnd_soc_dapm_force_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_force_bias_levelasbuh1hhj/ubj)}(h h]h }(hjqhhhNhNubah}(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)}(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]jmc.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>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)}(hSets the DAPM bias levelh]hSets the DAPM bias level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhjzhNhNubj)}(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)}(hj;h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj5ubj)}(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)}(hjZh]h!struct snd_soc_dapm_context *dapm}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjTubj)}(hhh]jg)}(h+The DAPM context for which to set the levelh]h+The DAPM context for which to set the level}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohMhjQubj)}(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&]uh1jhjhMhjQubeh}(h]h ]h"]h$]h&]uh1jhj5ubjg)}(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.chMhj5ubjg)}(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.chMhj5ubjg)}(hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.h]hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_set_bias_level (C function)c.snd_soc_dapm_set_bias_levelhNtauh1hhjzhhhNhNubh)}(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}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj0hMubj)}(hsnd_soc_dapm_set_bias_levelh]j%)}(hsnd_soc_dapm_set_bias_levelh]hsnd_soc_dapm_set_bias_level}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj0hMubj@)}(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}(hj_hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[ubj)}(h h]h }(hjlhhhNhNubah}(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$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjEsbc.snd_soc_dapm_set_bias_levelasbuh1hhj[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>uh1jEhjWubjF)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj0hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj0hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hMhjhhubjb)}(hhh]jg)}(h!set the bias level for the systemh]h!set the bias level for the system}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjBhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj0hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhjzhNhNubj)}(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)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjaubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(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&]uh1jhjhMhj}ubj)}(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&]uh1jhjhMhj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjaubjg)}(h;Configure the bias (power) levels for the SoC audio device.h]h;Configure the bias (power) levels for the SoC audio device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjaubjg)}(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.chMhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_dai_get_connected_widgets (C function)(c.snd_soc_dapm_dai_get_connected_widgetshNtauh1hhjzhhhNhNubh)}(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}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJhhhf/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 hjJhhhj\hMubj)}(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}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJhhhj\hMubj@)}(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)}jjqsb(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&struct snd_soc_dapm_widget_list **listh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hhh]j%)}(hsnd_soc_dapm_widget_listh]hsnd_soc_dapm_widget_list}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhj.ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>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)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h,}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hj(h]henum}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj}hhhNhNubah}(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?hjJhhhj\hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhj\hMubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\hMhjChhubjb)}(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&]uh1jahjChhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(hXv**Parameters** ``struct snd_soc_dai *dai`` the soc DAI. ``int stream`` stream direction. ``struct snd_soc_dapm_widget_list **list`` list of active widgets for this stream. ``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)`` (optional) a function meant to stop the widget graph walk based on custom logic. **Description** Queries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets. Optionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise. Returns the number of valid paths or negative error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h)``struct snd_soc_dai *dai`` the soc DAI. h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjh]hstruct snd_soc_dai *dai}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h the soc DAI.h]h the soc DAI.}(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!``int stream`` stream direction. h](j)}(h``int stream``h]j)}(hjOh]h int stream}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjIubj)}(hhh]jg)}(hstream direction.h]hstream direction.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhMhjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMhj 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.chMhjubj)}(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.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.h]hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.}(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.chMhjubjg)}(h4Returns the number of valid paths or negative error.h]h4Returns the number of valid paths or negative error.}(hj1hhhNhNubah}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_free_widget (C function)c.snd_soc_dapm_free_widgethNtauh1hhjzhhhNhNubh)}(hhh](h)}(h=void snd_soc_dapm_free_widget (struct snd_soc_dapm_widget *w)h]h)}(huh1jhj\hhhjnhM 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}(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\hhhjnhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjXhhhjnhM ubah}(h]jSah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhM hjUhhubjb)}(hhh]jg)}(hFree specified widgeth]hFree specified widget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhjnhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhjzhNhNubj)}(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)}(hjAh]h Parameters}(hjChhhNhNubah}(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 hj;ubj)}(hhh]j)}(h1``struct snd_soc_dapm_widget *w`` widget to free h](j)}(h!``struct snd_soc_dapm_widget *w``h]j)}(hj`h]hstruct snd_soc_dapm_widget *w}(hjbhhhNhNubah}(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 hjZubj)}(hhh]jg)}(hwidget to freeh]hwidget to free}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhM hjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhM hjWubah}(h]h ]h"]h$]h&]uh1jhj;ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj;ubjg)}(h>Removes 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 hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_dapm_sync_unlocked (C function)c.snd_soc_dapm_sync_unlockedhNtauh1hhjzhhhNhNubh)}(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.chM0 ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM0 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>uh1jhjhhhjhM0 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 }(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)}jjsbc.snd_soc_dapm_sync_unlockedasbuh1hhjubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM0 ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM0 ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM0 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.chM0 hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM0 ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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.chM4 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.chM1 hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM1 hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM1 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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM3 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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2 hjubjg)}(hRequires external locking.h]hRequires external locking.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM5 hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM7 hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_sync (C function)c.snd_soc_dapm_synchNtauh1hhjzhhhNhNubh)}(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&]uh1hhj{hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMH ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{hhhjhMH 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>uh1jhj{hhhjhMH 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}(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{hhhjhMH ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjwhhhjhMH ubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMH hjthhubjb)}(hhh]jg)}(hscan and power dapm pathsh]hscan and power dapm paths}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMH hj<hhubah}(h]h ]h"]h$]h&]uh1jahjthhhjhMH ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1hhhhjzhNhNubj)}(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)}(hjah]h Parameters}(hjchhhNhNubah}(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.chML hj[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&]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.chMI hjzubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMI hjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMI hjwubah}(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.chMK hj[ubjg)}(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.chMJ hj[ubjg)}(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.chMM hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_add_routes (C function)c.snd_soc_dapm_add_routeshNtauh1hhjzhhhNhNubh)}(hhh](h)}(hpint snd_soc_dapm_add_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hoint snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMK ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMK ubj)}(hsnd_soc_dapm_add_routesh]j%)}(hsnd_soc_dapm_add_routesh]hsnd_soc_dapm_add_routes}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMK 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}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j)}jj2sbc.snd_soc_dapm_add_routesasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(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]jc.snd_soc_dapm_add_routesasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hint numh](h)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjEubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjEubj%)}(hnumh]hnum}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMK ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMK ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMK 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.chMK hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMK ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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.chMO 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.chML hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhML hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhML 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.chMM hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMM hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjBh]hint num}(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.chMN hj<ubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhMN hjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMN 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.chMP 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.chMO 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.chMS hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_del_routes (C function)c.snd_soc_dapm_del_routeshNtauh1hhjzhhhNhNubh)}(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.chMj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMj ubj)}(hsnd_soc_dapm_del_routesh]j%)}(hsnd_soc_dapm_del_routesh]hsnd_soc_dapm_del_routes}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMj 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&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(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)}jjsbc.snd_soc_dapm_del_routesasbuh1hhj ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hdapmh]hdapm}(hjghhhNhNubah}(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&]uh1jKhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(hhh]j%)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jHc.snd_soc_dapm_del_routesasbuh1hhj|ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj%)}(hrouteh]hroute}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint numh](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(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?hjhhhjhMj ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMj ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMj hjhhubjb)}(hhh]jg)}(h"Remove routes between DAPM widgetsh]h"Remove routes between DAPM widgets}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMj hjNhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMj ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhjzhNhNubj)}(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)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMn hjmubj)}(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.chMk hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMk hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMk 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.chMl hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMl hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMl 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.chMm hjubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMm hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMm hjubeh}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hj?h]h Description}(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.chMo hjmubjg)}(h%Removes routes from the DAPM context.h]h%Removes routes from the DAPM context.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMn hjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_widgets (C function)c.snd_soc_dapm_new_widgetshNtauh1hhjzhhhNhNubh)}(hhh](h)}(h8int snd_soc_dapm_new_widgets (struct snd_soc_card *card)h]h)}(h7int snd_soc_dapm_new_widgets(struct snd_soc_card *card)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_new_widgetsh]j%)}(hsnd_soc_dapm_new_widgetsh]hsnd_soc_dapm_new_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(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*}(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>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhM ubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjyhhubjb)}(hhh]jg)}(hadd new dapm widgetsh]hadd new dapm widgets}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjAhhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjzhNhNubj)}(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)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(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)}(hF``struct snd_soc_card *card`` card to be checked for new dapm widgets h](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h'card to be checked for new dapm widgetsh]h'card to be checked for new dapm widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj`ubjg)}(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 hj`ubjg)}(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 hj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_get_volsw (C function)c.snd_soc_dapm_get_volswhNtauh1hhjzhhhNhNubh)}(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 }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hM ubj)}(hsnd_soc_dapm_get_volswh]j%)}(hsnd_soc_dapm_get_volswh]hsnd_soc_dapm_get_volsw}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj"hM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.snd_soc_dapm_get_volswasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjIubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj"hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj"hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hM hj hhubjb)}(hhh]jg)}(hdapm mixer get callbackh]hdapm mixer get callback}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjAhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj"hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjzhNhNubj)}(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)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(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)}(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 hj|ubj)}(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 hj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj`ubjg)}(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 hj`ubjg)}(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 hj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_put_volsw (C function)c.snd_soc_dapm_put_volswhNtauh1hhjzhhhNhNubh)}(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}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIhhhj[hM ubj)}(hsnd_soc_dapm_put_volswh]j%)}(hsnd_soc_dapm_put_volswh]hsnd_soc_dapm_put_volsw}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjIhhhj[hM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjpsbc.snd_soc_dapm_put_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(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 }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjIhhhj[hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjEhhhj[hM ubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hM hjBhhubjb)}(hhh]jg)}(hdapm mixer set callbackh]hdapm mixer set callback}(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 hjzhhubah}(h]h ]h"]h$]h&]uh1jahjBhhhj[hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(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)}(hj2h]h Description}(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 hjubjg)}(h2Callback to set the value of a dapm mixer control.h]h2Callback to set the value of a dapm mixer control.}(hjHhhhNhNubah}(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.}(hjWhhhNhNubah}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_get_enum_double (C function)c.snd_soc_dapm_get_enum_doublehNtauh1hhjzhhhNhNubh)}(hhh](h)}(heint snd_soc_dapm_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hdint snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM] ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM] ubj)}(hsnd_soc_dapm_get_enum_doubleh]j%)}(hsnd_soc_dapm_get_enum_doubleh]hsnd_soc_dapm_get_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM] ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(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}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_enum_doubleasbuh1hhj1ubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(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>jSuh1hjTjUhj~hhhjhM] ubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM] hj{hhubjb)}(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&]uh1jahj{hhhjhM] ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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.chMa 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&]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)}(hj0h]h#struct snd_ctl_elem_value *ucontrol}(hj2hhhNhNubah}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhM_ hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM_ hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMa 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.}(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.chMb hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_put_enum_double (C function)c.snd_soc_dapm_put_enum_doublehNtauh1hhjzhhhNhNubh)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_enum_doubleasbuh1hhjubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjUhhhNhNubah}(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}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubh)}(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]j6c.snd_soc_dapm_put_enum_doubleasbuh1hhjjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubeh}(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&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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 hj ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj0h]hstruct snd_kcontrol *kcontrol}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj*ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhM hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM hj'ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjih]h#struct snd_ctl_elem_value *ucontrol}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjcubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM hj'ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubjg)}(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 hj ubjg)}(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 hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_info_pin_switch (C function)c.snd_soc_dapm_info_pin_switchhNtauh1hhjzhhhNhNubh)}(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.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(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>uh1jhjhhhjhM ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)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]j)}jjsbc.snd_soc_dapm_info_pin_switchasbuh1hhj1ubj)}(h h]h }(hjshhhNhNubah}(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-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]joc.snd_soc_dapm_info_pin_switchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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)}(hInfo for a pin switchh]hInfo for a pin switch}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj%hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1hhhhjzhNhNubj)}(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)}(hjJh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjDubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjih]hstruct snd_kcontrol *kcontrol}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjcubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hM hj`ubj)}(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&]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 hj`ubeh}(h]h ]h"]h$]h&]uh1jhjDubjg)}(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 hjDubjg)}(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.chM hjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_switch (C function)c.snd_soc_dapm_get_pin_switchhNtauh1hhjzhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_get_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hcint snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj0hM ubj)}(hsnd_soc_dapm_get_pin_switchh]j%)}(hsnd_soc_dapm_get_pin_switchh]hsnd_soc_dapm_get_pin_switch}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj0hM 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 }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjEsbc.snd_soc_dapm_get_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>uh1jEhjWubjF)}(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_get_pin_switchasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj0hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj0hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hM hjhhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information for a pin switch}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjOhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj0hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjnubj)}(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)}(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 hjubeh}(h]h ]h"]h$]h&]uh1jhjnubjg)}(h**Description**h]j)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjnubjg)}(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 hjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_get_component_pin_switch (C function)'c.snd_soc_dapm_get_component_pin_switchhNtauh1hhjzhhhNhNubh)}(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}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhf/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 hjHhhhjZhM ubj)}(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}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhM 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)}jjosb'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%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(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 }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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 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.chM hjyhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(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)}(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&]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)}(hj1h]h Description}(hj3hhhNhNubah}(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)}(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.}(hjGhhhNhNubah}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_put_pin_switch (C function)c.snd_soc_dapm_put_pin_switchhNtauh1hhjzhhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhf/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 hjrhhhjhMubj)}(hsnd_soc_dapm_put_pin_switchh]j%)}(hsnd_soc_dapm_put_pin_switchh]hsnd_soc_dapm_put_pin_switch}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>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_dapm_put_pin_switchasbuh1hhjubj)}(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_dapm_put_pin_switchasbuh1hhj!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 Set information for a pin switchh]h Set information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(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)}(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.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5 hMhj6 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj5 hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj[ h]h Description}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_put_component_pin_switch (C function)'c.snd_soc_dapm_put_component_pin_switchhNtauh1hhjzhhhNhNubh)}(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}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM%ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM%ubj)}(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>uh1jhj hhhj hM%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 }(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}(hj6 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}(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_ctl_elem_valueh]hsnd_ctl_elem_value}(hjm hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjo modnameN classnameNjj)}j]j 'c.snd_soc_dapm_put_component_pin_switchasbuh1hhjK 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%)}(hucontrolh]hucontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjK 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)}(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.chM%hj hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjzhNhNubj)}(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.chM)hj ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj h]hstruct snd_kcontrol *kcontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM'hj ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj& hM'hj' ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj& hM'hj ubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjJ h]h#struct snd_ctl_elem_value *ucontrol}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH 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(hjD ubj)}(hhh]jg)}(hValueh]hValue}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_ hM(hj` ubah}(h]h ]h"]h$]h&]uh1jhjD ubeh}(h]h ]h"]h$]h&]uh1jhj_ hM(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM*hj 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.}(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 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_control (C function)c.snd_soc_dapm_new_controlhNtauh1hhjzhhhNhNubh)}(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.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hMubh)}(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 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_soc_dapm_new_controlh]j%)}(hj h]hsnd_soc_dapm_new_control}(hj) hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj% ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hMubj@)}(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}(hjD hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ ubj)}(h h]h }(hjQ hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjb hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjd modnameN classnameNjj)}j]j c.snd_soc_dapm_new_controlasbuh1hhj@ 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)}(h(const struct snd_soc_dapm_widget *widgeth](jL)}(hj\h]hconst}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubjL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_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 c.snd_soc_dapm_new_controlasbuh1hhj 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%)}(hwidgeth]hwidget}(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)}(hcreate new dapm controlh]hcreate new dapm control}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjM hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjh jjh jjjuh1hhhhjzhNhNubj)}(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)}(hjr h]h Parameters}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjl 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 struct snd_soc_dapm_widget *widget`` widget template h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hj h]h(const struct snd_soc_dapm_widget *widget}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh]jg)}(hwidget templateh]hwidget template}(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&]uh1jhjl 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.chMhjl ubjg)}(h/Creates new DAPM control based upon a template.h]h/Creates new DAPM control based upon a template.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjl ubjg)}(hBReturns a widget pointer on success or an error pointer on failureh]hBReturns a widget pointer on success or an error pointer on failure}(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.chMhjl ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_new_controls (C function)c.snd_soc_dapm_new_controlshNtauh1hhjzhhhNhNubh)}(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}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhf/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 hjUhhhjghMubj)}(hsnd_soc_dapm_new_controlsh]j%)}(hsnd_soc_dapm_new_controlsh]hsnd_soc_dapm_new_controls}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjghMubj@)}(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}(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)}jj|sbc.snd_soc_dapm_new_controlsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h(const struct snd_soc_dapm_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}(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]jc.snd_soc_dapm_new_controlsasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hwidgeth]hwidget}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int numh](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%)}(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?hjUhhhjghMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjghMubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghMhjNhhubjb)}(hhh]jg)}(hcreate new dapm controlsh]hcreate new dapm controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjghMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjzhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_widget *widget`` widget array ``unsigned int num`` number of widgets **Description** Creates new DAPM controls based upon the templates. Returns 0 for success else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj6h]h!struct snd_soc_dapm_context *dapm}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(h:``const struct snd_soc_dapm_widget *widget`` widget array h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hjoh]h(const struct snd_soc_dapm_widget *widget}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjiubj)}(hhh]jg)}(h widget arrayh]h widget array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(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.chMhjubj)}(hhh]jg)}(hnumber of widgetsh]hnumber of widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h3Creates new DAPM controls based upon the templates.h]h3Creates new DAPM controls based upon the templates.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_new_dai_widgets (C function)c.snd_soc_dapm_new_dai_widgetshNtauh1hhjzhhhNhNubh)}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhjEhMubj)}(hsnd_soc_dapm_new_dai_widgetsh]j%)}(hsnd_soc_dapm_new_dai_widgetsh]hsnd_soc_dapm_new_dai_widgets}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhjEhMubj@)}(h<(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.snd_soc_dapm_new_dai_widgetsasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(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 }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdaih]hdai}(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?hj3hhhjEhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhjEhMubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjEhMhj,hhubjb)}(hhh]jg)}(hCreate new DAPM widgetsh]hCreate new DAPM widgets}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jahj,hhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(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'``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&]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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h+Returns 0 on success, error code otherwise.h]h+Returns 0 on success, error code otherwise.}(hj2hhhNhNubah}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_stream_event (C function)c.snd_soc_dapm_stream_eventhNtauh1hhjzhhhNhNubh)}(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}(hjahhhNhNubah}(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 }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhjohMubj)}(hsnd_soc_dapm_stream_eventh]j%)}(hsnd_soc_dapm_stream_eventh]hsnd_soc_dapm_stream_event}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhjohMubj@)}(h8(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_stream_eventasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]u&h1jhjubj%)}(hrtdh]hrtd}(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&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hstreamh]hstream}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int eventh](h)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj%)}(heventh]hevent}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubeh}(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$send a stream event to the dapm coreh]h$send a stream event to the dapm core}(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&]uh1jahjVhhhjohMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(hj>h]h int event}(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.chMhj8ubj)}(hhh]jg)}(h stream eventh]h stream event}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShMhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjyh]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_dapm_enable_pin_unlocked (C function)"c.snd_soc_dapm_enable_pin_unlockedhNtauh1hhjzhhhNhNubh)}(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}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsb"c.snd_soc_dapm_enable_pin_unlockedasbuh1hhjubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjchhhNhNubah}(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&]uh1jKhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hpinh]hpin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(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&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(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.chMhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj+h]h!struct snd_soc_dapm_context *dapm}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hMhjAubah}(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)}(hjdh]hconst char *pin}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(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&]uh1jfhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhj"ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.h]hvEnables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_enable_pin (C function)c.snd_soc_dapm_enable_pinhNtauh1hhjzhhhNhNubh)}(hhh](h)}(hPint snd_soc_dapm_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hOint snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj(hMubj)}(hsnd_soc_dapm_enable_pinh]j%)}(hsnd_soc_dapm_enable_pinh]hsnd_soc_dapm_enable_pin}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj(hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jj=sbc.snd_soc_dapm_enable_pinasbuh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubjF)}(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}(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?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 enable pin.h]h enable pin.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj(hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjOjjOjjjuh1hhhhjzhNhNubj)}(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)}(hjYh]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjSubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjxh]h!struct snd_soc_dapm_context *dapm}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjrubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubj)}(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.chMhjubj)}(hhh]jg)}(hpin nameh]hpin name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjoubeh}(h]h ]h"]h$]h&]uh1jhjSubjg)}(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.chMhjSubjg)}(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.chMhjSubjg)}(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.chMhjSubjg)}(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.chMhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_force_enable_pin_unlocked (C function)(c.snd_soc_dapm_force_enable_pin_unlockedhNtauh1hhjzhhhNhNubh)}(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}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjThhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjThhhjfhMubj)}(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}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjThhhjfhMubj@)}(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)}jj{sb(c.snd_soc_dapm_force_enable_pin_unlockedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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}(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%)}(hpinh]hpin}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjThhhjfhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjfhMubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhMhjMhhubjb)}(hhh]jg)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjrhhubah}(h]h ]h"]h$]h&]uh1jahjMhhhjfhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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)}(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)}(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.chMhjubj)}(hhh]jg)}(hpin nameh]hpin name}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.h]hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hRequires external locking.h]hRequires external locking.}(hjOhhhNhNubah}(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)}(hj`h]hNOTE}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.}(hjvhhhNhNubah}(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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_enable_pin (C function)c.snd_soc_dapm_force_enable_pinhNtauh1hhjzhhhNhNubh)}(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}(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_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>uh1jhjhhhjhM ubj@)}(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 }(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}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hcharh]hchar}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj%)}(hpinh]hpin}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(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)}(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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjzhNhNubj)}(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.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.chMhj6ubj)}(hhh]jg)}(hpin nameh]hpin name}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhMhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjwh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.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&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_soc_dapm_disable_pin_unlocked (C function)#c.snd_soc_dapm_disable_pin_unlockedhNtauh1hhjzhhhNhNubh)}(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}(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)}(h!snd_soc_dapm_disable_pin_unlockedh]j%)}(h!snd_soc_dapm_disable_pin_unlockedh]h!snd_soc_dapm_disable_pin_unlocked}(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}(hj hhhNhNubah}(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$hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsb#c.snd_soc_dapm_disable_pin_unlockedasbuh1hhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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>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 disable pin.h]h disable pin.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM(hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM(ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjzhNhNubj)}(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.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)}(hjA h]h!struct snd_soc_dapm_context *dapm}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj? ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM)hj; ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjV hM)hjW ubah}(h]h ]h"]h$]h&]uh1jhj; ubeh}(h]h ]h"]h$]h&]uh1jhjV hM)hj8 ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjz h]hconst char *pin}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx 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*hjt ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM*hj ubah}(h]h ]h"]h$]h&]uh1jhjt ubeh}(h]h ]h"]h$]h&]uh1jhj hM*hj8 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.chM,hj 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.chM+hj 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.chM-hj 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.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.}(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.chM0hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_disable_pin (C function)c.snd_soc_dapm_disable_pinhNtauh1hhjzhhhNhNubh)}(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}(hj0!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,!hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM;ubj)}(h h]h }(hj?!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,!hhhj>!hM;ubj)}(hsnd_soc_dapm_disable_pinh]j%)}(hsnd_soc_dapm_disable_pinh]hsnd_soc_dapm_disable_pin}(hjQ!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjM!ubah}(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}(hjm!hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhji!ubj)}(h h]h }(hjz!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hji!ubh)}(hhh]j%)}(hsnd_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)}jjS!sbc.snd_soc_dapm_disable_pinasbuh1hhji!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hji!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhji!ubj%)}(hdapmh]hdapm}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hji!ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhje!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>uh1jEhje!ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj,!hhhj>!hM;ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(!hhhj>!hM;ubah}(h]j#!ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>!hM;hj%!hhubjb)}(hhh]jg)}(h disable pin.h]h disable pin.}(hjM"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM;hjJ"hhubah}(h]h ]h"]h$]h&]uh1jahj%!hhhj>!hM;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjje"jje"jjjuh1hhhhjzhNhNubj)}(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)}(hjo"h]h Parameters}(hjq"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm"ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM?hji"ubj)}(hhh](j)}(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.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<hj"ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj"h]hconst char *pin}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM=hj"ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hM=hj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hM=hj"ubeh}(h]h ]h"]h$]h&]uh1jhji"ubjg)}(h**Description**h]j)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM?hji"ubjg)}(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.chM>hji"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.chM@hji"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.chMAhji"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_status (C function)c.snd_soc_dapm_get_pin_statushNtauh1hhjzhhhNhNubh)}(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}(hjn#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjj#hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMTubj)}(h h]h }(hj}#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjj#hhhj|#hMTubj)}(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>uh1jhjj#hhhj|#hMTubj@)}(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 }(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}(hj8$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$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%)}(hpinh]hpin}(hja$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?hjj#hhhj|#hMTubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjf#hhhj|#hMTubah}(h]ja#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|#hMThjc#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.chMThj$hhubah}(h]h ]h"]h$]h&]uh1jahjc#hhhj|#hMTubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1hhhhjzhNhNubj)}(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.chMXhj$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.chMUhj$ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$hMUhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMUhj$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.chMVhj$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%hMVhj%ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj%hMVhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$ubjg)}(h**Description**h]j)}(hj@%h]h Description}(hjB%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.chMXhj$ubjg)}(h1Get audio pin status - connected or disconnected.h]h1Get audio pin status - connected or disconnected.}(hjV%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMWhj$ubjg)}(h$Returns 1 for connected otherwise 0.h]h$Returns 1 for connected otherwise 0.}(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.chMYhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_ignore_suspend (C function)c.snd_soc_dapm_ignore_suspendhNtauh1hhjzhhhNhNubh)}(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.chMiubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%hhhj%hMiubj)}(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%hMiubj@)}(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_ignore_suspendasbuh1hhj%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%hMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj%hhhj%hMiubah}(h]j%ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%hMihj%hhubjb)}(hhh]jg)}(h'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.chMihj&hhubah}(h]h ]h"]h$]h&]uh1jahj%hhhj%hMiubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjzhNhNubj)}(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)}(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.chMmhj&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.chMjhj&ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hMjhj'ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj'hMjhj&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.chMkhj%'ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hjD'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@'hMkhjA'ubah}(h]h ]h"]h$]h&]uh1jhj%'ubeh}(h]h ]h"]h$]h&]uh1jhj@'hMkhj&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.chMmhj&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.chMlhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_free (C function)c.snd_soc_dapm_freehNtauh1hhjzhhhNhNubh)}(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}(hj'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}(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_freeasbuh1hhj'ubj)}(h h]h }(hj&(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hj4(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hdapmh]hdapm}(hjA(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)}(hfree dapm resourcesh]hfree dapm resources}(hjk(hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjh(hhubah}(h]h ]h"]h$]h&]uh1jahj'hhhj'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhjzhNhNubj)}(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)}(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$Free all dapm widgets and resources.h]h$Free all dapm widgets and 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(ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjzhhhNhNubeh}(h] asoc-dapm-apiah ]h"] asoc dapm apiah$]h&]uh1hhjihhhhhKlubh)}(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}(hjE)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjA)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 }(hjT)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjA)hhhjS)hK&ubj)}(h&snd_dmaengine_pcm_prepare_slave_configh]j%)}(h&snd_dmaengine_pcm_prepare_slave_configh]h&snd_dmaengine_pcm_prepare_slave_config}(hjf)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjb)ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjA)hhhjS)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}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jjh)sb(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj~)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>uh1jEhjz)ubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj)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%)}(hparamsh]hparams}(hjK*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjz)ubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hjd*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`*ubj)}(h h]h }(hjq*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`*ubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj`*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 slave_configh]h slave_config}(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?hjA)hhhjS)hK&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=)hhhjS)hK&ubah}(h]j8)ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjS)hK&hj:)hhubjb)}(hhh]jg)}(h%Generic prepare_slave_config callbackh]h%Generic prepare_slave_config callback}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&hj*hhubah}(h]h ]h"]h$]h&]uh1jahj:)hhhjS)hK&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhj)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)}(hj+h]h Parameters}(hj +hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hj+ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj&+h]h#struct snd_pcm_substream *substream}(hj(+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$+ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK'hj +ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(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/``struct snd_pcm_hw_params *params`` hw_params h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hj_+h]h struct snd_pcm_hw_params *params}(hja+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]+ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK(hjY+ubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hjx+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjt+hK(hju+ubah}(h]h ]h"]h$]h&]uh1jhjY+ubeh}(h]h ]h"]h$]h&]uh1jhjt+hK(hj+ubj)}(hF``struct dma_slave_config *slave_config`` DMA slave config to prepare h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj+h]h%struct dma_slave_config *slave_config}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK)hj+ubj)}(hhh]jg)}(hDMA slave config to prepareh]hDMA slave config to prepare}(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&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK+hj+ubjg)}(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.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hj+ubeh}(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,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.chMubj)}(h h]h }(hj',hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhj&,hMubj)}(hsnd_dmaengine_pcm_registerh]j%)}(hsnd_dmaengine_pcm_registerh]hsnd_dmaengine_pcm_register}(hj9,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,hhhj&,hMubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjU,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjQ,ubj)}(h h]h }(hjb,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ,ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjs,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjp,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju,modnameN classnameNjj)}j]j)}jj;,sbc.snd_dmaengine_pcm_registerasbuh1hhjQ,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQ,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ,ubj%)}(hdevh]hdev}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQ,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjM,ubjF)}(h-const struct snd_dmaengine_pcm_config *configh](jL)}(hj\h]hconst}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubjL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j,c.snd_dmaengine_pcm_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%)}(hconfigh]hconfig}(hj9-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjM,ubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hjR-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjN-ubj)}(h h]h }(hj`-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjN-ubh)}(hinth]hint}(hjn-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjN-ubj)}(h h]h }(hj|-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjN-ubj%)}(hflagsh]hflags}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjN-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjM,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%Register a dmaengine based PCM deviceh]h%Register a dmaengine based PCM device}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj-hhubah}(h]h ]h"]h$]h&]uh1jahj ,hhhj&,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhj)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-h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj-ubj)}(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&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj-ubj)}(hhh]jg)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM 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)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hj..h]h-const struct snd_dmaengine_pcm_config *config}(hj0.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,.ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj(.ubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hjG.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjC.hMhjD.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubeh}(h]h ]h"]h$]h&]uh1jhjC.hMhj-ubj)}(h/``unsigned int flags`` Platform specific quirksh](j)}(h``unsigned int flags``h]j)}(hjg.h]hunsigned int flags}(hji.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje.ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhja.ubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj}.ubah}(h]h ]h"]h$]h&]uh1jhja.ubeh}(h]h ]h"]h$]h&]uh1jhj|.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_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.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.chMubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.hhhj.hMubj)}(hsnd_dmaengine_pcm_unregisterh]j%)}(hsnd_dmaengine_pcm_unregisterh]hsnd_dmaengine_pcm_unregister}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj.hhhj.hMubj@)}(h(struct device *dev)h]jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj /hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jj.sbc.snd_dmaengine_pcm_unregisterasbuh1hhj.ubj)}(h h]h }(hjuh1jEhj.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$Removes a dmaengine based PCM deviceh]h$Removes a dmaengine based PCM device}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj~/hhubah}(h]h ]h"]h$]h&]uh1jahj.hhhj.hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhj)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)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj/ubj)}(hhh]j)}(h?``struct device *dev`` Parent device the PCM was register with h](j)}(h``struct device *dev``h]j)}(hj/h]hstruct device *dev}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj/ubj)}(hhh]jg)}(h'Parent device the PCM was register withh]h'Parent device the PCM was register with}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubjg)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj/ubjg)}(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.}(hj0hhhNhNubah}(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.chMhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj)hhhNhNubeh}(h]asoc-dma-engine-apiah ]h"]asoc dma engine apiah$]h&]uh1hhjihhhhhKpubeh}(h]asocah ]h"]asocah$]h&]uh1hhhhhhhhK_ubh)}(hhh](h)}(hMiscellaneous Functionsh]hMiscellaneous Functions}(hj<0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj90hhhhhKtubh)}(hhh](h)}(hHardware-Dependent Devices APIh]hHardware-Dependent Devices API}(hjM0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJ0hhhhhKwubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_hwdep_new (C function)c.snd_hwdep_newhNtauh1hhjJ0hhhNhNubh)}(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}(hjt0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjp0hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjp0hhhj0hM_ubj)}(h snd_hwdep_newh]j%)}(h snd_hwdep_newh]h snd_hwdep_new}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjp0hhhj0hM_ubj@)}(hH(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj0sbc.snd_hwdep_newasbuh1hhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hcardh]hcard}(hj 1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(hchar *idh](h)}(hcharh]hchar}(hj#1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hj11hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hj?1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hidh]hid}(hjL1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(h int deviceh](h)}(hinth]hint}(hje1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhja1ubj)}(h h]h }(hjs1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hja1ubj%)}(hdeviceh]hdevice}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hja1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubjF)}(hstruct snd_hwdep **rhwdeph](jL)}(hjOh]hstruct}(hj1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(h snd_hwdeph]h snd_hwdep}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j0c.snd_hwdep_newasbuh1hhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hrhwdeph]hrhwdep}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjp0hhhj0hM_ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjl0hhhj0hM_ubah}(h]jg0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0hM_hji0hhubjb)}(hhh]jg)}(hcreate a new hwdep instanceh]hcreate a new hwdep instance}(hj(2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_hj%2hhubah}(h]h ]h"]h$]h&]uh1jahji0hhhj0hM_ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@2jj@2jjjuh1hhhhjJ0hNhNubj)}(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)}(hjJ2h]h Parameters}(hjL2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH2ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjD2ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hji2h]hstruct snd_card *card}(hjk2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM`hjc2ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~2hM`hj2ubah}(h]h ]h"]h$]h&]uh1jhjc2ubeh}(h]h ]h"]h$]h&]uh1jhj~2hM`hj`2ubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hj2h]hchar *id}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMahj2ubj)}(hhh]jg)}(h the id stringh]h the id string}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMahj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMahj`2ubj)}(h-``int device`` the device index (zero-based) h](j)}(h``int device``h]j)}(hj2h]h int device}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMbhj2ubj)}(hhh]jg)}(hthe device index (zero-based)h]hthe device index (zero-based)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMbhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMbhj`2ubj)}(hJ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance h](j)}(h``struct snd_hwdep **rhwdep``h]j)}(hj3h]hstruct snd_hwdep **rhwdep}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchj3ubj)}(hhh]jg)}(h+the pointer to store the new hwdep instanceh]h+the pointer to store the new hwdep instance}(hj-3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)3hMchj*3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj)3hMchj`2ubeh}(h]h ]h"]h$]h&]uh1jhjD2ubjg)}(h**Description**h]j)}(hjO3h]h Description}(hjQ3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM3ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMehjD2ubjg)}(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.}(hje3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMdhjD2ubjg)}(h **Return**h]j)}(hjv3h]hReturn}(hjx3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt3ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMhhjD2ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihjD2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjJ0hhhNhNubeh}(h]hardware-dependent-devices-apiah ]h"]hardware-dependent devices apiah$]h&]uh1hhj90hhhhhKwubh)}(hhh](h)}(hJack Abstraction Layer APIh]hJack Abstraction Layer API}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hhhhhK{ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_types (C enum)c.snd_jack_typeshNtauh1hhj3hhhf/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}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj3hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hKubj)}(hsnd_jack_typesh]j%)}(hj3h]hsnd_jack_types}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj3hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj3hhhj3hKubah}(h]j3ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj3hKhj3hhubjb)}(hhh]jg)}(h Jack types which can be reportedh]h Jack types which can be reported}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj4hhubah}(h]h ]h"]h$]h&]uh1jahj3hhhj3hKubeh}(h]h ](jenumeh"]h$]h&]jjjj/4jj/4jjjuh1hhhhj3hj3hNubj)}(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)}(hj94h]h Constants}(hj;4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj74ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj34ubj)}(hhh](j)}(h!``SND_JACK_HEADPHONE`` Headphone h](j)}(h``SND_JACK_HEADPHONE``h]j)}(hjX4h]hSND_JACK_HEADPHONE}(hjZ4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhjR4ubj)}(hhh]jg)}(h Headphoneh]h Headphone}(hjq4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjm4hKhjn4ubah}(h]h ]h"]h$]h&]uh1jhjR4ubeh}(h]h ]h"]h$]h&]uh1jhjm4hKhjO4ubj)}(h#``SND_JACK_MICROPHONE`` Microphone h](j)}(h``SND_JACK_MICROPHONE``h]j)}(hj4h]hSND_JACK_MICROPHONE}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj4ubj)}(hhh]jg)}(h Microphoneh]h Microphone}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hKhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjO4ubj)}(h``SND_JACK_HEADSET`` Headset h](j)}(h``SND_JACK_HEADSET``h]j)}(hj4h]hSND_JACK_HEADSET}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj4ubj)}(hhh]jg)}(hHeadseth]hHeadset}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hKhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjO4ubj)}(h``SND_JACK_LINEOUT`` Line out h](j)}(h``SND_JACK_LINEOUT``h]j)}(hj5h]hSND_JACK_LINEOUT}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hj4ubj)}(hhh]jg)}(hLine outh]hLine out}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK hj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj5hK hjO4ubj)}(h*``SND_JACK_MECHANICAL`` Mechanical switch h](j)}(h``SND_JACK_MECHANICAL``h]j)}(hj<5h]hSND_JACK_MECHANICAL}(hj>5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK#hj65ubj)}(hhh]jg)}(hMechanical switchh]hMechanical switch}(hjU5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQ5hK#hjR5ubah}(h]h ]h"]h$]h&]uh1jhj65ubeh}(h]h ]h"]h$]h&]uh1jhjQ5hK#hjO4ubj)}(h ``SND_JACK_VIDEOOUT`` Video out h](j)}(h``SND_JACK_VIDEOOUT``h]j)}(hju5h]hSND_JACK_VIDEOOUT}(hjw5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK&hjo5ubj)}(hhh]jg)}(h Video outh]h Video out}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK&hj5ubah}(h]h ]h"]h$]h&]uh1jhjo5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK&hjO4ubj)}(h(``SND_JACK_AVOUT`` AV (Audio Video) out h](j)}(h``SND_JACK_AVOUT``h]j)}(hj5h]hSND_JACK_AVOUT}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK)hj5ubj)}(hhh]jg)}(hAV (Audio Video) outh]hAV (Audio Video) out}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK)hj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK)hjO4ubj)}(h``SND_JACK_LINEIN`` Line in h](j)}(h``SND_JACK_LINEIN``h]j)}(hj5h]hSND_JACK_LINEIN}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK,hj5ubj)}(hhh]jg)}(hLine inh]hLine in}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hK,hj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hK,hjO4ubj)}(h"``SND_JACK_USB`` USB audio device h](j)}(h``SND_JACK_USB``h]j)}(hj 6h]h SND_JACK_USB}(hj"6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK/hj6ubj)}(hhh]jg)}(hUSB audio deviceh]hUSB audio device}(hj96hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj56hK/hj66ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj56hK/hjO4ubj)}(h``SND_JACK_BTN_0`` Button 0 h](j)}(h``SND_JACK_BTN_0``h]j)}(hjY6h]hSND_JACK_BTN_0}(hj[6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK2hjS6ubj)}(hhh]jg)}(hButton 0h]hButton 0}(hjr6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjn6hK2hjo6ubah}(h]h ]h"]h$]h&]uh1jhjS6ubeh}(h]h ]h"]h$]h&]uh1jhjn6hK2hjO4ubj)}(h``SND_JACK_BTN_1`` Button 1 h](j)}(h``SND_JACK_BTN_1``h]j)}(hj6h]hSND_JACK_BTN_1}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK5hj6ubj)}(hhh]jg)}(hButton 1h]hButton 1}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hK5hj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hK5hjO4ubj)}(h``SND_JACK_BTN_2`` Button 2 h](j)}(h``SND_JACK_BTN_2``h]j)}(hj6h]hSND_JACK_BTN_2}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK8hj6ubj)}(hhh]jg)}(hButton 2h]hButton 2}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hK8hj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hK8hjO4ubj)}(h``SND_JACK_BTN_3`` Button 3 h](j)}(h``SND_JACK_BTN_3``h]j)}(hj7h]hSND_JACK_BTN_3}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK;hj6ubj)}(hhh]jg)}(hButton 3h]hButton 3}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hK;hj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj7hK;hjO4ubj)}(h``SND_JACK_BTN_4`` Button 4 h](j)}(h``SND_JACK_BTN_4``h]j)}(hj=7h]hSND_JACK_BTN_4}(hj?7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;7ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK>hj77ubj)}(hhh]jg)}(hButton 4h]hButton 4}(hjV7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjR7hK>hjS7ubah}(h]h ]h"]h$]h&]uh1jhj77ubeh}(h]h ]h"]h$]h&]uh1jhjR7hK>hjO4ubj)}(h``SND_JACK_BTN_5`` Button 5h](j)}(h``SND_JACK_BTN_5``h]j)}(hjv7h]hSND_JACK_BTN_5}(hjx7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt7ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK@hjp7ubj)}(hhh]jg)}(hButton 5h]hButton 5}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKAhj7ubah}(h]h ]h"]h$]h&]uh1jhjp7ubeh}(h]h ]h"]h$]h&]uh1jhj7hK@hjO4ubeh}(h]h ]h"]h$]h&]uh1jhj34ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhj3hNubjg)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKChj3hhubjg)}(h#These values are used as a bitmask.h]h#These values are used as a bitmask.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hj3hhubjg)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK"hj3hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_jack_add_new_kctl (C function)c.snd_jack_add_new_kctlhNtauh1hhj3hhhNhNubh)}(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}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhj8hMubj)}(hsnd_jack_add_new_kctlh]j%)}(hsnd_jack_add_new_kctlh]hsnd_jack_add_new_kctl}(hj'8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhj8hMubj@)}(h3(struct snd_jack *jack, const char *name, int mask)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjC8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?8ubj)}(h h]h }(hjP8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?8ubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hja8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjc8modnameN classnameNjj)}j]j)}jj)8sbc.snd_jack_add_new_kctlasbuh1hhj?8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?8ubj%)}(hjackh]hjack}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;8ubjF)}(hconst char *nameh](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%)}(hnameh]hname}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;8ubjF)}(hint maskh](h)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hj 9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj%)}(hmaskh]hmask}(hj.9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhj8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhj8hMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hMhj7hhubjb)}(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}(hjX9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjU9hhubah}(h]h ]h"]h$]h&]uh1jahj7hhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjp9jjp9jjjuh1hhhhj3hNhNubj)}(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)}(hjz9h]h Parameters}(hj|9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx9ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjt9ubj)}(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)}(hj9h]hstruct snd_jack *jack}(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:125: ./sound/core/jack.chMhj9ubj)}(hhh]jg)}(h2the jack instance which the kctl will attaching toh]h2the jack instance which the kctl will attaching to}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubj)}(h;``const char * name`` the name for the snd_kcontrol object h](j)}(h``const char * name``h]j)}(hj9h]hconst char * name}(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:125: ./sound/core/jack.chMhj9ubj)}(hhh]jg)}(h$the name for the snd_kcontrol objecth]h$the name for the snd_kcontrol object}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubj)}(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)}(hj :h]hint mask}(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)}(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&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj :hMhj9ubeh}(h]h ]h"]h$]h&]uh1jhjt9ubjg)}(h**Description**h]j)}(hjG:h]h Description}(hjI:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjt9ubjg)}(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.chMhjt9ubjg)}(h **Return**h]j)}(hjn:h]hReturn}(hjp:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl:ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjt9ubjg)}(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.chMhjt9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_new (C function)c.snd_jack_newhNtauh1hhj3hhhNhNubh)}(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}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhj:hMubj)}(h snd_jack_newh]j%)}(h snd_jack_newh]h snd_jack_new}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj:hhhj:hMubj@)}(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}(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_jack_newasbuh1hhj:ubj)}(h h]h }(hj.;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hj<;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hcardh]hcard}(hjI;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjb;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^;ubj)}(h h]h }(hjo;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^;ubh)}(hcharh]hchar}(hj};hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^;ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^;ubj%)}(hidh]hid}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(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 snd_jack **jjackh](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*;c.snd_jack_newasbuh1hhj;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)}(hjh]h*}(hjK<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj%)}(hjjackh]hjjack}(hjX<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hbool initial_kctlh](h)}(hjh]hbool}(hjq<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjm<ubj)}(h h]h }(hj~<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm<ubj%)}(h initial_kctlh]h initial_kctl}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm<ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj:ubjF)}(hbool phantom_jackh](h)}(hjh]hbool}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj%)}(h phantom_jackh]h phantom_jack}(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)}(hCreate a new jackh]hCreate a new 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:hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhj3hNhNubj)}(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)}(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)}(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&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj%=ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjD=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@=hMhjA=ubah}(h]h ]h"]h$]h&]uh1jhj%=ubeh}(h]h ]h"]h$]h&]uh1jhj@=hMhj"=ubj)}(h7``const char *id`` an identifying string for this jack h](j)}(h``const char *id``h]j)}(hjd=h]hconst char *id}(hjf=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb=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)}(h#an identifying string for this jackh]h#an identifying string for this jack}(hj}=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjy=hMhjz=ubah}(h]h ]h"]h$]h&]uh1jhj^=ubeh}(h]h ]h"]h$]h&]uh1jhjy=hMhj"=ubj)}(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)}(hj=h]hint type}(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)}(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}(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&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj"=ubj)}(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=h]hstruct snd_jack **jjack}(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)}(h8Used to provide the allocated jack object to the caller.h]h8Used to provide the allocated jack object to the caller.}(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)}(hN``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. h](j)}(h``bool initial_kctl``h]j)}(hj>h]hbool initial_kctl}(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)}(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.}(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)}(hE``bool phantom_jack`` Don't create a input device for phantom jacks. h](j)}(h``bool phantom_jack``h]j)}(hjI>h]hbool phantom_jack}(hjK>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG>ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjC>ubj)}(hhh]jg)}(h.Don't create a input device for phantom jacks.h]h0Don’t create a input device for phantom jacks.}(hjb>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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj=ubjg)}(hCreates a new jack object.h]hCreates a new jack 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=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)}(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>hhhNhNubj)}(h **jjack**h]hjjack}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh will be initialised.}(hj>hhhNhNubeh}(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&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_set_key (C function)c.snd_jack_set_keyhNtauh1hhj3hhhNhNubh)}(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}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj>hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj>hhhj?hMDubj)}(hsnd_jack_set_keyh]j%)}(hsnd_jack_set_keyh]hsnd_jack_set_key}(hj#?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj>hhhj?hMDubj@)}(h>(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hj??hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;?ubj)}(h h]h }(hjL?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;?ubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hj]?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZ?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_?modnameN classnameNjj)}j]j)}jj%?sbc.snd_jack_set_keyasbuh1hhj;?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>uh1jEhj7?ubjF)}(henum snd_jack_types typeh](jL)}(hj(h]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_jack_typesh]hsnd_jack_types}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jy?c.snd_jack_set_keyasbuh1hhj?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>uh1jEhj7?ubjF)}(h int keytypeh](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%)}(hkeytypeh]hkeytype}(hj0@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj7?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)}(hSet a key mapping on a jackh]hSet a key mapping on a jack}(hjZ@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDhjW@hhubah}(h]h ]h"]h$]h&]uh1jahj>hhhj?hMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjr@jjr@jjjuh1hhhhj3hNhNubj)}(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)}(hj|@h]h Parameters}(hj~@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz@ubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjv@ubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure 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.chMFhj@ubj)}(hhh]jg)}(hThe jack to configureh]hThe jack to configure}(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;``enum snd_jack_types type`` Jack report type for this key h](j)}(h``enum snd_jack_types type``h]j)}(hj@h]henum snd_jack_types type}(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.chMGhj@ubj)}(hhh]jg)}(hJack report type for this keyh]hJack report type for this key}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hMGhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMGhj@ubj)}(h4``int keytype`` Input layer key type to be reported h](j)}(h``int keytype``h]j)}(hj Ah]h int keytype}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Aubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjAubj)}(hhh]jg)}(h#Input layer key type to be reportedh]h#Input layer key type to be reported}(hj&AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"AhMHhj#Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj"AhMHhj@ubeh}(h]h ]h"]h$]h&]uh1jhjv@ubjg)}(h**Description**h]j)}(hjHAh]h Description}(hjJAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFAubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMJhjv@ubjg)}(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.}(hj^AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMIhjv@ubjg)}(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.}(hjmAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMNhjv@ubjg)}(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.}(hj|AhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMQhjv@ubjg)}(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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMWhjv@ubjg)}(h **Return**h]j)}(hjAh]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMYhjv@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&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMZhjv@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_report (C function)c.snd_jack_reporthNtauh1hhj3hhhNhNubh)}(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}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhjAhMnubj)}(hsnd_jack_reporth]j%)}(hsnd_jack_reporth]hsnd_jack_report}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhjAhMnubj@)}(h#(struct snd_jack *jack, int status)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBubj)}(h h]h }(hj+BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjBmodnameN classnameNjj)}j]j)}jjBsbc.snd_jack_reportasbuh1hhjBubj)}(h h]h }(hj\BhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj)}(hjh]h*}(hjjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj%)}(hjackh]hjack}(hjwBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubjF)}(h int statush](h)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(hstatush]hstatus}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhjAhMnubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjAhhhjAhMnubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjAhMnhjAhhubjb)}(hhh]jg)}(h#Report the current status of a jackh]h#Report the current status of a jack}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnhjBhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjAhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhj3hNhNubj)}(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)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjBubj)}(hhh](j)}(h8``struct snd_jack *jack`` The jack to report status for h](j)}(h``struct snd_jack *jack``h]j)}(hjCh]hstruct snd_jack *jack}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjCubj)}(hhh]jg)}(hThe jack to report status forh]hThe jack to report status for}(hj0ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,ChMrhj-Cubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj,ChMrhjCubj)}(h.``int status`` The current status of the jack h](j)}(h``int status``h]j)}(hjPCh]h int status}(hjRChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNCubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMshjJCubj)}(hhh]jg)}(hThe current status of the jackh]hThe current status of the jack}(hjiChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjeChMshjfCubah}(h]h ]h"]h$]h&]uh1jhjJCubeh}(h]h ]h"]h$]h&]uh1jhjeChMshjCubeh}(h]h ]h"]h$]h&]uh1jhjBubjg)}(h**Note**h]j)}(hjCh]hNote}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMuhjBubjg)}(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).}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMohjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_soc_jack_report (C function)c.snd_soc_jack_reporthNtauh1hhj3hhhNhNubh)}(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}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjChhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjChKubj)}(hsnd_soc_jack_reporth]j%)}(hsnd_soc_jack_reporth]hsnd_soc_jack_report}(hjChhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjChhhjChKubj@)}(h1(struct snd_soc_jack *jack, int status, int mask)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj DhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj Dubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Dubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj+DhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(Dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-DmodnameN classnameNjj)}j]j)}jjCsbc.snd_soc_jack_reportasbuh1hhj Dubj)}(h h]h }(hjKDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Dubj)}(hjh]h*}(hjYDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Dubj%)}(hjackh]hjack}(hjfDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Dubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(h int statush](h)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj{Dubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{Dubj%)}(hstatush]hstatus}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{Dubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubjF)}(hint maskh](h)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj%)}(hmaskh]hmask}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjDubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjChhhjChKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjChKubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjChKhjChhubjb)}(hhh]jg)}(h$Report the current status for a jackh]h$Report the current status for a jack}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjDhhubah}(h]h ]h"]h$]h&]uh1jahjChhhjChKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1hhhhj3hNhNubj)}(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)}(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:126: ./sound/soc/soc-jack.chKhjEubj)}(hhh](j)}(h'``struct snd_soc_jack *jack`` the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj;Eh]hstruct snd_soc_jack *jack}(hj=EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Eubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj5Eubj)}(hhh]jg)}(hthe jackh]hthe jack}(hjTEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPEhKhjQEubah}(h]h ]h"]h$]h&]uh1jhj5Eubeh}(h]h ]h"]h$]h&]uh1jhjPEhKhj2Eubj)}(hS``int status`` a bitmask of enum snd_jack_type values that are currently detected. h](j)}(h``int status``h]j)}(hjtEh]h int status}(hjvEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrEubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjnEubj)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhKhjEubah}(h]h ]h"]h$]h&]uh1jhjnEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj2Eubj)}(hI``int mask`` a bitmask of enum snd_jack_type values that being reported. h](j)}(h ``int mask``h]j)}(hjEh]hint mask}(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:126: ./sound/soc/soc-jack.chKhjEubj)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhKhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKhj2Eubeh}(h]h ]h"]h$]h&]uh1jhjEubjg)}(h**Description**h]j)}(hjEh]h Description}(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:126: ./sound/soc/soc-jack.chKhjEubjg)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjEubjg)}(h**Note**h]j)}(hjFh]hNote}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Fubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjEubjg)}(heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).h]heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).}(hj%FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_zones (C function)c.snd_soc_jack_add_zoneshNtauh1hhj3hhhNhNubh)}(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}(hjTFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPubj)}(h h]h }(hjcFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPFhhhjbFhKPubj)}(hsnd_soc_jack_add_zonesh]j%)}(hsnd_soc_jack_add_zonesh]hsnd_soc_jack_add_zones}(hjuFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqFubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPFhhhjbFhKPubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjFhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jjwFsbc.snd_soc_jack_add_zonesasbuh1hhjFubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj%)}(hjackh]hjack}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(h int counth](h)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(hcounth]hcount}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(hstruct snd_soc_jack_zone *zonesh](jL)}(hjOh]hstruct}(hj8GhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4Gubj)}(h h]h }(hjEGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4Gubh)}(hhh]j%)}(hsnd_soc_jack_zoneh]hsnd_soc_jack_zone}(hjVGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXGmodnameN classnameNjj)}j]jFc.snd_soc_jack_add_zonesasbuh1hhj4Gubj)}(h h]h }(hjtGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4Gubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4Gubj%)}(hzonesh]hzones}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4Gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPFhhhjbFhKPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjLFhhhjbFhKPubah}(h]jGFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjbFhKPhjIFhhubjb)}(hhh]jg)}(h!Associate voltage zones with jackh]h!Associate voltage zones with jack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPhjGhhubah}(h]h ]h"]h$]h&]uh1jahjIFhhhjbFhKPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhj3hNhNubj)}(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)}(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:126: ./sound/soc/soc-jack.chKThjGubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjGh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chKRhjGubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKRhjHubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjHhKRhjGubj)}(h``int count`` Number of zones h](j)}(h ``int count``h]j)}(hj3Hh]h int count}(hj5HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Hubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKShj-Hubj)}(hhh]jg)}(hNumber of zonesh]hNumber of zones}(hjLHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHHhKShjIHubah}(h]h ]h"]h$]h&]uh1jhj-Hubeh}(h]h ]h"]h$]h&]uh1jhjHHhKShjGubj)}(h3``struct snd_soc_jack_zone *zones`` Array of zones h](j)}(h#``struct snd_soc_jack_zone *zones``h]j)}(hjlHh]hstruct snd_soc_jack_zone *zones}(hjnHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjfHubj)}(hhh]jg)}(hArray of zonesh]hArray of zones}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKThjHubah}(h]h ]h"]h$]h&]uh1jhjfHubeh}(h]h ]h"]h$]h&]uh1jhjHhKThjGubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjHh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKVhjGubjg)}(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.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKUhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_get_type (C function)c.snd_soc_jack_get_typehNtauh1hhj3hhhNhNubh)}(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}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKgubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjHhKgubj)}(hsnd_soc_jack_get_typeh]j%)}(hsnd_soc_jack_get_typeh]hsnd_soc_jack_get_type}(hj IhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Iubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjHhKgubj@)}(h0(struct snd_soc_jack *jack, int micbias_voltage)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj)IhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj%Iubj)}(h h]h }(hj6IhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%Iubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjGIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjIImodnameN classnameNjj)}j]j)}jjIsbc.snd_soc_jack_get_typeasbuh1hhj%Iubj)}(h h]h }(hjgIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%Iubj)}(hjh]h*}(hjuIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%Iubj%)}(hjackh]hjack}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj%Iubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj!IubjF)}(hint micbias_voltageh](h)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjIubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj%)}(hmicbias_voltageh]hmicbias_voltage}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj!Iubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjHhhhjHhKgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhjHhKgubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhKghjHhhubjb)}(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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKghjIhhubah}(h]h ]h"]h$]h&]uh1jahjHhhhjHhKgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIjjIjjjuh1hhhhj3hNhNubj)}(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)}(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:126: ./sound/soc/soc-jack.chKkhjIubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj"Jh]hstruct snd_soc_jack *jack}(hj$JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Jubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKjhjJubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj;JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7JhKjhj8Jubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhj7JhKjhjJubj)}(hP``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in h](j)}(h``int micbias_voltage``h]j)}(hj[Jh]hint micbias_voltage}(hj]JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhjUJubj)}(hhh]jg)}(h7mic bias voltage at adc channel when jack is plugged inh]h7mic bias voltage at adc channel when jack is plugged in}(hjtJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjpJhKkhjqJubah}(h]h ]h"]h$]h&]uh1jhjUJubeh}(h]h ]h"]h$]h&]uh1jhjpJhKkhjJubeh}(h]h ]h"]h$]h&]uh1jhjIubjg)}(h**Description**h]j)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhjIubjg)}(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}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKlhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_add_pins (C function)c.snd_soc_jack_add_pinshNtauh1hhj3hhhNhNubh)}(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}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJhhhjJhK~ubj)}(hsnd_soc_jack_add_pinsh]j%)}(hsnd_soc_jack_add_pinsh]hsnd_soc_jack_add_pins}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJhhhjJhK~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}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hj%KhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj6KhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3Kubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8KmodnameN classnameNjj)}j]j)}jjJsbc.snd_soc_jack_add_pinsasbuh1hhjKubj)}(h h]h }(hjVKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hjdKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hjackh]hjack}(hjqKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubjF)}(h int counth](h)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(hcounth]hcount}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubjF)}(hstruct snd_soc_jack_pin *pinsh](jL)}(hjOh]hstruct}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hsnd_soc_jack_pinh]hsnd_soc_jack_pin}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]jRKc.snd_soc_jack_add_pinsasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj)}(hjh]h*}(hj LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj%)}(hpinsh]hpins}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjJhhhjJhK~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJhhhjJhK~ubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhK~hjJhhubjb)}(hhh]jg)}(h%Associate DAPM pins with an ASoC jackh]h%Associate DAPM pins with an ASoC jack}(hj@LhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~hj=Lhhubah}(h]h ]h"]h$]h&]uh1jahjJhhhjJhK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXLjjXLjjjuh1hhhhj3hNhNubj)}(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)}(hjbLh]h Parameters}(hjdLhhhNhNubah}(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:126: ./sound/soc/soc-jack.chKhj\Lubj)}(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)}(hjLh]hstruct snd_soc_jack *jack}(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)}(h3ASoC jack created with snd_soc_card_jack_new_pins()h]h3ASoC jack created with snd_soc_card_jack_new_pins()}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhj{Lubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjxLubj)}(h``int count`` Number of pins h](j)}(h ``int count``h]j)}(hjLh]h int count}(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.chKhjLubj)}(hhh]jg)}(hNumber of pinsh]hNumber of pins}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjxLubj)}(h0``struct snd_soc_jack_pin *pins`` Array of pins h](j)}(h!``struct snd_soc_jack_pin *pins``h]j)}(hjLh]hstruct snd_soc_jack_pin *pins}(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.chKhjLubj)}(hhh]jg)}(h Array of pinsh]h Array of pins}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhKhj Mubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjxLubeh}(h]h ]h"]h$]h&]uh1jhj\Lubjg)}(h**Description**h]j)}(hj.Mh]h Description}(hj0MhhhNhNubah}(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:126: ./sound/soc/soc-jack.chKhj\Lubjg)}(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.}(hjDMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj\Lubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_jack_notifier_register (C function) c.snd_soc_jack_notifier_registerhNtauh1hhj3hhhNhNubh)}(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}(hjsMhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjoMhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoMhhhjMhKubj)}(hsnd_soc_jack_notifier_registerh]j%)}(hsnd_soc_jack_notifier_registerh]hsnd_soc_jack_notifier_register}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjoMhhhjMhKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(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)}jjMsb c.snd_soc_jack_notifier_registerasbuh1hhjMubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(hjackh]hjack}(hj NhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hj"NhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNubj)}(h h]h }(hj/NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hj@NhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=Nubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBNmodnameN classnameNjj)}j]jM c.snd_soc_jack_notifier_registerasbuh1hhjNubj)}(h h]h }(hj^NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(hjh]h*}(hjlNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj%)}(hnbh]hnb}(hjyNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjMubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjoMhhhjMhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkMhhhjMhKubah}(h]jfMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhKhjhMhhubjb)}(hhh]jg)}(h#Register a notifier for jack statush]h#Register a notifier for jack status}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjNhhubah}(h]h ]h"]h$]h&]uh1jahjhMhhhjMhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhj3hNhNubj)}(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)}(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:126: ./sound/soc/soc-jack.chKhjNubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjNh]hstruct snd_soc_jack *jack}(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.chKhjNubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjNubj)}(h9``struct notifier_block *nb`` Notifier block to register h](j)}(h``struct notifier_block *nb``h]j)}(hjOh]hstruct notifier_block *nb}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjOubj)}(hhh]jg)}(hNotifier block to registerh]hNotifier block to register}(hj6OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2OhKhj3Oubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhj2OhKhjNubeh}(h]h ]h"]h$]h&]uh1jhjNubjg)}(h**Description**h]j)}(hjXOh]h Description}(hjZOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVOubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjNubjg)}(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.}(hjnOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_jack_notifier_unregister (C function)"c.snd_soc_jack_notifier_unregisterhNtauh1hhj3hhhNhNubh)}(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}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOhhhjOhKubj)}(h snd_soc_jack_notifier_unregisterh]j%)}(h snd_soc_jack_notifier_unregisterh]h snd_soc_jack_notifier_unregister}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjOhhhjOhKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)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)}jjOsb"c.snd_soc_jack_notifier_unregisterasbuh1hhjOubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hj&PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hjackh]hjack}(hj3PhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hjLPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHPubj)}(h h]h }(hjYPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHPubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hjjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlPmodnameN classnameNjj)}j]jP"c.snd_soc_jack_notifier_unregisterasbuh1hhjHPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHPubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHPubj%)}(hnbh]hnb}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjOubeh}(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%Unregister a notifier for jack statush]h%Unregister a notifier for jack status}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjOhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhj3hNhNubj)}(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)}(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:126: ./sound/soc/soc-jack.chKhjPubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjQh]hstruct snd_soc_jack *jack}(hjQhhhNhNubah}(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:126: ./sound/soc/soc-jack.chKhjQubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj'QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#QhKhj$Qubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhj#QhKhjQubj)}(h;``struct notifier_block *nb`` Notifier block to unregister h](j)}(h``struct notifier_block *nb``h]j)}(hjGQh]hstruct notifier_block *nb}(hjIQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjAQubj)}(hhh]jg)}(hNotifier block to unregisterh]hNotifier block to unregister}(hj`QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\QhKhj]Qubah}(h]h ]h"]h$]h&]uh1jhjAQubeh}(h]h ]h"]h$]h&]uh1jhj\QhKhjQubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPubjg)}(h"Stop notifying for status changes.h]h"Stop notifying for status changes.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_gpios (C function)c.snd_soc_jack_add_gpioshNtauh1hhj3hhhNhNubh)}(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}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjQhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhM-ubj)}(hsnd_soc_jack_add_gpiosh]j%)}(hsnd_soc_jack_add_gpiosh]hsnd_soc_jack_add_gpios}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjQhM-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}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj"RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$RmodnameN classnameNjj)}j]j)}jjQsbc.snd_soc_jack_add_gpiosasbuh1hhjRubj)}(h h]h }(hjBRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjPRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hjackh]hjack}(hj]RhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubjF)}(h int counth](h)}(hinth]hint}(hjvRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrRubj%)}(hcounth]hcount}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j>Rc.snd_soc_jack_add_gpiosasbuh1hhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hgpiosh]hgpios}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjQubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjQhhhjQhM-ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjQhM-ubah}(h]jQah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhM-hjQhhubjb)}(hhh]jg)}(h%Associate GPIO pins with an ASoC jackh]h%Associate GPIO pins with an ASoC jack}(hj,ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-hj)Shhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjQhM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjDSjjDSjjjuh1hhhhj3hNhNubj)}(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)}(hjNSh]h Parameters}(hjPShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLSubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hjHSubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjmSh]hstruct snd_soc_jack *jack}(hjoShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM/hjgSubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShM/hjSubah}(h]h ]h"]h$]h&]uh1jhjgSubeh}(h]h ]h"]h$]h&]uh1jhjShM/hjdSubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjSh]h int count}(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:126: ./sound/soc/soc-jack.chM0hjSubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShM0hjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShM0hjdSubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjSh]hstruct snd_soc_jack_gpio *gpios}(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:126: ./sound/soc/soc-jack.chM1hjSubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjShM1hjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShM1hjdSubeh}(h]h ]h"]h$]h&]uh1jhjHSubjg)}(h**Description**h]j)}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hjHSubjg)}(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.}(hj0ThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM2hjHSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_add_gpiods (C function)c.snd_soc_jack_add_gpiodshNtauh1hhj3hhhNhNubh)}(hhh](h)}(h}int snd_soc_jack_add_gpiods (struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(h|int snd_soc_jack_add_gpiods(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hinth]hint}(hj_ThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[Thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hjnThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[ThhhjmThMubj)}(hsnd_soc_jack_add_gpiodsh]j%)}(hsnd_soc_jack_add_gpiodsh]hsnd_soc_jack_add_gpiods}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|Tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[ThhhjmThMubj@)}(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}(hjThhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hdeviceh]hdevice}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjTsbc.snd_soc_jack_add_gpiodsasbuh1hhjTubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(h gpiod_devh]h gpiod_dev}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj Uubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Uubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj,UhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)Uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.UmodnameN classnameNjj)}j]jTc.snd_soc_jack_add_gpiodsasbuh1hhj Uubj)}(h h]h }(hjJUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Uubj)}(hjh]h*}(hjXUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Uubj%)}(hjackh]hjack}(hjeUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj Uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubjF)}(h int counth](h)}(hinth]hint}(hj~UhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzUubj%)}(hcounth]hcount}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jTc.snd_soc_jack_add_gpiodsasbuh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(hgpiosh]hgpios}(hj VhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjTubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj[ThhhjmThMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWThhhjmThMubah}(h]jRTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjmThMhjTThhubjb)}(hhh]jg)}(h0Associate GPIO descriptor pins with an ASoC jackh]h0Associate GPIO descriptor pins with an ASoC jack}(hj4VhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj1Vhhubah}(h]h ]h"]h$]h&]uh1jahjTThhhjmThMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLVjjLVjjjuh1hhhhj3hNhNubj)}(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)}(hjVVh]h Parameters}(hjXVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTVubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjPVubj)}(hhh](j)}(h2``struct device *gpiod_dev`` GPIO consumer device h](j)}(h``struct device *gpiod_dev``h]j)}(hjuVh]hstruct device *gpiod_dev}(hjwVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjoVubj)}(hhh]jg)}(hGPIO consumer deviceh]hGPIO consumer device}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjoVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjlVubj)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjVh]hstruct snd_soc_jack *jack}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjVubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjlVubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjVh]h int count}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjVubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjlVubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hj Wh]hstruct snd_soc_jack_gpio *gpios}(hj"WhhhNhNubah}(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.chMhjWubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hj9WhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5WhMhj6Wubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhj5WhMhjlVubeh}(h]h ]h"]h$]h&]uh1jhjPVubjg)}(h**Description**h]j)}(hj[Wh]h Description}(hj]WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYWubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjPVubjg)}(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.}(hjqWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjPVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_free_gpios (C function)c.snd_soc_jack_free_gpioshNtauh1hhj3hhhNhNubh)}(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}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWhhhjWhMubj)}(hsnd_soc_jack_free_gpiosh]j%)}(hsnd_soc_jack_free_gpiosh]hsnd_soc_jack_free_gpios}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjWhhhjWhMubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjWsbc.snd_soc_jack_free_gpiosasbuh1hhjWubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hj)XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hjackh]hjack}(hj6XhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWubjF)}(h int counth](h)}(hinth]hint}(hjOXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKXubj)}(h h]h }(hj]XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKXubj%)}(hcounth]hcount}(hjkXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKXubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jXc.snd_soc_jack_free_gpiosasbuh1hhjXubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj%)}(hgpiosh]hgpios}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubeh}(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)}(h,Release GPIO pins' resources of an ASoC jackh]h.Release GPIO pins’ resources of 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.chMhjYhhubah}(h]h ]h"]h$]h&]uh1jahjWhhhjWhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYjjYjjjuh1hhhhj3hNhNubj)}(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'Yh]h Parameters}(hj)YhhhNhNubah}(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:126: ./sound/soc/soc-jack.chMhj!Yubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjFYh]hstruct snd_soc_jack *jack}(hjHYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDYubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj@Yubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj_YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[YhMhj\Yubah}(h]h ]h"]h$]h&]uh1jhj@Yubeh}(h]h ]h"]h$]h&]uh1jhj[YhMhj=Yubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjYh]h int count}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}Yubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjyYubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMhjYubah}(h]h ]h"]h$]h&]uh1jhjyYubeh}(h]h ]h"]h$]h&]uh1jhjYhMhj=Yubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjYh]hstruct snd_soc_jack_gpio *gpios}(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.chMhjYubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhMhj=Yubeh}(h]h ]h"]h$]h&]uh1jhj!Yubjg)}(h**Description**h]j)}(hjYh]h Description}(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.chMhj!Yubjg)}(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.}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj!Yubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj3hhhNhNubeh}(h]jack-abstraction-layer-apiah ]h"]jack abstraction layer apiah$]h&]uh1hhj90hhhhhK{ubh)}(hhh](h)}(hISA DMA Helpersh]hISA DMA Helpers}(hj*ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ZhhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_program (C function)c.snd_dma_programhNtauh1hhj'ZhhhNhNubh)}(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}(hjQZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMZhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKubj)}(h h]h }(hj`ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMZhhhj_ZhKubj)}(hsnd_dma_programh]j%)}(hsnd_dma_programh]hsnd_dma_program}(hjrZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMZhhhj_ZhKubj@)}(hO(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hlongh]hlong}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj%)}(hdmah]hdma}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hunsigned long addrh](h)}(hunsignedh]hunsigned}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hlongh]hlong}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hj [hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj%)}(haddrh]haddr}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hj0[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,[ubj)}(h h]h }(hj>[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,[ubh)}(hinth]hint}(hjL[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,[ubj)}(h h]h }(hjZ[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,[ubj%)}(hsizeh]hsize}(hjh[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubjF)}(hunsigned short modeh](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)}(hshorth]hshort}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}[ubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}[ubj%)}(hmodeh]hmode}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}[ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjZubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjMZhhhj_ZhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIZhhhj_ZhKubah}(h]jDZah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_ZhKhjFZhhubjb)}(hhh]jg)}(hprogram an ISA DMA transferh]hprogram an ISA DMA transfer}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj[hhubah}(h]h ]h"]h$]h&]uh1jahjFZhhhj_ZhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj[jj[jjjuh1hhhhj'ZhNhNubj)}(hX&**Parameters** ``unsigned long dma`` the dma number ``unsigned long addr`` the physical address of the buffer ``unsigned int size`` the DMA transfer size ``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX **Description** Programs an ISA DMA transfer for the given buffer.h](jg)}(h**Parameters**h]j)}(hj\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:130: ./sound/core/isadma.chKhj[ubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj$\h]hunsigned long dma}(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:130: ./sound/core/isadma.chKhj\ubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hj=\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9\hKhj:\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj9\hKhj\ubj)}(h:``unsigned long addr`` the physical address of the buffer h](j)}(h``unsigned long addr``h]j)}(hj]\h]hunsigned long addr}(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:130: ./sound/core/isadma.chKhjW\ubj)}(hhh]jg)}(h"the physical address of the bufferh]h"the physical address of the buffer}(hjv\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjr\hKhjs\ubah}(h]h ]h"]h$]h&]uh1jhjW\ubeh}(h]h ]h"]h$]h&]uh1jhjr\hKhj\ubj)}(h,``unsigned int size`` the DMA transfer 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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj\ubj)}(hhh]jg)}(hthe DMA transfer sizeh]hthe DMA transfer size}(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<``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX h](j)}(h``unsigned short mode``h]j)}(hj\h]hunsigned short mode}(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:130: ./sound/core/isadma.chKhj\ubj)}(hhh]jg)}(h#the DMA transfer mode, DMA_MODE_XXXh]h#the DMA transfer mode, DMA_MODE_XXX}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj[ubjg)}(h2Programs an ISA DMA transfer for the given buffer.h]h2Programs an ISA DMA transfer for the given buffer.}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj'ZhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_disable (C function)c.snd_dma_disablehNtauh1hhj'ZhhhNhNubh)}(hhh](h)}(h(void snd_dma_disable (unsigned long dma)h]h)}(h'void snd_dma_disable(unsigned long dma)h](h)}(hvoidh]hvoid}(hjO]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjK]hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.ubj)}(h h]h }(hj^]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjK]hhhj]]hK.ubj)}(hsnd_dma_disableh]j%)}(hsnd_dma_disableh]hsnd_dma_disable}(hjp]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjl]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjK]hhhj]]hK.ubj@)}(h(unsigned long dma)h]jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubh)}(hlongh]hlong}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj%)}(hdmah]hdma}(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?hjK]hhhj]]hK.ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjG]hhhj]]hK.ubah}(h]jB]ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]]hK.hjD]hhubjb)}(hhh]jg)}(hstop the ISA DMA transferh]hstop the ISA DMA transfer}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.hj]hhubah}(h]h ]h"]h$]h&]uh1jahjD]hhhj]]hK.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhj'ZhNhNubj)}(hd**Parameters** ``unsigned long dma`` the dma number **Description** Stops the ISA DMA transfer.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:130: ./sound/core/isadma.chK2hj ^ubj)}(hhh]j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj/^h]hunsigned long dma}(hj1^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:130: ./sound/core/isadma.chK/hj)^ubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjH^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjD^hK/hjE^ubah}(h]h ]h"]h$]h&]uh1jhj)^ubeh}(h]h ]h"]h$]h&]uh1jhjD^hK/hj&^ubah}(h]h ]h"]h$]h&]uh1jhj ^ubjg)}(h**Description**h]j)}(hjj^h]h Description}(hjl^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh^ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hj ^ubjg)}(hStops the ISA DMA transfer.h]hStops the ISA DMA transfer.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK0hj ^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj'ZhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_pointer (C function)c.snd_dma_pointerhNtauh1hhj'ZhhhNhNubh)}(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}(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.chK?ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhj^hK?ubh)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj^hhhj^hK?ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhj^hK?ubj)}(hsnd_dma_pointerh]j%)}(hsnd_dma_pointerh]hsnd_dma_pointer}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhj^hK?ubj@)}(h&(unsigned long dma, unsigned int size)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubh)}(hlongh]hlong}(hj$_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj_ubj)}(h h]h }(hj2_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj_ubj%)}(hdmah]hdma}(hj@_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjY_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjU_ubj)}(h h]h }(hjg_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjU_ubh)}(hinth]hint}(hju_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjU_ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjU_ubj%)}(hsizeh]hsize}(hj_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjU_ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj_ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj^hhhj^hK?ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^hhhj^hK?ubah}(h]j^ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hK?hj^hhubjb)}(hhh]jg)}(h:return the current pointer to DMA transfer buffer in bytesh]h:return the current pointer to DMA transfer buffer in bytes}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?hj_hhubah}(h]h ]h"]h$]h&]uh1jahj^hhhj^hK?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj'ZhNhNubj)}(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)}(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:130: ./sound/core/isadma.chKChj_ubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj_h]hunsigned long dma}(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:130: ./sound/core/isadma.chK@hj_ubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(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,``unsigned int size`` the dma transfer size h](j)}(h``unsigned int size``h]j)}(hj5`h]hunsigned int size}(hj7`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3`ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKAhj/`ubj)}(hhh]jg)}(hthe dma transfer sizeh]hthe dma transfer size}(hjN`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJ`hKAhjK`ubah}(h]h ]h"]h$]h&]uh1jhj/`ubeh}(h]h ]h"]h$]h&]uh1jhjJ`hKAhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_ubjg)}(h **Return**h]j)}(hjp`h]hReturn}(hjr`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn`ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj_ubjg)}(h4The current pointer in DMA transfer buffer in bytes.h]h4The current pointer in DMA transfer buffer in bytes.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj'ZhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_devm_request_dma (C function)c.snd_devm_request_dmahNtauh1hhj'ZhhhNhNubh)}(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}(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.chKrubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhj`hKrubj)}(hsnd_devm_request_dmah]j%)}(hsnd_devm_request_dmah]hsnd_devm_request_dma}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhj`hKrubj@)}(h/(struct device *dev, int dma, const char *name)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}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjamodnameN classnameNjj)}j]j)}jj`sbc.snd_devm_request_dmaasbuh1hhj`ubj)}(h h]h }(hj0ahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubj)}(hjh]h*}(hj>ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj%)}(hdevh]hdev}(hjKahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hint dmah](h)}(hinth]hint}(hjdahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`aubj)}(h h]h }(hjrahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`aubj%)}(hdmah]hdma}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`aubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hconst char *nameh](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%)}(hnameh]hname}(hjahhhNhNubah}(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`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)}(h$the managed version of request_dma()h]h$the managed version of request_dma()}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrhjbhhubah}(h]h ]h"]h$]h&]uh1jahj`hhhj`hKrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhj'ZhNhNubj)}(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)}(hj)bh]h Parameters}(hj+bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'bubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhj#bubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjHbh]hstruct device *dev}(hjJbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFbubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKshjBbubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjabhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]bhKshj^bubah}(h]h ]h"]h$]h&]uh1jhjBbubeh}(h]h ]h"]h$]h&]uh1jhj]bhKshj?bubj)}(h``int dma`` the dma number h](j)}(h ``int dma``h]j)}(hjbh]hint 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.chKthj{bubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKthjbubah}(h]h ]h"]h$]h&]uh1jhj{bubeh}(h]h ]h"]h$]h&]uh1jhjbhKthj?bubj)}(h6``const char *name`` the name string of the requester h](j)}(h``const char *name``h]j)}(hjbh]hconst char *name}(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.chKuhjbubj)}(hhh]jg)}(h the name string of the requesterh]h the name string of the requester}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKuhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKuhj?bubeh}(h]h ]h"]h$]h&]uh1jhj#bubjg)}(h**Description**h]j)}(hjbh]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhj#bubjg)}(hIThe requested DMA will be automatically released at unbinding via devres.h]hIThe requested DMA will be automatically released at unbinding via devres.}(hj chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhj#bubjg)}(h **Return**h]j)}(hjch]hReturn}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKxhj#bubjg)}(h)zero on success, or a negative error codeh]h)zero on success, or a negative error code}(hj2chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhj#bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj'ZhhhNhNubeh}(h]isa-dma-helpersah ]h"]isa dma helpersah$]h&]uh1hhj90hhhhhKubh)}(hhh](h)}(hOther Helper Macrosh]hOther Helper Macros}(hjSchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPchhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_ref (C function)c.snd_power_refhNtauh1hhjPchhhNhNubh)}(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}(hjzchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvchhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvchhhjchKubj)}(h snd_power_refh]j%)}(h snd_power_refh]h snd_power_ref}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvchhhjchKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjchhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jjcsbc.snd_power_refasbuh1hhjcubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj%)}(hcardh]hcard}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjcubah}(h]h ]h"]h$]h&]j=j>uh1j?hjvchhhjchKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrchhhjchKubah}(h]jmcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchKhjochhubjb)}(hhh]jg)}(h*Take the reference count for power controlh]h*Take the reference count for power control}(hj:dhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj7dhhubah}(h]h ]h"]h$]h&]uh1jahjochhhjchKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRdjjRdjjjuh1hhhhjPchNhNubj)}(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)}(hj\dh]h Parameters}(hj^dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZdubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjVdubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hj{dh]hstruct snd_card *card}(hj}dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjydubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjudubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKhjdubah}(h]h ]h"]h$]h&]uh1jhjudubeh}(h]h ]h"]h$]h&]uh1jhjdhKhjrdubah}(h]h ]h"]h$]h&]uh1jhjVdubjg)}(h**Description**h]j)}(hjdh]h Description}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjVdubjg)}(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.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjVdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_unref (C function)c.snd_power_unrefhNtauh1hhjPchhhNhNubh)}(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}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hj ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdhhhj ehKubj)}(hsnd_power_unrefh]j%)}(hsnd_power_unrefh]hsnd_power_unref}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjdhhhj ehKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj8ehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4eubj)}(h h]h }(hjEehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4eubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjVehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXemodnameN classnameNjj)}j]j)}jjesbc.snd_power_unrefasbuh1hhj4eubj)}(h h]h }(hjvehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4eubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4eubj%)}(hcardh]hcard}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4eubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj0eubah}(h]h ]h"]h$]h&]j=j>uh1j?hjdhhhj ehKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjdhhhj ehKubah}(h]jdah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj ehKhjdhhubjb)}(hhh]jg)}(h-Release the reference count for power controlh]h-Release the reference count for power control}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjehhubah}(h]h ]h"]h$]h&]uh1jahjdhhhj ehKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1hhhhjPchNhNubj)}(h=**Parameters** ``struct snd_card *card`` sound card objecth](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:134: ./include/sound/core.hhKhjeubj)}(hhh]j)}(h+``struct snd_card *card`` sound card objecth](j)}(h``struct snd_card *card``h]j)}(hjeh]hstruct snd_card *card}(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:134: ./include/sound/core.hhKhjeubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_sync_ref (C function)c.snd_power_sync_refhNtauh1hhjPchhhNhNubh)}(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}(hjVfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRfhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjefhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRfhhhjdfhKubj)}(hsnd_power_sync_refh]j%)}(hsnd_power_sync_refh]hsnd_power_sync_ref}(hjwfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjRfhhhjdfhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjfhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjyfsbc.snd_power_sync_refasbuh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj%)}(hcardh]hcard}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubah}(h]h ]h"]h$]h&]j=j>uh1j?hjRfhhhjdfhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNfhhhjdfhKubah}(h]jIfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjdfhKhjKfhhubjb)}(hhh]jg)}(h&wait until the card power_ref is freedh]h&wait until the card power_ref is freed}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjghhubah}(h]h ]h"]h$]h&]uh1jahjKfhhhjdfhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.gjj.gjjjuh1hhhhjPchNhNubj)}(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)}(hj8gh]h Parameters}(hj:ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6gubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj2gubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjWgh]hstruct snd_card *card}(hjYghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjQgubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjpghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlghKhjmgubah}(h]h ]h"]h$]h&]uh1jhjQgubeh}(h]h ]h"]h$]h&]uh1jhjlghKhjNgubah}(h]h ]h"]h$]h&]uh1jhj2gubjg)}(h**Description**h]j)}(hjgh]h Description}(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:134: ./include/sound/core.hhKhj2gubjg)}(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.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj2gubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_unref (C function)c.snd_card_unrefhNtauh1hhjPchhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjghhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjghhhjghM2ubj)}(hsnd_card_unrefh]j%)}(hsnd_card_unrefh]hsnd_card_unref}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjghhhjghM2ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhubj)}(h h]h }(hj!hhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj2hhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/hubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4hmodnameN classnameNjj)}j]j)}jjgsbc.snd_card_unrefasbuh1hhjhubj)}(h h]h }(hjRhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhubj)}(hjh]h*}(hj`hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj%)}(hcardh]hcard}(hjmhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj hubah}(h]h ]h"]h$]h&]j=j>uh1j?hjghhhjghM2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjghhhjghM2ubah}(h]jgah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghM2hjghhubjb)}(hhh]jg)}(hUnreference the card objecth]hUnreference the card object}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2hjhhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjghM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhjPchNhNubj)}(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)}(hjhh]h Parameters}(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:134: ./include/sound/core.hhM6hjhubj)}(hhh]j)}(h9``struct snd_card *card`` the card object to unreference 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&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM3hjhubj)}(hhh]jg)}(hthe card object to unreferenceh]hthe card object to unreference}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhM3hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhM3hjhubah}(h]h ]h"]h$]h&]uh1jhjhubjg)}(h**Description**h]j)}(hjih]h Description}(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:134: ./include/sound/core.hhM5hjhubjg)}(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().}(hj)ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM4hjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG (C macro) c.snd_BUGhNtauh1hhjPchhhNhNubh)}(hhh](h)}(hsnd_BUGh]h)}(hsnd_BUGh]j)}(hsnd_BUGh]j%)}(hjRih]hsnd_BUG}(hj\ihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjTihhhf/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>jSuh1hjTjUhjPihhhjoihM]ubah}(h]jKiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjoihM]hjMihhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjMihhhjoihM]ubeh}(h]h ](jmacroeh"]h$]h&]jjjjijjijjjuh1hhhhjPchNhNubjg)}(h``snd_BUG ()``h]j)}(hjih]h snd_BUG ()}(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:134: ./include/sound/core.hhM_hjPchhubj)}(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}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM]hjiubah}(h]h ]h"]h$]h&]uh1jhjihM]hjiubjg)}(h**Description**h]j)}(hjih]h Description}(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:134: ./include/sound/core.hhM_hjiubjg)}(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.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM^hjiubeh}(h]h ]h"]h$]h&]uh1jhjihM]hjPchhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG_ON (C macro) c.snd_BUG_ONhNtauh1hhjPchhhNhNubh)}(hhh](h)}(h snd_BUG_ONh]h)}(h snd_BUG_ONh]j)}(h snd_BUG_ONh]j%)}(hjjh]h snd_BUG_ON}(hj jhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMeubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjjhMeubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMehjihhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjihhhjjhMeubeh}(h]h ](jmacroeh"]h$]h&]jjjj7jjj7jjjjuh1hhhhjPchNhNubjg)}(h``snd_BUG_ON (cond)``h]j)}(hj=jh]hsnd_BUG_ON (cond)}(hj?jhhhNhNubah}(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:134: ./include/sound/core.hhMghjPchhubj)}(hdebugging check macro h]jg)}(hdebugging check macroh]hdebugging check macro}(hjWjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMehjSjubah}(h]h ]h"]h$]h&]uh1jhjejhMehjPchhubj)}(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)}(hjrjh]h Parameters}(hjtjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMihjljubj)}(hhh]j)}(h``cond`` condition to evaluate h](j)}(h``cond``h]j)}(hjjh]hcond}(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.hhMfhjjubj)}(hhh]jg)}(hcondition to evaluateh]hcondition to evaluate}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhMfhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhMfhjjubah}(h]h ]h"]h$]h&]uh1jhjljubjg)}(h**Description**h]j)}(hjjh]h Description}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMhhjljubjg)}(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.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMghjljubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*register_sound_special_device (C function)c.register_sound_special_devicehNtauh1hhjPchhhNhNubh)}(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}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj khhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOubj)}(h h]h }(hj khhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj khhhjkhMOubj)}(hregister_sound_special_deviceh]j%)}(hregister_sound_special_deviceh]hregister_sound_special_device}(hj2khhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.kubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj khhhjkhMOubj@)}(hB(const struct file_operations *fops, int unit, struct device *dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjNkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJkubj)}(h h]h }(hj[khhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJkubjL)}(hjOh]hstruct}(hjikhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJkubj)}(h h]h }(hjvkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJkubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj4ksbc.register_sound_special_deviceasbuh1hhjJkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJkubj%)}(hfopsh]hfops}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFkubjF)}(hint unith](h)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hunith]hunit}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFkubjF)}(hstruct device *devh](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%)}(hdeviceh]hdevice}(hj.lhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+lubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0lmodnameN classnameNjj)}j]jkc.register_sound_special_deviceasbuh1hhj lubj)}(h h]h }(hjLlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj lubj)}(hjh]h*}(hjZlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj lubj%)}(hdevh]hdev}(hjglhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj lubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFkubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj khhhjkhMOubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj khhhjkhMOubah}(h]jkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjkhMOhjkhhubjb)}(hhh]jg)}(hregister a special sound nodeh]hregister a special sound node}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOhjlhhubah}(h]h ]h"]h$]h&]uh1jahjkhhhjkhMOubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjPchNhNubj)}(hXw**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int unit`` Unit number to allocate ``struct device *dev`` device pointer **Description** 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)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMShjlubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hjlh]h"const struct file_operations *fops}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMPhjlubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhMPhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhMPhjlubj)}(h%``int unit`` Unit number to allocate h](j)}(h ``int unit``h]j)}(hj mh]hint unit}(hj mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj mubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMQhjmubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hj$mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj mhMQhj!mubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhj mhMQhjlubj)}(h&``struct device *dev`` device pointer h](j)}(h``struct device *dev``h]j)}(hjDmh]hstruct device *dev}(hjFmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBmubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMRhj>mubj)}(hhh]jg)}(hdevice pointerh]hdevice pointer}(hj]mhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYmhMRhjZmubah}(h]h ]h"]h$]h&]uh1jhj>mubeh}(h]h ]h"]h$]h&]uh1jhjYmhMRhjlubeh}(h]h ]h"]h$]h&]uh1jhjlubjg)}(h**Description**h]j)}(hjmh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}mubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMThjlubj)}(hJAllocate a special sound device by minor number from the sound subsystem. h]jg)}(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.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMShjmubah}(h]h ]h"]h$]h&]uh1jhjmhMShjlubjg)}(h **Return**h]j)}(hjmh]hReturn}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMVhjlubjg)}(h[The allocated number is returned on success. On failure, a negative error code is returned.h]h[The allocated number is returned on success. On failure, a negative error code is returned.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMWhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!register_sound_mixer (C function)c.register_sound_mixerhNtauh1hhjPchhhNhNubh)}(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}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmhhhjnhMubj)}(hregister_sound_mixerh]j%)}(hregister_sound_mixerh]hregister_sound_mixer}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjmhhhjnhMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hj2nhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.nubj)}(h h]h }(hj?nhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.nubjL)}(hjOh]hstruct}(hjMnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.nubj)}(h h]h }(hjZnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.nubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjknhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmnmodnameN classnameNjj)}j]j)}jjnsbc.register_sound_mixerasbuh1hhj.nubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.nubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.nubj%)}(hfopsh]hfops}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.nubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*nubjF)}(hint devh](h)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj%)}(hdevh]hdev}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj*nubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjmhhhjnhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjnhMubah}(h]jmah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhMhjmhhubjb)}(hhh]jg)}(hregister a mixer deviceh]hregister a mixer device}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjohhubah}(h]h ]h"]h$]h&]uh1jahjmhhhjnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhjPchNhNubj)}(hXu**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int dev`` Unit number to allocate **Description** 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)}(hj'oh]h Parameters}(hj)ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%oubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj!oubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hjFoh]h"const struct file_operations *fops}(hjHohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDoubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj@oubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj_ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[ohMhj\oubah}(h]h ]h"]h$]h&]uh1jhj@oubeh}(h]h ]h"]h$]h&]uh1jhj[ohMhj=oubj)}(h$``int dev`` Unit number to allocate h](j)}(h ``int dev``h]j)}(hjoh]hint dev}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}oubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjyoubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjoubah}(h]h ]h"]h$]h&]uh1jhjyoubeh}(h]h ]h"]h$]h&]uh1jhjohMhj=oubeh}(h]h ]h"]h$]h&]uh1jhj!oubjg)}(h**Description**h]j)}(hjoh]h Description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj!oubj)}(hqAllocate a mixer device. Unit is the number of the mixer requested. Pass -1 to request the next free mixer unit. h]jg)}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjoubah}(h]h ]h"]h$]h&]uh1jhjohMhj!oubjg)}(h **Return**h]j)}(hjoh]hReturn}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj!oubjg)}(h\On success, the allocated number is returned. On failure, a negative error code is returned.h]h\On success, the allocated number is returned. On failure, a negative error code is returned.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj!oubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hregister_sound_dsp (C function)c.register_sound_dsphNtauh1hhjPchhhNhNubh)}(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}(hj0phhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,phhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj?phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,phhhj>phMubj)}(hregister_sound_dsph]j%)}(hregister_sound_dsph]hregister_sound_dsp}(hjQphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMpubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,phhhj>phMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjmphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjipubj)}(h h]h }(hjzphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjipubjL)}(hjOh]hstruct}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjipubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjipubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jjSpsbc.register_sound_dspasbuh1hhjipubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjipubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjipubj%)}(hfopsh]hfops}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjipubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjepubjF)}(hint devh](h)}(hinth]hint}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjpubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj%)}(hdevh]hdev}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjepubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj,phhhj>phMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(phhhj>phMubah}(h]j#pah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>phMhj%phhubjb)}(hhh]jg)}(hregister a DSP deviceh]hregister a DSP device}(hj@qhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj=qhhubah}(h]h ]h"]h$]h&]uh1jahj%phhhj>phMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXqjjXqjjjuh1hhhhjPchNhNubj)}(hX**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int dev`` Unit number to allocate **Description** 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)}(hjbqh]h Parameters}(hjdqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`qubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj\qubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hjqh]h"const struct file_operations *fops}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{qubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhj{qubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjxqubj)}(h$``int dev`` Unit number to allocate h](j)}(h ``int dev``h]j)}(hjqh]hint dev}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjqubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjxqubeh}(h]h ]h"]h$]h&]uh1jhj\qubjg)}(h**Description**h]j)}(hjqh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj\qubj)}(hAllocate 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](jg)}(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.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj rubjg)}(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}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj rubeh}(h]h ]h"]h$]h&]uh1jhjrhMhj\qubjg)}(h **Return**h]j)}(hj5rh]hReturn}(hj7rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3rubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj\qubjg)}(h\On success, the allocated number is returned. On failure, a negative error code is returned.h]h\On success, the allocated number is returned. On failure, a negative error code is returned.}(hjKrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj\qubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%unregister_sound_special (C function)c.unregister_sound_specialhNtauh1hhjPchhhNhNubh)}(hhh](h)}(h(void unregister_sound_special (int unit)h]h)}(h'void unregister_sound_special(int unit)h](h)}(hvoidh]hvoid}(hjzrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvrhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvrhhhjrhMubj)}(hunregister_sound_specialh]j%)}(hunregister_sound_specialh]hunregister_sound_special}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvrhhhjrhMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(hunith]hunit}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubah}(h]h ]h"]h$]h&]j=j>uh1j?hjvrhhhjrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrrhhhjrhMubah}(h]jmrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhMhjorhhubjb)}(hhh]jg)}(h!unregister a special sound deviceh]h!unregister a special sound device}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjrhhubah}(h]h ]h"]h$]h&]uh1jahjorhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjPchNhNubj)}(h**Parameters** ``int unit`` unit number to allocate **Description** 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)}(hjsh]h Parameters}(hj!shhhNhNubah}(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.chMhjsubj)}(hhh]j)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hj>sh]hint unit}(hj@shhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuh1jhjshhhjshMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj%)}(hunith]hunit}(hj!thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjsubah}(h]h ]h"]h$]h&]j=j>uh1j?hjshhhjshMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjshhhjshMubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshMhjshhubjb)}(hhh]jg)}(hunregister a mixerh]hunregister a mixer}(hjKthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjHthhubah}(h]h ]h"]h$]h&]uh1jahjshhhjshMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjctjjctjjjuh1hhhhjPchNhNubj)}(h**Parameters** ``int unit`` unit number to allocate **Description** 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)}(hjmth]h Parameters}(hjothhhNhNubah}(h]h ]h"]h$]h&]uh1jhjktubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjgtubj)}(hhh]j)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hjth]hint unit}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjtubj)}(hhh]jg)}(hunit number to allocateh]hunit number to allocate}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthMhjtubah}(h]h ]h"]h$]h&]uh1jhjgtubjg)}(h**Description**h]j)}(hjth]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjgtubj)}(hRelease a sound device that was allocated with register_sound_mixer(). The unit passed is the return value from the register function.h]jg)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjtubah}(h]h ]h"]h$]h&]uh1jhjthMhjgtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!unregister_sound_dsp (C function)c.unregister_sound_dsphNtauh1hhjPchhhNhNubh)}(hhh](h)}(h$void unregister_sound_dsp (int unit)h]h)}(h#void unregister_sound_dsp(int unit)h](h)}(hvoidh]hvoid}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj%uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuhhhj$uhMubj)}(hunregister_sound_dsph]j%)}(hunregister_sound_dsph]hunregister_sound_dsp}(hj7uhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3uubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhj$uhMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjSuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOuubj)}(h h]h }(hjauhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOuubj%)}(hunith]hunit}(hjouhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKuubah}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhj$uhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhj$uhMubah}(h]j uah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$uhMhj uhhubjb)}(hhh]jg)}(hunregister a DSP deviceh]hunregister a DSP device}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jahj uhhhj$uhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjPchNhNubj)}(hX**Parameters** ``int unit`` unit number to allocate **Description** 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)}(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)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hjuh]hint unit}(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}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjvh]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjuubj)}(hRelease 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)}(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.}(hj/vhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj+vubjg)}(h@Both of the allocated units are released together automatically.h]h@Both of the allocated units are released together automatically.}(hj>vhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj+vubeh}(h]h ]h"]h$]h&]uh1jhj=vhMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjPchhhNhNubeh}(h]other-helper-macrosah ]h"]other helper macrosah$]h&]uh1hhj90hhhhhKubeh}(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_handlerjverror_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}(jovjlvj]j]j'j'j1j1j:;j7;j]j]j.j+j9j9jmPjjPjVfjSfj&j#jjjjjjjjjjjjjj j3j3j3j3jijijijij60j30jwjtj)j)j.0j+0jgvjdvj3j3j$Zj!ZjMcjJcj_vj\vu nametypes}(jovj]j'j1j:;j]j.j9jmPjVfj&jjjjjjjj3j3jijij60jwj)j.0jgvj3j$ZjMcj_vuh}(jlvhj]hj'hhhjijnjjj j jjjWj\j[j`jjjjj;j@j\jajjjSjXjjj!j!jQ$jV$j&j &j1j'j'j'j\+ja+j-j-j/j/j7;j1j1j1j 3j3j-5j25j9j9j]j=;jZ;j_;j+>j0>jAjAjCjCjFjFjJjJjMjMjEOjJOjRjRjTjTjVjVjXjXj5[j:[j+j]j9j]j^j^j_j_jbj"bjjfjofjjjjjljljojojsjsjujujxjxj4|j9|jjj΃jӃjʇjχj7j<jjjjjjj?jDjhjmjjjj!jjjjj1j6jwj|jjjjj$j)j$j)jjj"j'jjjjjojjjjjj jjj jjjj jjjjjjj j1j6jjjjjMjRjwj|j$j)jujzjjjGjLjjjjjFjKjjjjjjjjjj jj"jj$jjjGjLjjjjjQjVjjjjj5 j: j j j j j-j2jfjkjj"jjjjjBjGjjjjj<jAjjj!j!jR#jW#jV%j[%j(j(j+j+j-j-j0j0jS2jX2j3j3jh5jm5j7j7j9j9jjPj9j:j:jp;ju;j<j<j">j'>j{?j?j@j@j-Bj2BjCjCjsEjxEj"Gj'GjIjIjOKjTKjLjLjGNjLNjSfjpPjPjPjRjRjSjSj)Wj.WjZjZj^j^jbjbjdjdj#jYfjvfj{fjijijljljnjnjpjpj;rj@rjqtjvtjvjvjCxjHxjyjyj}j}jYj^j/j4jj1jjBj_jdjjjQjVjjjjjj jejjj3j8jjjjjGjLjj jj#jjj{jjCjHjîjȮjj!jujzjβjӲj:j?jjj<jAjjj޻jjjjjjGjLjjj*j/jjj,j1jjjj$jEjJjjjJjOjjjjj|jjrjwjjjrjwjjj3j8jj jjjjjjjjjjj/j4jjjjjjjjj jjjj j j j j jj-j2j jjjjjj/j4j3jj3j+jHjMj!j!j}$j$j'j'j*j*jf,jk,j.j.jij3jij3j3j3j!6j&6jK8jP8j;j;j)=j.=j>j>j@j@jAjAjmDjrDjEjEjFjGj@HjEHjJjJjKjKjNjNj9Pj>PjQjQjSjSjTVjYVj([j-[j^j^jBcjGcjfjfjgjgj30jijtjijjjjjkjkjmjmjojoj7rjjCjwj|jjjjj"j'j[j`jjjjjRjWjjjjjjj)jzjjj-j2jjjjjAjFjSjXjjjrjwjjjjjwj|jj j@jEjyj~jjjjjjj?jDjijnj j j j jLjQj*j/jTjYjjj jjKjPjjjjj#!j(!ja#jf#j%j%j'j'j+0j)j8)j=)j ,j,j.j.jdvj90j3jJ0jg0jl0j!Zj3j3j3j7j7j:j:j>j>jAjAjCjCjGFjLFjHjHjJjJjfMjkMjOjOjQjQjRTjWTjWjWjJcj'ZjDZjIZjB]jG]j^j^j`j`j\vjPcjmcjrcjdjdjIfjNfjgjgjKijPijijijkj kjmjmj#pj(pjmrjrrjsjsj ujuu 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.