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.chKkubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hKkubj)}(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"hKkubj@)}(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"hKkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj"hKkubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hKkhj 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.chKkhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj"hKkubeh}(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.chKohjubj)}(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.chKlhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hKlhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKlhj 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.chKnhjubjg)}(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.chKmhjubeh}(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.chKyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKyubj)}(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>uh1jhjhhhjhKyubj@)}(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?hjhhhjhKyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKyubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKyhjhhubjb)}(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.chKyhjRhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKyubeh}(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.chK}hjqubj)}(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.chKzhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKzhjubah}(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.chK|hjqubjg)}(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.chK{hjqubeh}(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.chM#ubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:hhhjLhM#ubj)}(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:hhhjLhM#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&]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:hhhjLhM#ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj6hhhjLhM#ubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhM#hj3hhubjb)}(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.chM#hjhhubah}(h]h ]h"]h$]h&]uh1jahj3hhhjLhM#ubeh}(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.chM$hj9ubj)}(hhh]jg)}(hthe PCM substreamh]hthe PCM substream}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM$hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM$hj6ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**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.chM2ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM2ubj)}(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>uh1jhjhhhjhM2ubj@)}(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?hjhhhjhM2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM2ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM2hjhhubjb)}(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.chM2hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM2ubeh}(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.chM6hjubj)}(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.chM3hjubj)}(hhh]jg)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM3hjubah}(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.chM5hjubjg)}(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.chM4hjubjg)}(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.chM7hjubjg)}(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.chM8hjubeh}(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.chM:ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-hhhj?hM:ubj)}(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?hM:ubj@)}(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?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)}(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.chM:hj^hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj?hM:ubeh}(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.chM>hj}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.chM;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;hjubj)}(h$``struct vm_area_struct *area`` VMA h](j)}(h``struct vm_area_struct *area``h]j)}(hjh]hstruct vm_area_struct *area}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM<hjubj)}(hhh]jg)}(hVMAh]hVMA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM<hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM<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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM>hj}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.chM=hj}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.chMAhj}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.chMUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhMUubj)}(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~hhhjhMUubj@)}(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~hhhjhMUubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhMUubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMUhjwhhubjb)}(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.chMUhjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhMUubeh}(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.chMYhjubj)}(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.chMVhjubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMVhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMVhjubj)}(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.chMWhj&ubj)}(hhh]jg)}(hVMAh]hVMA}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMWhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMWhjubeh}(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.chMYhjubjg)}(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.chMXhjubjg)}(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_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.cghKhjoubjg)}(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.chM0hjuubjg)}(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.chM1hjuubeh}(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.chMmubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvhhhjvhMmubj)}(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>uh1jhjvhhhjvhMmubj@)}(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?hjvhhhjvhMmubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjvhMmubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMmhjvhhubjb)}(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.chMmhjwhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjvhMmubeh}(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.chMqhjwubj)}(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.chMnhjwubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMnhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMnhjwubah}(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.chMphjwubjg)}(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.chMphjwubeh}(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.chMzubj)}(h h]h }(hj_xhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLxhhhj^xhMzubj)}(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^xhMzubj@)}(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^xhMzubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHxhhhj^xhMzubah}(h]jCxah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^xhMzhjExhhubjb)}(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.chMzhj yhhubah}(h]h ]h"]h$]h&]uh1jahjExhhhj^xhMzubeh}(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.chM|hjKyubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hjjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfyhM|hjgyubah}(h]h ]h"]h$]h&]uh1jhjKyubeh}(h]h ]h"]h$]h&]uh1jhjfyhM|hjHyubah}(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.chMhj,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.chMhj,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; u32 port_window_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 size ``port_window_size`` The length of the register area in words the data need to be accessed on the device side. It is only used for devices which is using an area instead of a single register to send/receive the data. Typically the DMA loops in this area in order to transfer the data.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.hhK>hjubh literal_block)}(hX.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; u32 port_window_size; };h]hX.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; u32 port_window_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.hhKMhjubj)}(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)}(h9``peripheral_size`` peripheral configuration buffer size h](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.hhKHhj܁ubj)}(hhh]jg)}(h$peripheral configuration buffer sizeh]h$peripheral configuration buffer size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhj܁ubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjubj)}(hX``port_window_size`` The length of the register area in words the data need to be accessed on the device side. It is only used for devices which is using an area instead of a single register to send/receive the data. Typically the DMA loops in this area in order to transfer the data.h](j)}(h``port_window_size``h]j)}(hjh]hport_window_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.hhKKhjubj)}(hhh]jg)}(hXThe length of the register area in words the data need to be accessed on the device side. It is only used for devices which is using an area instead of a single register to send/receive the data. Typically the DMA loops in this area in order to transfer the data.h]hXThe length of the register area in words the data need to be accessed on the device side. It is only used for devices which is using an area instead of a single register to send/receive the data. Typically the DMA loops in this area in order to transfer the data.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKIhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hKKhjubeh}(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}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKRubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqhhhjhKRubj)}(hsnd_dmaengine_pcm_configh]j%)}(hjoh]hsnd_dmaengine_pcm_config}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqhhhjhKRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhKRubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKRhjjhhubjb)}(hhh]jg)}(h*Configuration data for dmaengine based PCMh]h*Configuration data for dmaengine based PCM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKvhjhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjςjjςjjjuh1hhhhjYfhj}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}(hjۂhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjׂubh:}(hjׂhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjӂubj)}(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.hhK|hjӂubjg)}(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.hhKhjӂubj)}(hhh](j)}(h``prepare_slave_config`` Callback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback. h](j)}(h``prepare_slave_config``h]j)}(hj$h]hprepare_slave_config}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKyhjubj)}(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.}(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.hhKxhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKyhjubj)}(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.hhK{hjXubj)}(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.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshK{hjubj)}(hY``process`` Callback used to apply processing on samples transferred from/to user space. h](j)}(h ``process``h]j)}(hjh]hprocess}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK}hjubj)}(hhh]jg)}(hLCallback used to apply processing on samples transferred from/to user space.h]hLCallback used to apply processing on samples transferred from/to user space.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK}hjubj)}(h9``name`` Component name. If null, dev_name will be used. h](j)}(h``name``h]j)}(hj҃h]hname}(hjԃhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjЃubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK~hj̃ubj)}(hhh]jg)}(h/Component name. If null, dev_name will be used.h]h/Component name. If null, dev_name will be used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK~hjubah}(h]h ]h"]h$]h&]uh1jhj̃ubeh}(h]h ]h"]h$]h&]uh1jhjhK~hjubj)}(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.hhKhjubj)}(hhh]jg)}(hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI's DMA data.h]hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI’s DMA data.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hS``dma_dev`` If set, request DMA channel on this device rather than the DAI device. h](j)}(h ``dma_dev``h]j)}(hjEh]hdma_dev}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(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)}(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.hhKhj[ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjubj)}(h^``chan_names`` If set, these custom DMA channel names will be requested at registration time. h](j)}(h``chan_names``h]j)}(hjh]h chan_names}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.hhKhjyubj)}(hhh]jg)}(hNIf set, these custom DMA channel names will be requested at registration time.h]hNIf set, these custom DMA channel names will be requested at registration time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hA``pcm_hardware`` snd_pcm_hardware struct to be used for the PCM. h](j)}(h``pcm_hardware``h]j)}(hjh]h pcm_hardware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]jg)}(h/snd_pcm_hardware struct to be used for the PCM.h]h/snd_pcm_hardware struct to be used for the PCM.}(hj҄hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj΄hKhjτubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj΄hKhjubj)}(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.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjӂubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjYfhhhj}hNubjg)}(h**Note**h]j)}(hj5h]hNote}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(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.}(hjKhhhNhNubah}(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}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhhhhhK2ubh)}(hhh](h)}(hGeneral Control Interfaceh]hGeneral Control Interface}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hhhhhK5ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify (C function)c.snd_ctl_notifyhNtauh1hhj{hhhNhNubh)}(hhh](h)}(hZvoid snd_ctl_notify (struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h]h)}(hYvoid snd_ctl_notify(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_ctl_notifyh]j%)}(hsnd_ctl_notifyh]hsnd_ctl_notify}(hjƅhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj…ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(hF(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjޅubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjޅubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjȅsbc.snd_ctl_notifyasbuh1hhjޅ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)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hinth]hint}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjڅubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjÆhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjņmodnameN classnameNjj)}j]jc.snd_ctl_notifyasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjڅubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj#hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhj{hNhNubj)}(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)}(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.chKhjBubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjgh]hstruct snd_card *card}(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)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|hKhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hKhj^ubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj^ubj)}(hG``struct snd_ctl_elem_id *id`` the ctl element id to send notification h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjهh]hstruct snd_ctl_elem_id *id}(hjۇhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjׇubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjӇubj)}(hhh]jg)}(h'the ctl element id to send notificationh]h'the ctl element id to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjӇubeh}(h]h ]h"]h$]h&]uh1jhjhKhj^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.chKhjBubjg)}(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.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify_one (C function)c.snd_ctl_notify_onehNtauh1hhj{hhhNhNubh)}(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}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjghKubj)}(hsnd_ctl_notify_oneh]j%)}(hsnd_ctl_notify_oneh]hsnd_ctl_notify_one}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhjghKubj@)}(hX(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj|sbc.snd_ctl_notify_oneasbuh1hhjubj)}(h h]h }(hjԈhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]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 }(hj2hhhNhNubah}(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>uh1jEhjubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jЈc.snd_ctl_notify_oneasbuh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int ioffh](h)}(hunsignedh]hunsigned}(hjɉhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjʼnubj)}(h h]h }(hj׉hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʼnubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjʼnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjʼnubj%)}(hioffh]hioff}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjʼnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjUhhhjghKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjghKubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghKhjNhhubjb)}(hhh]jg)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj(hhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjghKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhj{hNhNubj)}(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)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjGubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(hjlh]hstruct snd_card *card}(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)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubj)}(hD``struct snd_kcontrol *kctl`` the pointer with the 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.chKhj؊ubj)}(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&]uh1jhj؊ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubj)}(hA``unsigned int ioff`` the additional offset to the control index h](j)}(h``unsigned int ioff``h]j)}(hjh]hunsigned int ioff}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h*the additional offset to the control indexh]h*the additional offset to the control index}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hKhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hKhjcubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjRh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjGubjg)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new (C function) c.snd_ctl_newhNtauh1hhj{hhhNhNubh)}(hhh](h)}(hpint snd_ctl_new (struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h]h)}(hoint snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(h snd_ctl_newh]j%)}(h snd_ctl_newh]h snd_ctl_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h`(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](jF)}(hstruct snd_kcontrol **kctlh](jL)}(hjOh]hstruct}(hjԋhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjЋubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjЋubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.snd_ctl_newasbuh1hhjЋubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjЋubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjЋubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjЋubj%)}(hkctlh]hkctl}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjЋubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̋ubjF)}(hunsigned int counth](h)}(hunsignedh]hunsigned}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hinth]hint}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̋ubjF)}(hunsigned int accessh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjΌhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(haccessh]haccess}(hj܌hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̋ubjF)}(hstruct snd_ctl_file *fileh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ctl_fileh]h snd_ctl_file}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.snd_ctl_newasbuh1hhjubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfileh]hfile}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj̋ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h0create a new control instance with some elementsh]h0create a new control instance with some elements}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjshhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hXR**Parameters** ``struct snd_kcontrol **kctl`` the pointer to store new control instance ``unsigned int count`` the number of elements in this control ``unsigned int access`` the default access flags for elements in this control ``struct snd_ctl_file *file`` given when locking these elements **Description** Allocates a memory object for a new control instance. The instance has elements as many as the given number (**count**). Each element has given access permissions (**access**). Each element is locked when **file** is given. **Return** 0 on success, error code on failureh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh](j)}(hI``struct snd_kcontrol **kctl`` the pointer to store new control instance h](j)}(h``struct snd_kcontrol **kctl``h]j)}(hjh]hstruct snd_kcontrol **kctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h)the pointer to store new control instanceh]h)the pointer to store new control instance}(hjЍhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj̍hKhj͍ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj̍hKhjubj)}(h>``unsigned int count`` the number of elements in this control h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]jg)}(h&the number of elements in this controlh]h&the number of elements in this control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hN``unsigned int access`` the default access flags for elements in this control h](j)}(h``unsigned int access``h]j)}(hj)h]hunsigned int access}(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)}(h5the default access flags for elements in this controlh]h5the default access flags for elements in this control}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hKhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhjubj)}(h@``struct snd_ctl_file *file`` given when locking these elements h](j)}(h``struct snd_ctl_file *file``h]j)}(hjbh]hstruct snd_ctl_file *file}(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:54: ./sound/core/control.chKhj\ubj)}(hhh]jg)}(h!given when locking these elementsh]h!given when locking these elements}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhKhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(hAllocates a memory object for a new control instance. The instance has elements as many as the given number (**count**). Each element has given access permissions (**access**). Each element is locked when **file** is given.h](hmAllocates a memory object for a new control instance. The instance has elements as many as the given number (}(hjhhhNhNubj)}(h **count**h]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.). Each element has given access permissions (}(hjhhhNhNubj)}(h **access**h]haccess}(hj͎hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh). Each element is locked when }(hjhhhNhNubj)}(h**file**h]hfile}(hjߎhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is given.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h#0 on success, error code on failureh]h#0 on success, error code on failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new1 (C function)c.snd_ctl_new1hNtauh1hhj{hhhNhNubh)}(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}(hj?hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj;hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjLhKubh)}(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_new1asbuh1hhj;hhhjLhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjLhKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;hhhjLhKubj)}(h snd_ctl_new1h]j%)}(hj|h]h snd_ctl_new1}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhjLhKubj@)}(h=(const struct snd_kcontrol_new *ncontrol, void *private_data)h](jF)}(h'const struct snd_kcontrol_new *ncontrolh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjƏhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjԏhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.snd_ctl_new1asbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hncontrolh]hncontrol}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(h private_datah]h private_data}(hjmhhhNhNubah}(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;hhhjLhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjLhKubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjLhKhj4hhubjb)}(hhh]jg)}(h+create a control instance from the templateh]h+create a control instance from the template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjhhubah}(h]h ]h"]h$]h&]uh1jahj4hhhjLhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hX**Parameters** ``const struct snd_kcontrol_new *ncontrol`` the initialization record ``void *private_data`` the private data to set **Description** Allocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it's assumed as READWRITE access. When the count field is 0, it's assumes as one. **Return** The pointer of the newly generated instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh](j)}(hF``const struct snd_kcontrol_new *ncontrol`` the initialization record h](j)}(h+``const struct snd_kcontrol_new *ncontrol``h]j)}(hjؐh]h'const struct snd_kcontrol_new *ncontrol}(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 initialization recordh]hthe initialization record}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjҐubeh}(h]h ]h"]h$]h&]uh1jhjhKhjϐubj)}(h/``void *private_data`` the private data to set h](j)}(h``void *private_data``h]j)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj ubj)}(hhh]jg)}(hthe private data to seth]hthe private data to set}(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&]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:54: ./sound/core/control.chKhjubjg)}(hAllocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it's assumed as READWRITE access. When the count field is 0, it's assumes as one.h]hAllocates a new struct snd_kcontrol instance and initialize from the given template. When the access field of ncontrol is 0, it’s assumed as READWRITE access. When the count field is 0, it’s assumes as one.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubjg)}(h **Return**h]j)}(hjsh]hReturn}(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.chMhjubjg)}(hDThe pointer of the newly generated instance, or ``NULL`` on failure.h](h0The pointer of the newly generated instance, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_free_one (C function)c.snd_ctl_free_onehNtauh1hhj{hhhNhNubh)}(hhh](h)}(h5void snd_ctl_free_one (struct snd_kcontrol *kcontrol)h]h)}(h4void snd_ctl_free_one(struct snd_kcontrol *kcontrol)h](h)}(hvoidh]hvoid}(hjʑhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjƑhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM<ubj)}(h h]h }(hjّhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjƑhhhjؑhM<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>uh1jhjƑhhhjؑhM<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}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_free_oneasbuh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjShhhNhNubah}(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?hjƑhhhjؑhM<ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj‘hhhjؑhM<ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjؑhM<hjhhubjb)}(hhh]jg)}(hrelease the control instanceh]hrelease the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM<hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjؑhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` the control instance **Description** Releases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don't call this after the control was added to the card.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM@hjubj)}(hhh]j)}(h7``struct snd_kcontrol *kcontrol`` the control instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj˒h]hstruct snd_kcontrol *kcontrol}(hj͒hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɒubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM=hjŒubj)}(hhh]jg)}(hthe control instanceh]hthe control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM=hjubah}(h]h ]h"]h$]h&]uh1jhjŒubeh}(h]h ]h"]h$]h&]uh1jhjhM=hj’ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjubjg)}(hReleases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don't call this after the control was added to the card.h]hReleases the control instance created via snd_ctl_new() or snd_ctl_new1(). Don’t call this after the control was added to the card.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM>hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_add (C function) c.snd_ctl_addhNtauh1hhj{hhhNhNubh)}(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}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGhhhjYhMubj)}(h snd_ctl_addh]j%)}(h snd_ctl_addh]h snd_ctl_add}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjGhhhjYhMubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjnsb c.snd_ctl_addasbuh1hhjubj)}(h h]h }(hjƓhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjԓhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j“ c.snd_ctl_addasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjGhhhjYhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjChhhjYhMubah}(h]j>ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhMhj@hhubjb)}(hhh]jg)}(h$add the control instance to the cardh]h$add the control instance to the card}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjxhhubah}(h]h ]h"]h$]h&]uh1jahj@hhhjYhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to add **Description** Adds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search. It frees automatically the control which cannot be added. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(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_kcontrol *kcontrol`` the control instance to add h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control instance to addh]hthe control instance to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]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)}(hj0h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.h]hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h9It frees automatically the control which cannot be added.h]h9It frees automatically the control which cannot be added.}(hjUhhhNhNubah}(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)}(hjfh]hReturn}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_replace (C function)c.snd_ctl_replacehNtauh1hhj{hhhNhNubh)}(hhh](h)}(h_int snd_ctl_replace (struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h]h)}(h^int snd_ctl_replace(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM)ubj)}(hsnd_ctl_replaceh]j%)}(hsnd_ctl_replaceh]hsnd_ctl_replace}(hj̕hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjȕubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM)ubj@)}(hK(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjΕsbc.snd_ctl_replaceasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j"c.snd_ctl_replaceasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hbool add_on_replaceh](h)}(hboolh]hbool}(hjʖhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjƖubj)}(h h]h }(hjؖhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjƖubj%)}(hadd_on_replaceh]hadd_on_replace}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjƖubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM)ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM)ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM)hjhhubjb)}(hhh]jg)}(h(replace the control instance of the cardh]h(replace the control instance of the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM)hj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM)ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhj{hNhNubj)}(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)}(hj2h]h Parameters}(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:54: ./sound/core/control.chM-hj,ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjQh]hstruct snd_card *card}(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 card instanceh]hthe card instance}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhM*hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM*hjHubj)}(hB``struct snd_kcontrol *kcontrol`` the control instance to replace h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjubj)}(hhh]jg)}(hthe control instance to replaceh]hthe control instance to replace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM+hjHubj)}(h=``bool add_on_replace`` add the control if not already added h](j)}(h``bool add_on_replace``h]j)}(hj×h]hbool add_on_replace}(hjŗhhhNhNubah}(h]h ]h"]h$]h&]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}(hjܗhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjؗhM,hjٗubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjؗhM,hjHubeh}(h]h ]h"]h$]h&]uh1jhj,ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM.hj,ubjg)}(hReplaces the given control. If the given control does not exist and the add_on_replace flag is set, the control is added. If the control exists, it is destroyed first.h]hReplaces the given control. If the given control does not exist and the add_on_replace flag is set, the control is added. If the control exists, it is destroyed first.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hj,ubjg)}(hEIt frees automatically the control which cannot be added or replaced.h]hEIt frees automatically the control which cannot be added or replaced.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM1hj,ubjg)}(h **Return**h]j)}(hj4h]hReturn}(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:54: ./sound/core/control.chM3hj,ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove (C function)c.snd_ctl_removehNtauh1hhj{hhhNhNubh)}(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}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuhhhe/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 hjuhhhjhM^ubj)}(hsnd_ctl_removeh]j%)}(hsnd_ctl_removeh]hsnd_ctl_remove}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhjhM^ubj@)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjØhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjԘhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjјubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj֘modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_removeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(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&]uh1jKhj$ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]jc.snd_ctl_removeasbuh1hhj$ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhjhM^ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjqhhhjhM^ubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM^hjnhhubjb)}(hhh]jg)}(h/remove the control from the card and release ith]h/remove the control from the card and release it}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM^hjhhubah}(h]h ]h"]h$]h&]uh1jahjnhhhjhM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to remove **Description** Removes the control from the card and then releases the instance. You don't need to call snd_ctl_free_one(). Passing NULL to **kcontrol** argument is allowed as noop. Note that this function takes card->controls_rwsem lock internally. **Return** 0 if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj˙h]h Parameters}(hj͙hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjəubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMbhjřubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM_hjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjubj)}(hA``struct snd_kcontrol *kcontrol`` the control instance to remove h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj#h]hstruct snd_kcontrol *kcontrol}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM`hjubj)}(hhh]jg)}(hthe control instance to removeh]hthe control instance to remove}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hM`hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM`hjubeh}(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.chMbhjřubjg)}(hRemoves the control from the card and then releases the instance. You don't need to call snd_ctl_free_one(). Passing NULL to **kcontrol** argument is allowed as noop.h](hRemoves the control from the card and then releases the instance. You don’t need to call snd_ctl_free_one(). Passing NULL to }(hjthhhNhNubj)}(h **kcontrol**h]hkcontrol}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubh argument is allowed as noop.}(hjthhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMahjřubjg)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhjřubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhhjřubjg)}(h50 if successful, or a negative error code on failure.h]h50 if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhjřubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove_id (C function)c.snd_ctl_remove_idhNtauh1hhj{hhhNhNubh)}(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$hjubah}(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}(hj(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_remove_idasbuh1hhj$ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jbc.snd_ctl_remove_idasbuh1hhjubj)}(h h]h }(hj֛hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMtubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMtubah}(h]jޚah ](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.chMthjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1hhhhj{hNhNubj)}(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)}(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.chMxhj7ubj)}(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&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMuhjVubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMuhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhMuhjSubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMvhjubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMvhjSubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(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.chMxhj7ubjg)}(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.chMwhj7ubjg)}(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.chMzhj7ubjg)}(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{hj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ctl_remove_user_ctl (C function)c.snd_ctl_remove_user_ctlhNtauh1hhj{hhhNhNubh)}(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}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjJhMubj)}(hsnd_ctl_remove_user_ctlh]j%)}(hsnd_ctl_remove_user_ctlh]hsnd_ctl_remove_user_ctl}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjJhMubj@)}(h7(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_ctl_file *fileh](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_ctl_fileh]h snd_ctl_file}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_ctl_remove_user_ctlasbuh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjŝhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hfileh]hfile}(hjҝhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(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]jc.snd_ctl_remove_user_ctlasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(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)}(h,remove and release the unlocked user controlh]h,remove and release the unlocked user control}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjihhubah}(h]h ]h"]h$]h&]uh1jahj1hhhjJhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hX3**Parameters** ``struct snd_ctl_file * file`` active control handle ``struct snd_ctl_elem_id *id`` the control id to remove **Description** Finds the control instance with the given id, removes it from the card list and releases it. **Return** 0 if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h5``struct snd_ctl_file * file`` active control handle h](j)}(h``struct snd_ctl_file * file``h]j)}(hjh]hstruct snd_ctl_file * file}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hactive control handleh]hactive control handle}(hjƞhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjžhMhjÞubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjžhMhjubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjh]hstruct snd_ctl_elem_id *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj!h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]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\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.}(hj7hhhNhNubah}(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)}(hjHh]hReturn}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ctl_activate_id (C function)c.snd_ctl_activate_idhNtauh1hhj{hhhNhNubh)}(hhh](h)}(hWint snd_ctl_activate_id (struct snd_card *card, struct snd_ctl_elem_id *id, int active)h]h)}(hVint snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_activate_idh]j%)}(hsnd_ctl_activate_idh]hsnd_ctl_activate_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h?(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjʟhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjƟubj)}(h h]h }(hjןhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjƟubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_activate_idasbuh1hhjƟubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjƟubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjƟubj%)}(hcardh]hcard}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjƟubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjŸubjF)}(hstruct snd_ctl_elem_id *idh](jL)}(hjOh]hstruct}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]jc.snd_ctl_activate_idasbuh1hhj8ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hidh]hid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjŸubjF)}(h int activeh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hactiveh]hactive}(hjȠhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjŸubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h/activate/inactivate the control of the given idh]h/activate/inactivate the control of the given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj{hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *id`` the control id to activate/inactivate ``int active`` non-zero to activate **Description** Finds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information. **Return** 0 if unchanged, 1 if changed, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(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.chMhj-ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhj*ubj)}(hE``struct snd_ctl_elem_id *id`` the control id to activate/inactivate h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjlh]hstruct snd_ctl_elem_id *id}(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)}(h%the control id to activate/inactivateh]h%the control id to activate/inactivate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhMhj*ubj)}(h$``int active`` non-zero to activate h](j)}(h``int active``h]j)}(hjh]h int active}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hnon-zero to activateh]hnon-zero to activate}(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:54: ./sound/core/control.chMhjubjg)}(hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.h]hFinds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(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.chMhjubjg)}(hB0 if unchanged, 1 if changed, or a negative error code on failure.h]hB0 if unchanged, 1 if changed, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename_id (C function)c.snd_ctl_rename_idhNtauh1hhj{hhhNhNubh)}(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}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhMubj)}(hsnd_ctl_rename_idh]j%)}(hsnd_ctl_rename_idh]hsnd_ctl_rename_id}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhMubj@)}(hW(struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjosbc.snd_ctl_rename_idasbuh1hhjubj)}(h h]h }(hjǢhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjբhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *src_idh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jâc.snd_ctl_rename_idasbuh1hhjubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hsrc_idh]hsrc_id}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_id *dst_idh](jL)}(hjOh]hstruct}(hjkhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jâc.snd_ctl_rename_idasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj%)}(hdst_idh]hdst_id}(hj£hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(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'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&]uh1jahjAhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hXR**Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *src_id`` the old id ``struct snd_ctl_elem_id *dst_id`` the new id **Description** Finds the control with the old id from the card, and replaces the id with the new one. The function tries to keep the already assigned numid while replacing the rest. Note that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj-h]hstruct snd_card *card}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj'ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhj$ubj)}(h.``struct snd_ctl_elem_id *src_id`` the old id h](j)}(h"``struct snd_ctl_elem_id *src_id``h]j)}(hjfh]hstruct snd_ctl_elem_id *src_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 old idh]h the old id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj$ubj)}(h.``struct snd_ctl_elem_id *dst_id`` the new id h](j)}(h"``struct snd_ctl_elem_id *dst_id``h]j)}(hjh]hstruct snd_ctl_elem_id *dst_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h the new idh]h the new id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj$ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjڤh]h Description}(hjܤhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjؤubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hVFinds the control with the old id from the card, and replaces the id with the new one.h]hVFinds the control with the old id from the card, and replaces the id with the new one.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hOThe function tries to keep the already assigned numid while replacing the rest.h]hOThe function tries to keep the already assigned numid while replacing the rest.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(hNote that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids.h]hNote that this function should be used only in the card initialization phase. Calling after the card instantiation may cause issues with user-space expecting persistent numids.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubjg)}(h **Return**h]j)}(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.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj5hhhNhNubah}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename (C function)c.snd_ctl_renamehNtauh1hhj{hhhNhNubh)}(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}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhjrhMubj)}(hsnd_ctl_renameh]j%)}(hsnd_ctl_renameh]hsnd_ctl_rename}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhjrhMubj@)}(hD(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_renameasbuh1hhjubj)}(h h]h }(hjߥhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *kctlh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]jۥc.snd_ctl_renameasbuh1hhjubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkctlh]hkctl}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hjǦhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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)}(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&]uh1jahjYhhhjrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj{hNhNubj)}(hX+**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kctl`` the control to rename ``const char *name`` the new name **Description** Renames the specified control on the card to the new name. Note that this function takes card->controls_rwsem lock internally.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj2h]hstruct snd_card *card}(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 card instanceh]hthe card instance}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj)ubj)}(h4``struct snd_kcontrol *kctl`` the control to rename h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjkh]hstruct snd_kcontrol *kctl}(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)}(hthe control to renameh]hthe control to rename}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhj)ubj)}(h"``const char *name`` the new name h](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h the new nameh]h the new name}(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)}(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: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.}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_numid (C function)c.snd_ctl_find_numidhNtauh1hhj{hhhNhNubh)}(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}(hj3hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhj@hM%ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jsnd_ctl_find_numidsbc.snd_ctl_find_numidasbuh1hhj/hhhj@hM%ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhj@hM%ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhj@hM%ubj)}(hsnd_ctl_find_numidh]j%)}(hjph]hsnd_ctl_find_numid}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhj@hM%ubj@)}(h+(struct snd_card *card, unsigned int numid)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj˨hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjȨubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjͨmodnameN classnameNjj)}j]jnc.snd_ctl_find_numidasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int numidh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnumidh]hnumid}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj/hhhj@hM%ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj+hhhj@hM%ubah}(h]j&ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@hM%hj(hhubjb)}(hhh]jg)}(h2find the control instance with the given number-idh]h2find the control instance with the given number-id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hj|hhubah}(h]h ]h"]h$]h&]uh1jahj(hhhj@hM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(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)}(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}(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 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)}(h/``unsigned int numid`` the number-id to search h](j)}(h``unsigned int numid``h]j)}(hjh]hunsigned int numid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM'hjubj)}(hhh]jg)}(hthe number-id to searchh]hthe number-id to search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(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:54: ./sound/core/control.chM)hjubjg)}(hBFinds the control instance with the given number-id from the card.h]hBFinds the control instance with the given number-id from the card.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM(hjubjg)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hjYhhhNhNubah}(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)}(hjjh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hjubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM+hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_id (C function)c.snd_ctl_find_idhNtauh1hhj{hhhNhNubh)}(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 }(hjϪhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjΪhM>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)}jsnd_ctl_find_idsbc.snd_ctl_find_idasbuh1hhjhhhjΪhM>ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjΪhM>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjΪhM>ubj)}(hsnd_ctl_find_idh]j%)}(hjh]hsnd_ctl_find_id}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjΪhM>ubj@)}(h9(struct snd_card *card, const struct snd_ctl_elem_id *id)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhj7ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubjF)}(h const struct snd_ctl_elem_id *idh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjƫhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjӫhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhjubj)}(h h]h }(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>uh1jEhj3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjΪhM>ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjΪhM>ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjΪhM>hjhhubjb)}(hhh]jg)}(h+find the control instance with the given idh]h+find the control instance with the given id}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM>hjDhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjΪhM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj{hNhNubj)}(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)}(hjih]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMBhjcubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM?hjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubj)}(h6``const struct snd_ctl_elem_id *id`` the id to search h](j)}(h$``const struct snd_ctl_elem_id *id``h]j)}(hjh]h const struct snd_ctl_elem_id *id}(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 id to searchh]hthe 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@hjubeh}(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&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMBhjcubjg)}(h;Finds the control instance with the given id from the card.h]h;Finds the control instance with the given id from the card.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMAhjcubjg)}(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.chMDhjcubjg)}(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:54: ./sound/core/control.chMFhjcubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjHhhhNhNubj)}(h``NULL``h]hNULL}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh if not.}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.c1hMDhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_ioctl (C function)c.snd_ctl_register_ioctlhNtauh1hhj{hhhNhNubh)}(hhh](h)}(h6int snd_ctl_register_ioctl (snd_kctl_ioctl_func_t fcn)h]h)}(h5int snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ctl_register_ioctlh]j%)}(hsnd_ctl_register_ioctlh]hsnd_ctl_register_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjɭhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjƭubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj˭modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_register_ioctlasbuh1hhj­ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj­ubj%)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj­ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhj~hhubjb)}(hhh]jg)}(h+register the device-specific control-ioctlsh]h+register the device-specific control-ioctls}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj~hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhj{hNhNubj)}(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)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj=ubj)}(hhh]j)}(h6``snd_kctl_ioctl_func_t fcn`` ioctl callback function h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjbh]hsnd_kctl_ioctl_func_t fcn}(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:54: ./sound/core/control.chMhj\ubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjwhMhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjYubah}(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)}(h9called from each device manager like pcm.c, hwdep.c, etc.h]h9called from each device manager like pcm.c, hwdep.c, etc.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.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)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjڮhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_register_ioctl_compat (C function)c.snd_ctl_register_ioctl_compathNtauh1hhj{hhhNhNubh)}(hhh](h)}(h=int snd_ctl_register_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(huh1jhjhhhjhM%ubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jj,sbc.snd_ctl_register_ioctl_compatasbuh1hhjBubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBubj%)}(hfcnh]hfcn}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubeh}(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)}(h8register the device-specific 32bit compat control-ioctlsh]h8register the device-specific 32bit compat control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjïh]h Parameters}(hjůhhhNhNubah}(h]h ]h"]h$]h&]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'hjܯubj)}(hhh]jg)}(hioctl callback functionh]hioctl callback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjܯubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjٯubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **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}(hj3hhhNhNubah}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_unregister_ioctl (C function)c.snd_ctl_unregister_ioctlhNtauh1hhj{hhhNhNubh)}(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}(hjbhhhNhNubah}(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 }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^hhhjphMIubj)}(hsnd_ctl_unregister_ioctlh]j%)}(hsnd_ctl_unregister_ioctlh]hsnd_ctl_unregister_ioctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj^hhhjphMIubj@)}(h(snd_kctl_ioctl_func_t fcn)h]jF)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j%)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_unregister_ioctlasbuh1hhjubj)}(h h]h }(hj°hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(hjаhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj^hhhjphMIubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjZhhhjphMIubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphMIhjWhhubjb)}(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&]uh1jahjWhhhjphMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMMhjubj)}(hhh]j)}(hD``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hj;h]hsnd_kctl_ioctl_func_t fcn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMJhj5ubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhMJhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMJhj2ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjvh]hReturn}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMLhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_unregister_ioctl_compat (C function)!c.snd_ctl_unregister_ioctl_compathNtauh1hhj{hhhNhNubh)}(hhh](h)}(h?int snd_ctl_unregister_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]h)}(h>int snd_ctl_unregister_ioctl_compat(snd_kctl_ioctl_func_t fcn)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMVubj)}(h h]h }(hjʱhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjɱhMVubj)}(hsnd_ctl_unregister_ioctl_compath]j%)}(hsnd_ctl_unregister_ioctl_compath]hsnd_ctl_unregister_ioctl_compat}(hjܱhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjرubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjɱhMVubj@)}(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)}jjޱsb!c.snd_ctl_unregister_ioctl_compatasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfcnh]hfcn}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjɱhMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjɱhMVubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjɱhMVhjhhubjb)}(hhh]jg)}(h;de-register the device-specific compat 32bit control-ioctlsh]h;de-register the device-specific compat 32bit control-ioctls}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMVhjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjɱhMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhj{hNhNubj)}(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)}(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.chMZhjoubj)}(hhh]j)}(hD``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjh]hsnd_kctl_ioctl_func_t fcn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMXhjubj)}(hhh]jg)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjoubjg)}(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.chMZhjoubjg)}(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.chMZhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_request_layer (C function)c.snd_ctl_request_layerhNtauh1hhj{hhhNhNubh)}(hhh](h)}(h3int snd_ctl_request_layer (const char *module_name)h]h)}(h2int snd_ctl_request_layer(const char *module_name)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hMubj)}(hsnd_ctl_request_layerh]j%)}(hsnd_ctl_request_layerh]hsnd_ctl_request_layer}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj"hMubj@)}(h(const char *module_name)h]jF)}(hconst char *module_nameh](jL)}(hj\h]hconst}(hjQhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubh)}(hcharh]hchar}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj%)}(h module_nameh]h module_name}(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"hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj"hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj"hMhj 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 hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj׳jj׳jjjuh1hhhhj{hNhNubj)}(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&]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)}(hI``const char *module_name`` Name of the kernel module (NULL == build-in) h](j)}(h``const char *module_name``h]j)}(hjh]hconst char *module_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(h,Name of the kernel module (NULL == build-in)h]h,Name of the kernel module (NULL == build-in)}(hjhhhNhNubah}(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 **Return**h]j)}(hj;h]hReturn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj۳ubjg)}(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}(hjQhhhNhNubah}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_layer (C function)c.snd_ctl_register_layerhNtauh1hhj{hhhNhNubh)}(hhh](h)}(huh1jhj|hhhjhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjʴhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_layer_opsh]hsnd_ctl_layer_ops}(hj۴hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjشubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjݴmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_register_layerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlopsh]hlops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj|hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjxhhhjhMubah}(h]jsah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjuhhubjb)}(hhh]jg)}(hregister new control layerh]hregister new control layer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jahjuhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhj{hNhNubj)}(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)}(hjbh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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)}(hjh]hstruct snd_ctl_layer_ops *lops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj{ubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubah}(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).}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_ctl_disconnect_layer (C function)c.snd_ctl_disconnect_layerhNtauh1hhj{hhhNhNubh)}(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}(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_disconnect_layerh]j%)}(hsnd_ctl_disconnect_layerh]hsnd_ctl_disconnect_layer}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h (struct snd_ctl_layer_ops *lops)h]jF)}(hstruct snd_ctl_layer_ops *lopsh](jL)}(hjOh]hstruct}(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubh)}(hhh]j%)}(hsnd_ctl_layer_opsh]hsnd_ctl_layer_ops}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj$sbc.snd_ctl_disconnect_layerasbuh1hhj:ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hlopsh]hlops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hdisconnect control layerh]hdisconnect control layer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjٶjjٶjjjuh1hhhhj{hNhNubj)}(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.chMhjݶubj)}(hhh]j)}(h7``struct snd_ctl_layer_ops *lops`` operation structure h](j)}(h"``struct snd_ctl_layer_ops *lops``h]j)}(hjh]hstruct snd_ctl_layer_ops *lops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]jg)}(hoperation structureh]hoperation structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]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.chMhjݶubjg)}(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).}(hjShhhNhNubah}(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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_ctl_boolean_mono_info (C function)c.snd_ctl_boolean_mono_infohNtauh1hhj{hhhNhNubh)}(hhh](h)}(h^int snd_ctl_boolean_mono_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h]int snd_ctl_boolean_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chML ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhML ubj)}(hsnd_ctl_boolean_mono_infoh]j%)}(hsnd_ctl_boolean_mono_infoh]hsnd_ctl_boolean_mono_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhjhML ubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj̷hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjݷhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjڷubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj߷modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_boolean_mono_infoasbuh1hhjubj)}(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)}(hstruct snd_ctl_elem_info *uinfoh](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%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jc.snd_ctl_boolean_mono_infoasbuh1hhj-ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(huinfoh]huinfo}(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~hhhjhML ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhML ubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhML hjwhhubjb)}(hhh]jg)}(hHHelper function for a standard boolean info callback with a mono channelh]hHHelper function for a standard boolean info callback with a mono channel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chML hjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhML ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjʸjjʸjjjuh1hhhhj{hNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` the kcontrol instance ``struct snd_ctl_elem_info *uinfo`` info to store **Description** This is a function that can be used as info callback for a standard boolean control with a single mono channel. **Return** Zero (always successful)h](jg)}(h**Parameters**h]j)}(hjԸh]h Parameters}(hjָhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjҸubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMP hjθubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMN hjubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMN hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMN hjubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj,h]hstruct snd_ctl_elem_info *uinfo}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMO hj&ubj)}(hhh]jg)}(h info to storeh]h info to store}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhMO hjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhMO hjubeh}(h]h ]h"]h$]h&]uh1jhjθubjg)}(h**Description**h]j)}(hjgh]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMQ hjθubjg)}(hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.h]hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMP hjθubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMS hjθubjg)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMT hjθubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_boolean_stereo_info (C function)c.snd_ctl_boolean_stereo_infohNtauh1hhj{hhhNhNubh)}(hhh](h)}(h`int snd_ctl_boolean_stereo_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h_int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjӹhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjϹhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjϹhhhjhMb ubj)}(hsnd_ctl_boolean_stereo_infoh]j%)}(hsnd_ctl_boolean_stereo_infoh]hsnd_ctl_boolean_stereo_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjϹhhhjhMb 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&]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 reftargetj0modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_boolean_stereo_infoasbuh1hhj ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jJc.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%)}(huinfoh]huinfo}(hjٺhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjϹhhhjhMb ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj˹hhhjhMb ubah}(h]jƹah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMb hjȹhhubjb)}(hhh]jg)}(hMHelper function for a standard boolean info callback with stereo two channelsh]hMHelper function for a standard boolean info callback with stereo two channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMb hjhhubah}(h]h ]h"]h$]h&]uh1jahjȹhhhjhMb ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj{hNhNubj)}(hX$**Parameters** ``struct snd_kcontrol *kcontrol`` the kcontrol instance ``struct snd_ctl_elem_info *uinfo`` info to store **Description** This is a function that can be used as info callback for a standard boolean control with stereo two channels. **Return** Zero (always successful)h](jg)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMf hjubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjDh]hstruct snd_kcontrol *kcontrol}(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.chMd hj>ubj)}(hhh]jg)}(hthe kcontrol instanceh]hthe kcontrol instance}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMd hjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMd hj;ubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj}h]hstruct snd_ctl_elem_info *uinfo}(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.chMe hjwubj)}(hhh]jg)}(h info to storeh]h info to store}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMe hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMe hj;ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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.}(hjλhhhNhNubah}(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)}(hj߻h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݻubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.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&]uh1jhj{hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_enum_info (C function)c.snd_ctl_enum_infohNtauh1hhj{hhhNhNubh)}(hhh](h)}(h|int snd_ctl_enum_info (struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h]h)}(h{int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h](h)}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMx ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj2hMx ubj)}(hsnd_ctl_enum_infoh]j%)}(hsnd_ctl_enum_infoh]hsnd_ctl_enum_info}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj2hMx 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}(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_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjGsbc.snd_ctl_enum_infoasbuh1hhj]ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj%)}(hinfoh]hinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hunsigned int channelsh](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%)}(hchannelsh]hchannels}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjϼubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hunsigned int itemsh](h)}(hunsignedh]hunsigned}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hinth]hint}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hitemsh]hitems}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hconst char *const names[]h](jL)}(hj\h]hconst}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqubj)}(h h]h }(hjƽhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj%)}(hnamesh]hnames}(hjԽhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubj)}(h[h]h[}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj)}(h]h]h]}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj2hMx ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj2hMx ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2hMx hjhhubjb)}(hhh]jg)}(h2fills the info structure for an enumerated controlh]h2fills the info structure for an enumerated control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMx hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj2hMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhj{hNhNubj)}(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)}(hj<h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM| hj6ubj)}(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&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMy hjUubj)}(hhh]jg)}(hthe structure to be filledh]hthe structure to be filled}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMy hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMy hjRubj)}(hJ``unsigned int channels`` the number of the control's channels; often one h](j)}(h``unsigned int channels``h]j)}(hjh]hunsigned int channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMz hjubj)}(hhh]jg)}(h/the number of the control's channels; often oneh]h1the number of the control’s channels; often one}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMz hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMz hjRubj)}(hP``unsigned int items`` the number of control values; also the size of **names** h](j)}(h``unsigned int items``h]j)}(hj;h]hunsigned int items}(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)}(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&]uh1jhjǾubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hjRubj)}(hR``const char *const names[]`` an array containing the names of all control values h](j)}(h``const char *const names[]``h]j)}(hjh]hconst char *const names[]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM| hjubj)}(hhh]jg)}(h3an array containing the names of all control valuesh]h3an array containing the names of all control values}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hM| hj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hM| hjRubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hjOh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM~ hj6ubjg)}(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 }(hjehhhNhNubj)}(h**info**h]hinfo}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh to their appropriate values. If the control’s accessibility is not the default (readable and writable), the caller has to fill }(hjehhhNhNubj)}(h**info->access**h]h info->access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM} hj6ubjg)}(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 hj6ubjg)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj{hhhNhNubeh}(h]general-control-interfaceah ]h"]general control interfaceah$]h&]uh1hhjjhhhhhK5ubh)}(hhh](h)}(hAC97 Codec APIh]hAC97 Codec API}(hjѿhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjοhhhhhK9ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_write (C function)c.snd_ac97_writehNtauh1hhjοhhhNhNubh)}(hhh](h)}(hUvoid snd_ac97_write (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]h)}(hTvoid snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_writeh]j%)}(hsnd_ac97_writeh]hsnd_ac97_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj1ubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_writeasbuh1hhj1ubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hj0hhhNhNubah}(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#write a value on the given registerh]h#write a value on the given register}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjWhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1hhhhjοhNhNubj)}(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)}(hj|h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjvubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjh]hunsigned short reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hj h]hunsigned short value}(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)}(hthe value to seth]hthe value to set}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubeh}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h**Description**h]j)}(hjHh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(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 hjvubjg)}(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.chMhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_read (C function)c.snd_ac97_readhNtauh1hhjοhhhNhNubh)}(hhh](h)}(hHunsigned short snd_ac97_read (struct snd_ac97 *ac97, unsigned short reg)h]h)}(hGunsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(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>uh1jhjhhhjhMubj@)}(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 }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjTubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hshorth]hshort}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(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$read a value from the given registerh]h$read a value from the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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)}(hj4h]hunsigned short reg}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM!hj.ubj)}(hhh]jg)}(hthe register to readh]hthe register to read}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM!hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM!hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjoh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM#hjubjg)}(hmReads a value from the given register. This will invoke the read callback directly after the register check.h]hmReads a value from the given register. This will invoke the read callback directly after the register check.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM"hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM%hjubjg)}(hThe read value.h]hThe read value.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM&hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_write_cache (C function)c.snd_ac97_write_cachehNtauh1hhjοhhhNhNubh)}(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 }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjsbc.snd_ac97_write_cacheasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(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}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM<hj:hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhjοhNhNubj)}(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}(hjahhhNhNubah}(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@hjYubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hj~h]hstruct snd_ac97 *ac97}(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 ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM=hjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjuubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjh]hunsigned short reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM>hjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM>hjuubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjuubeh}(h]h ]h"]h$]h&]uh1jhjYubjg)}(h**Description**h]j)}(hj+h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMAhjYubjg)}(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.}(hjAhhhNhNubah}(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@hjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_update (C function)c.snd_ac97_updatehNtauh1hhjοhhhNhNubh)}(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}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhl/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 hjlhhhj~hMRubj)}(hsnd_ac97_updateh]j%)}(hsnd_ac97_updateh]hsnd_ac97_update}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhj~hMRubj@)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_updateasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short regh](h)}(hunsignedh]hunsigned}(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>uh1jEhjubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhj~hMRubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhhj~hMRubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hMRhjehhubjb)}(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.chMRhjhhubah}(h]h ]h"]h$]h&]uh1jahjehhhj~hMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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.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.chMShj ubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj(hMShj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMShj ubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjLh]hunsigned short reg}(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.chMThjFubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMThjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMThj 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.chMUhjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMUhj 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&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMWhjubjg)}(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.chMVhjubjg)}(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.chMYhjubjg)}(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.chMZhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_update_bits (C function)c.snd_ac97_update_bitshNtauh1hhjοhhhNhNubh)}(hhh](h)}(hoint snd_ac97_update_bits (struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h]h)}(hnint snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](h)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(hhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMpubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhj:hMpubj)}(hsnd_ac97_update_bitsh]j%)}(hsnd_ac97_update_bitsh]hsnd_ac97_update_bits}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhj:hMpubj@)}(hV(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjeubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjOsbc.snd_ac97_update_bitsasbuh1hhjeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjeubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(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>uh1jEhjaubjF)}(hunsigned short 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)}(hshorth]hshort}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj(ubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj%)}(hmaskh]hmask}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubjF)}(hunsigned short valueh](h)}(hunsignedh]hunsigned}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjaubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhj:hMpubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj:hMpubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj:hMphj!hhubjb)}(hhh]jg)}(h%update the bits on the given registerh]h%update the bits on the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMphjhhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj:hMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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.chMthjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hj h]hstruct snd_ac97 *ac97}(hj"hhhNhNubah}(h]h ]h"]h$]h&]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.chMqhjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMqhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hMqhjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjYh]hunsigned short reg}(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.chMrhjSubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhMrhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMrhjubj)}(h/``unsigned short mask`` the bit-mask to change h](j)}(h``unsigned short mask``h]j)}(hjh]hunsigned short mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMshjubj)}(hhh]jg)}(hthe bit-mask to changeh]hthe bit-mask to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMshjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMshjubj)}(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.chMthjubj)}(hhh]jg)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMthjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(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.chMvhjubjg)}(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.chMuhjubjg)}(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.chMxhjubjg)}(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.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMyhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ac97_get_short_name (C function)c.snd_ac97_get_short_namehNtauh1hhjοhhhNhNubh)}(hhh](h)}(huh1jhjnhhhjhMMubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_get_short_nameasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjnhhhjhMMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjjhhhjhMMubah}(h]jeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMMhjghhubjb)}(hhh]jg)}(hretrieve codec nameh]hretrieve codec name}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMMhjWhhubah}(h]h ]h"]h$]h&]uh1jahjghhhjhMMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1hhhhjοhNhNubj)}(ht**Parameters** ``struct snd_ac97 *ac97`` the codec instance **Return** The short identifying name of the codec.h](jg)}(h**Parameters**h]j)}(hj|h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMQhjvubj)}(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.chMNhjubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMNhjubah}(h]h ]h"]h$]h&]uh1jhjvubjg)}(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.chMPhjvubjg)}(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.chMPhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_bus (C function)c.snd_ac97_bushNtauh1hhjοhhhNhNubh)}(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 }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj)hMubj)}(h snd_ac97_bush]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj)hMubj@)}(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}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jj>sbc.snd_ac97_busasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(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>uh1jEhjPubjF)}(h"const struct snd_ac97_bus_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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_bus_opsh]hsnd_ac97_bus_ops}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hopsh]hops}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubjF)}(hstruct snd_ac97_bus **rbush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_busasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrbush]hrbus}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjPubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj)hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj)hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj)hMhjhhubjb)}(hhh]jg)}(hcreate an AC97 bus componenth]hcreate an AC97 bus component}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjWhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj)hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjrjjrjjjuh1hhhhjοhNhNubj)}(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)}(hj|h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjvubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int num`` the bus number h](j)}(h ``int num``h]j)}(hjh]hint num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hthe bus numberh]hthe bus number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h?``const struct snd_ac97_bus_ops *ops`` the bus callbacks table h](j)}(h&``const struct snd_ac97_bus_ops *ops``h]j)}(hj h]h"const struct snd_ac97_bus_ops *ops}(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)}(hthe bus callbacks tableh]hthe bus callbacks table}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubj)}(hA``void *private_data`` private data pointer for the new instance h](j)}(h``void *private_data``h]j)}(hjFh]hvoid *private_data}(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)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&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhjubj)}(hO``struct snd_ac97_bus **rbus`` the pointer to store the new AC97 bus instance. h](j)}(h``struct snd_ac97_bus **rbus``h]j)}(hjh]hstruct snd_ac97_bus **rbus}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.chMhjyubj)}(hhh]jg)}(h/the pointer to store the new AC97 bus instance.h]h/the pointer to store the new AC97 bus instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjvubjg)}(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.chMhjvubjg)}(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.chMhjvubjg)}(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.chMhjvubjg)}(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.chMhjvubjg)}(h **Return**h]j)}(hj h]hReturn}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjvubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_mixer (C function)c.snd_ac97_mixerhNtauh1hhjοhhhNhNubh)}(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}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjahhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjshMubj)}(hsnd_ac97_mixerh]j%)}(hsnd_ac97_mixerh]hsnd_ac97_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjahhhjshMubj@)}(hW(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](jF)}(hstruct snd_ac97_bus *bush](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_ac97_template *templateh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97_templateh]hsnd_ac97_template}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htemplateh]htemplate}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ac97 **rac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrac97h]hrac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjahhhjshMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj]hhhjshMubah}(h]jXah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjshMhjZhhubjb)}(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&]uh1jahjZhhhjshMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhjοhNhNubj)}(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)}(hj4h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj.ubj)}(hhh](j)}(hE``struct snd_ac97_bus *bus`` the AC97 bus which codec is attached to h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hjSh]hstruct snd_ac97_bus *bus}(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)}(h'the AC97 bus which codec is attached toh]h'the AC97 bus which codec is attached to}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhMhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjJubj)}(hn``struct snd_ac97_template *template`` the template of ac97, including index, callbacks and the private data. h](j)}(h&``struct snd_ac97_template *template``h]j)}(hjh]h"struct snd_ac97_template *template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]jg)}(hFthe template of ac97, including index, callbacks and the private data.h]hFthe template of ac97, including index, callbacks and the private data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjJubj)}(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&]uh1jhjhMhjJubeh}(h]h ]h"]h$]h&]uh1jhj.ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj.ubjg)}(hCreates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure.h]hCreates an Codec97 component. An struct snd_ac97 instance is newly allocated and initialized from the template. The codec is then initialized by the standard procedure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj.ubjg)}(hiThe template must include the codec number (num) and address (addr), and the private data (private_data).h]hiThe template must include the codec number (num) and address (addr), and the private data (private_data).}(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.ubjg)}(h`The ac97 instance is registered as a low-level device, so you don't have to release it manually.h]hbThe ac97 instance is registered as a low-level device, so you don’t have to release it manually.}(hj5hhhNhNubah}(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)}(hjFh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj.ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ac97_update_power (C function)c.snd_ac97_update_powerhNtauh1hhjοhhhNhNubh)}(hhh](h)}(hGint snd_ac97_update_power (struct snd_ac97 *ac97, int reg, int powerup)h]h)}(hFint snd_ac97_update_power(struct snd_ac97 *ac97, int reg, int powerup)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMs ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMs ubj)}(hsnd_ac97_update_powerh]j%)}(hsnd_ac97_update_powerh]hsnd_ac97_update_power}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMs ubj@)}(h-(struct snd_ac97 *ac97, int reg, int powerup)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_update_powerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj!hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint regh](h)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj%)}(hregh]hreg}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int poweruph](h)}(hinth]hint}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hpoweruph]hpowerup}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMs ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMs ubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMs hjhhubjb)}(hhh]jg)}(hupdate the powerdown registerh]hupdate the powerdown register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMs hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMs ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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.chMw 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.chMt hjubj)}(hhh]jg)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMt hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMt hjubj)}(h<``int reg`` the rate register, e.g. AC97_PCM_FRONT_DAC_RATE h](j)}(h ``int reg``h]j)}(hj/h]hint reg}(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.chMu hj)ubj)}(hhh]jg)}(h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATEh]h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATE}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhMu hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhMu hjubj)}(h0``int powerup`` non-zero when power up the part Ah](j)}(h``int powerup``h]j)}(hjhh]h int powerup}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMv hjbubj)}(hhh]jg)}(hnon-zero when power up the parth]hnon-zero when power up the part}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hMv hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hMv hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMx 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.chMw 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.chMy hjubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMz hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_suspend (C function)c.snd_ac97_suspendhNtauh1hhjοhhhNhNubh)}(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&]uh1hhj hhhl/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 hj hhhjhM ubj)}(hsnd_ac97_suspendh]j%)}(hsnd_ac97_suspendh]hsnd_ac97_suspend}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjHubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j)}jj2sbc.snd_ac97_suspendasbuh1hhjHubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj%)}(hac97h]hac97}(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 hhhjhM 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&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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 hj ubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 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 hjubah}(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&]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.}(hjahhhNhNubah}(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&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_resume (C function)c.snd_ac97_resumehNtauh1hhjοhhhNhNubh)}(hhh](h)}(h,void snd_ac97_resume (struct snd_ac97 *ac97)h]h)}(h+void snd_ac97_resume(struct snd_ac97 *ac97)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_resumeh]j%)}(hsnd_ac97_resumeh]hsnd_ac97_resume}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_ac97 *ac97)h]jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_resumeasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hac97h]hac97}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h&General resume function for AC97 codech]h&General resume function for AC97 codec}(hjPhhhNhNubah}(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 hjMhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1hhhhjοhNhNubj)}(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)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(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 hjlubj)}(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&]uh1jhjlubjg)}(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 hjlubjg)}(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 hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ac97_tune_hardware (C function)c.snd_ac97_tune_hardwarehNtauh1hhjοhhhNhNubh)}(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&]uh1hhj hhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhM ubj)}(hsnd_ac97_tune_hardwareh]j%)}(hsnd_ac97_tune_hardwareh]hsnd_ac97_tune_hardware}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhM ubj@)}(hM(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](jF)}(hstruct snd_ac97 *ac97h](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_ac97h]hsnd_ac97}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jj4sbc.snd_ac97_tune_hardwareasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(hconst struct ac97_quirk *quirkh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h ac97_quirkh]h ac97_quirk}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_tune_hardwareasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hquirkh]hquirk}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubjF)}(hconst char *overrideh](jL)}(hj\h]hconst}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hcharh]hchar}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj%)}(hoverrideh]hoverride}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(htune up the hardwareh]htune up the hardware}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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)}(hj3h]hconst struct ac97_quirk *quirk}(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)}(h quirk listh]h quirk list}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhM hjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhM hjubj)}(hO``const char *override`` explicit quirk value (overrides the list if non-NULL) h](j)}(h``const char *override``h]j)}(hjlh]hconst char *override}(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.chM hjfubj)}(hhh]jg)}(h5explicit quirk value (overrides the list if non-NULL)h]h5explicit quirk value (overrides the list if non-NULL)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(hDo some workaround for each pci device, such as renaming of the headphone (true line-out) control as "Master". The quirk-list must be terminated with a zero-filled entry.h]hDo some workaround for each pci device, such as renaming of the headphone (true line-out) control as “Master”. The quirk-list must be terminated with a zero-filled entry.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_set_rate (C function)c.snd_ac97_set_ratehNtauh1hhjοhhhNhNubh)}(hhh](h)}(hIint snd_ac97_set_rate (struct snd_ac97 *ac97, int reg, unsigned int rate)h]h)}(hHint snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj!hKubj)}(hsnd_ac97_set_rateh]j%)}(hsnd_ac97_set_rateh]hsnd_ac97_set_rate}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj!hKubj@)}(h3(struct snd_ac97 *ac97, int reg, unsigned int rate)h](jF)}(hstruct snd_ac97 *ac97h](jL)}(hjOh]hstruct}(hjPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubh)}(hhh]j%)}(hsnd_ac97h]hsnd_ac97}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj6sbc.snd_ac97_set_rateasbuh1hhjLubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj%)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubjF)}(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>uh1jEhjHubjF)}(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 }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hrateh]hrate}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjHubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj!hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj!hKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj!hKhjhhubjb)}(hhh]jg)}(h*change the rate of the given input/output.h]h*change the rate of the given input/output.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj!hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjοhNhNubj)}(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)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjuubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]jg)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h#``int reg`` the register to change h](j)}(h ``int reg``h]j)}(hjh]hint reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]jg)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h-``unsigned int rate`` the sample rate to set h](j)}(h``unsigned int rate``h]j)}(hj h]hunsigned int rate}(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.chKhjubj)}(hhh]jg)}(hthe sample rate to seth]hthe sample rate to set}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hKhjubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjGh]h Description}(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.chKhjuubjg)}(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.chKhjuubjg)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjuubjg)}(h **Return**h]j)}(hj}h]hReturn}(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.chKhjuubjg)}(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.chKhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ac97_pcm_assign (C function)c.snd_ac97_pcm_assignhNtauh1hhjοhhhNhNubh)}(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 }(hj hhhNhNubah}(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 }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbush]hbus}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short pcms_counth](h)}(hunsignedh]hunsigned}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(h pcms_counth]h pcms_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(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]j9c.snd_ac97_pcm_assignasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmsh]hpcms}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&assign AC97 slots to given PCM streamsh]h&assign AC97 slots to given PCM streams}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj[hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhjοhNhNubj)}(hX**Parameters** ``struct snd_ac97_bus *bus`` the ac97 bus instance ``unsigned short pcms_count`` count of PCMs to be assigned ``const struct ac97_pcm *pcms`` PCMs to be assigned **Description** It assigns available AC97 slots for given PCMs. If none or only some slots are available, pcm->xxx.slots and pcm->xxx.rslots[] members are reduced and might be zero. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.chMhjzubj)}(hhh](j)}(h3``struct snd_ac97_bus *bus`` the ac97 bus instance h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hjh]hstruct snd_ac97_bus *bus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hthe ac97 bus instanceh]hthe ac97 bus instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h;``unsigned short pcms_count`` count of PCMs to be assigned h](j)}(h``unsigned short pcms_count``h]j)}(hjh]hunsigned short pcms_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(hcount of PCMs to be assignedh]hcount of PCMs to be assigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``const struct ac97_pcm *pcms`` PCMs to be assigned h](j)}(h``const struct ac97_pcm *pcms``h]j)}(hjh]hconst struct ac97_pcm *pcms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubj)}(hhh]jg)}(hPCMs to be assignedh]hPCMs to be assigned}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hMhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhjubeh}(h]h ]h"]h$]h&]uh1jhjzubjg)}(h**Description**h]j)}(hjLh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjzubjg)}(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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjzubjg)}(h **Return**h]j)}(hjsh]hReturn}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjzubjg)}(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.chMhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_open (C function)c.snd_ac97_pcm_openhNtauh1hhjοhhhNhNubh)}(hhh](h)}(hlint snd_ac97_pcm_open (struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h]h)}(hkint snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_ac97_pcm_openh]j%)}(hsnd_ac97_pcm_openh]hsnd_ac97_pcm_open}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hV(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](jF)}(hstruct ac97_pcm *pcmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hpcmh]hpcm}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int rateh](h)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjcubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjcubj%)}(hrateh]hrate}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum ac97_pcm_cfg cfgh](jL)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h ac97_pcm_cfgh]h ac97_pcm_cfg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j/c.snd_ac97_pcm_openasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hcfgh]hcfg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short slotsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hshorth]hshort}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hslotsh]hslots}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hopens the given AC97 pcmh]hopens the given AC97 pcm}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM hjzhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(hX**Parameters** ``struct ac97_pcm *pcm`` the ac97 pcm instance ``unsigned int rate`` rate in Hz, if codec does not support VRA, this value must be 48000Hz ``enum ac97_pcm_cfg cfg`` output stream characteristics ``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm **Description** It locks the specified slots and sets the given rate to AC97 registers. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM$hjubj)}(hhh](j)}(h/``struct ac97_pcm *pcm`` the ac97 pcm instance h](j)}(h``struct ac97_pcm *pcm``h]j)}(hjh]hstruct ac97_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM!hjubj)}(hhh]jg)}(hthe ac97 pcm instanceh]hthe ac97 pcm instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM!hjubj)}(h\``unsigned int rate`` rate in Hz, if codec does not support VRA, this value must be 48000Hz h](j)}(h``unsigned int rate``h]j)}(hjh]hunsigned int rate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM"hjubj)}(hhh]jg)}(hErate in Hz, if codec does not support VRA, this value must be 48000Hzh]hErate in Hz, if codec does not support VRA, this value must be 48000Hz}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM"hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM"hjubj)}(h8``enum ac97_pcm_cfg cfg`` output stream characteristics h](j)}(h``enum ac97_pcm_cfg cfg``h]j)}(hj0h]henum ac97_pcm_cfg cfg}(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)}(houtput stream characteristicsh]houtput stream characteristics}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhM#hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM#hjubj)}(hX``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm h](j)}(h``unsigned short slots``h]j)}(hjih]hunsigned short slots}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(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$hjcubj)}(hhh]jg)}(h>a subset of allocated slots (snd_ac97_pcm_assign) for this pcmh]h>a subset of allocated slots (snd_ac97_pcm_assign) for this pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hM$hjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(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&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM&hjubjg)}(hGIt locks the specified slots and sets the given rate to AC97 registers.h]hGIt locks the specified slots and sets the given rate to AC97 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM%hjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM'hjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM(hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_close (C function)c.snd_ac97_pcm_closehNtauh1hhjοhhhNhNubh)}(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&]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_closeh]j%)}(hsnd_ac97_pcm_closeh]hsnd_ac97_pcm_close}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhM|ubj@)}(h(struct ac97_pcm *pcm)h]jF)}(hstruct ac97_pcm *pcmh](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hac97_pcmh]hac97_pcm}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sbc.snd_ac97_pcm_closeasbuh1hhjIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubah}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhM|ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM|ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM|hjhhubjb)}(hhh]jg)}(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.chM|hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(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.chM}hj ubj)}(hhh]jg)}(hthe ac97 pcm instanceh]hthe ac97 pcm 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}hjubah}(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&]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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM~hjubjg)}(h **Return**h]j)}(hjsh]hReturn}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjοhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_ac97_pcm_double_rate_rules (C function) c.snd_ac97_pcm_double_rate_ruleshNtauh1hhjοhhhNhNubh)}(hhh](h)}(hDint snd_ac97_pcm_double_rate_rules (struct snd_pcm_runtime *runtime)h]h)}(hCint snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_ac97_pcm_double_rate_rulesh]j%)}(hsnd_ac97_pcm_double_rate_rulesh]hsnd_ac97_pcm_double_rate_rules}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_pcm_runtime *runtime)h]jF)}(hstruct snd_pcm_runtime *runtimeh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.snd_ac97_pcm_double_rate_rulesasbuh1hhjubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hruntimeh]hruntime}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hset double rate constraintsh]hset double rate constraints}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjuhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjοhNhNubj)}(hX***Parameters** ``struct snd_pcm_runtime *runtime`` the runtime of the ac97 front playback pcm **Description** Installs the hardware constraint rules to prevent using double rates and more than two channels at the same time. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]j)}(hO``struct snd_pcm_runtime *runtime`` the runtime of the ac97 front playback pcm h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]jg)}(h*the runtime of the ac97 front playback pcmh]h*the runtime of the ac97 front playback pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubjg)}(hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.h]hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.}(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)}(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.chMhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj1hhhNhNubah}(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&]uh1jhjοhhhNhNubeh}(h]ac97-codec-apiah ]h"]ac97 codec apiah$]h&]uh1hhjjhhhhhK9ubh)}(hhh](h)}(hVirtual Master Control APIh]hVirtual Master Control API}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhhhhhK>ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_add_followers (C function)c.snd_ctl_add_followershNtauh1hhjOhhhNhNubh)}(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}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuhhhe/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 hjuhhhjhMubj)}(hsnd_ctl_add_followersh]j%)}(hsnd_ctl_add_followersh]hsnd_ctl_add_followers}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhjhMubj@)}(hM(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hj(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]jc.snd_ctl_add_followersasbuh1hhj$ubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *const *listh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjuhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjqhhhjhMubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjnhhubjb)}(hhh]jg)}(h!add multiple followers to vmasterh]h!add multiple followers to vmaster}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj+hhubah}(h]h ]h"]h$]h&]uh1jahjnhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhjOhNhNubj)}(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)}(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:63: ./sound/core/vmaster.chM hjJubj)}(hhh](j)}(h(``struct snd_card *card`` 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:63: ./sound/core/vmaster.chMhjiubj)}(hhh]jg)}(h card instanceh]h card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(hC``struct snd_kcontrol *master`` the target vmaster kcontrol object h](j)}(h``struct snd_kcontrol *master``h]j)}(hjh]hstruct snd_kcontrol *master}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h"the target vmaster kcontrol objecth]h"the target vmaster kcontrol object}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(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&]uh1jhjhMhjfubeh}(h]h ]h"]h$]h&]uh1jhjJubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM!hjJubjg)}(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.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_make_virtual_master (C function)c.snd_ctl_make_virtual_masterhNtauh1hhjOhhhNhNubh)}(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}(hjahhhNhNubah}(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 }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhjnhMubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_make_virtual_mastersbc.snd_ctl_make_virtual_masterasbuh1hhj]hhhjnhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhjnhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]hhhjnhMubj)}(hsnd_ctl_make_virtual_masterh]j%)}(hjh]hsnd_ctl_make_virtual_master}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhjnhMubj@)}(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 }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hunsignedh]hunsigned}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htlvh]htlv}(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]hhhjnhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjnhMubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjnhMhjVhhubjb)}(hhh]jg)}(hCreate a virtual master controlh]hCreate a virtual master control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjVhhhjnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjOhNhNubj)}(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)}(hj!h]hconst unsigned int *tlv}(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:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h)optional TLV int array for dB informationh]h)optional TLV int array for dB information}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hMhj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj\h]h Description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]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}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjCubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjgmodnameN classnameNjj)}j]j)}jj-sbc.snd_ctl_add_vmaster_hookasbuh1hhjCubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(h%void (*hook)(void *private_data, int)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h(h]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhookh]hhook}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h)h]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(h,h]h,}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(hjh]h)}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj?ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hAdd a 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&]jjjjjjjjjuh1hhhhjOhNhNubj)}(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}(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: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&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(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 (*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)}(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)}(hthe hook functionh]hthe hook function}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjubj)}(h<``void *private_data`` the private_data pointer to be saved h](j)}(h``void *private_data``h]j)}(hjh]hvoid *private_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(h$the private_data pointer to be savedh]h$the private_data pointer to be saved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubjg)}(hnAdds the given hook to the vmaster control element so that it's called at each time when the value is changed.h]hpAdds the given hook to the vmaster control element so that it’s called at each time when the value is changed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubjg)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_sync_vmaster (C function)c.snd_ctl_sync_vmasterhNtauh1hhjOhhhNhNubh)}(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}(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 }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjMhMubj)}(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>uh1jhj;hhhjMhMubj@)}(h/(struct snd_kcontrol *kcontrol, bool hook_only)h](jF)}(hstruct snd_kcontrol *kcontrolh](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]j)}jjbsbc.snd_ctl_sync_vmasterasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hbool hook_onlyh](h)}(hj̖h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h hook_onlyh]h hook_only}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhjMhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjMhMubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhMhj4hhubjb)}(hhh]jg)}(h#Sync the vmaster followers and hookh]h#Sync the vmaster followers and hook}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj0hhubah}(h]h ]h"]h$]h&]uh1jahj4hhhjMhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjOhNhNubj)}(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)}(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:63: ./sound/core/vmaster.chMhjOubj)}(hhh](j)}(h7``struct snd_kcontrol *kcontrol`` vmaster kctl element h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjth]hstruct snd_kcontrol *kcontrol}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjnubj)}(hhh]jg)}(hvmaster kctl elementh]hvmaster kctl element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h&``bool hook_only`` sync only the hook h](j)}(h``bool hook_only``h]j)}(hjh]hbool hook_only}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]jg)}(hsync only the hookh]hsync only the hook}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubeh}(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:63: ./sound/core/vmaster.chMhjOubjg)}(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.chMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_apply_vmaster_followers (C function)!c.snd_ctl_apply_vmaster_followershNtauh1hhjOhhhNhNubh)}(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}(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 }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjMhMubj)}(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>uh1jhj;hhhjMhMubj@)}(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}(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]j)}jjbsb!c.snd_ctl_apply_vmaster_followersasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(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(}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfunch]hfunc}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hjOh]hstruct}(hjLhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlmodnameN classnameNjj)}j]j!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h vfollowerh]h vfollower}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjRh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j!c.snd_ctl_apply_vmaster_followersasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(hj#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjRh]h,}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hvoidh]hvoid}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hargh]harg}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(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>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhjMhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjMhMubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhMhj4hhubjb)}(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&]uh1jahj4hhhjMhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjOhNhNubj)}(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 hj ubj)}(hhh](j)}(h3``struct snd_kcontrol *kctl`` vmaster kctl element h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hj/h]hstruct snd_kcontrol *kctl}(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)}(hvmaster kctl elementh]hvmaster kctl element}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjDhM hjEubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjDhM hj&ubj)}(hl``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)`` function to apply h](j)}(hY``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)``h]j)}(hjhh]hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, 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)}(hfunction to applyh]hfunction to apply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hM hj~ubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj}hM hj&ubj)}(h)``void *arg`` optional function argument h](j)}(h ``void *arg``h]j)}(hjh]h void *arg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj)}(hhh]jg)}(hoptional function argumenth]hoptional function argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj&ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hj ubjg)}(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 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:63: ./sound/core/vmaster.chMhj ubjg)}(h)0 if successful, or a negative error codeh]h)0 if successful, or a negative error code}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_find_id_mixer (C function)c.snd_ctl_find_id_mixerhNtauh1hhjOhhhNhNubh)}(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}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjghKubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jsnd_ctl_find_id_mixersbc.snd_ctl_find_id_mixerasbuh1hhjVhhhjghKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjghKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhjghKubj)}(hsnd_ctl_find_id_mixerh]j%)}(hjh]hsnd_ctl_find_id_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVhhhjghKubj@)}(h)(struct snd_card *card, const char *name)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_find_id_mixerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hcharh]hchar}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj@ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjVhhhjghKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjghKubah}(h]jMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjghKhjOhhubjb)}(hhh]jg)}(h4find the control instance with the given name stringh]h4find the control instance with the given name string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjghKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjOhNhNubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h%``const char *name`` the name string h](j)}(h``const char *name``h]j)}(hj,h]hconst char *name}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj&ubj)}(hhh]jg)}(hthe name stringh]hthe name string}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjubeh}(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:64: ./include/sound/control.hhKhjubjg)}(hpFinds the control instance with the given name and **SNDRV_CTL_ELEM_IFACE_MIXER**. Other fields are set to zero.h](h3Finds the control instance with the given name and }(hj}hhhNhNubj)}(h**SNDRV_CTL_ELEM_IFACE_MIXER**h]hSNDRV_CTL_ELEM_IFACE_MIXER}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubh. Other fields are set to zero.}(hj}hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h.This is merely a wrapper to snd_ctl_find_id().h]h.This is merely a wrapper to snd_ctl_find_id().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubjg)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if not.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_add_follower (C function)c.snd_ctl_add_followerhNtauh1hhjOhhhNhNubh)}(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}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(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}(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_add_followerasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubjF)}(hstruct snd_kcontrol *followerh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j}c.snd_ctl_add_followerasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hfollowerh]hfollower}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj3hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjOhNhNubj)}(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)}(hjXh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjRubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hjwh]hstruct snd_kcontrol *master}(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)}(hvmaster elementh]hvmaster element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhKhjnubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hjh]hstruct snd_kcontrol *follower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjnubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjRubjg)}(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.hhKhjRubjg)}(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.hhKhjRubjg)}(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.hhKhjRubjg)}(h **Return**h]j)}(hj0h]hReturn}(hj2hhhNhNubah}(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.hhKhjRubjg)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_add_follower_uncached (C function)c.snd_ctl_add_follower_uncachedhNtauh1hhjOhhhNhNubh)}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqhhhjhM ubj)}(hsnd_ctl_add_follower_uncachedh]j%)}(hsnd_ctl_add_follower_uncachedh]hsnd_ctl_add_follower_uncached}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqhhhjhM ubj@)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jF)}(hstruct snd_kcontrol *masterh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_follower_uncachedasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hmasterh]hmaster}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_kcontrol *followerh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jc.snd_ctl_add_follower_uncachedasbuh1hhj ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hfollowerh]hfollower}(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?hjqhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhM ubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjjhhubjb)}(hhh]jg)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjOhNhNubj)}(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}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjubj)}(hhh]jg)}(hfollower element to addh]hfollower element to add}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hM hj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hM hjubeh}(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: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.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(hWhen the control peeks the hardware values directly and the value can be changed by other means than the put callback of the element, this function should be used to keep the value always up-to-date.h]hWhen the control peeks the hardware values directly and the value can be changed by other means than the put callback of the element, this function should be used to keep the value always up-to-date.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubjg)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjOhhhNhNubeh}(h]virtual-master-control-apiah ]h"]virtual master control apiah$]h&]uh1hhjjhhhhhK>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}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(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}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jj*sbc.snd_rawmidi_receiveasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hconst unsigned char *bufferh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(h int counth](h)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj%)}(hcounth]hcount}(hjKhhhNhNubah}(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?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}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnhjrhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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)}(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.chMrhjubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMohjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMohjubj)}(h3``const unsigned char *buffer`` the buffer pointer h](j)}(h``const unsigned char *buffer``h]j)}(hjh]hconst unsigned char *buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMphjubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMphjubj)}(h$``int count`` the data size to read h](j)}(h ``int count``h]j)}(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.chMqhj"ubj)}(hhh]jg)}(hthe data size to readh]hthe data size to read}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=hMqhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hMqhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjch]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshjubjg)}(h(Reads the data from the internal buffer.h]h(Reads the data from the internal buffer.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhjubjg)}(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.chMthjubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMuhjubeh}(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}(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_transmit_emptyasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?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}(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&]uh1jahjhhhjhM.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream **Return** 1 if the internal output buffer is empty, 0 if not.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM2hjubj)}(hhh]j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM/hjubj)}(hhh]jg)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM/hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM/hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(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.chM1hjubjg)}(h31 if the internal output buffer is empty, 0 if not.h]h31 if the internal output buffer is empty, 0 if not.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_rawmidi_transmit_peek (C function)c.snd_rawmidi_transmit_peekhNtauh1hhjhhhNhNubh)}(hhh](h)}(hiint snd_rawmidi_transmit_peek (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]h)}(hhint snd_rawmidi_transmit_peek(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhe/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 hjLhhhj^hMxubj)}(hsnd_rawmidi_transmit_peekh]j%)}(hsnd_rawmidi_transmit_peekh]hsnd_rawmidi_transmit_peek}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhj^hMxubj@)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)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)}jjssbc.snd_rawmidi_transmit_peekasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned char *bufferh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(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*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbufferh]hbuffer}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int counth](h)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj%)}(hcounth]hcount}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhj^hMxubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj^hMxubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMxhjEhhubjb)}(hhh]jg)}(h"copy data from the internal bufferh]h"copy data from the internal buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMxhjhhubah}(h]h ]h"]h$]h&]uh1jahjEhhhj^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}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMzhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMzhjubj)}(h$``int count`` data size to transfer h](j)}(h ``int count``h]j)}(hjVh]h int count}(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.chM{hjPubj)}(hhh]jg)}(hdata size to transferh]hdata size to transfer}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhM{hjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhM{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@Copies data from the internal output buffer to the given buffer.h]h@Copies data from the internal output buffer to the given buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM|hjubjg)}(hCall this in the interrupt handler when the midi output is ready, and call snd_rawmidi_transmit_ack() after the transmission is finished.h]hCall this in the interrupt handler when the midi output is ready, and call snd_rawmidi_transmit_ack() after the transmission is finished.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.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}(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_transmit_ackh]j%)}(hsnd_rawmidi_transmit_ackh]hsnd_rawmidi_transmit_ack}(hj- hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj) ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hMubj@)}(h4(struct snd_rawmidi_substream *substream, int count)h](jF)}(h'struct snd_rawmidi_substream *substreamh](jL)}(hjOh]hstruct}(hjI hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjE ubj)}(h h]h }(hjV hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjE ubh)}(hhh]j%)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjg hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetji modnameN classnameNjj)}j]j)}jj/ sbc.snd_rawmidi_transmit_ackasbuh1hhjE ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjE ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE ubj%)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjE ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjA 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>uh1jEhjA ubeh}(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)}(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&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(hXt**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream ``int count`` the transferred count **Description** Advances the hardware pointer for the internal output buffer with the given size and updates the condition. Call after the transmission is finished. **Return** The advanced size if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj# h]h Parameters}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj! ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjB h]h'struct snd_rawmidi_substream *substream}(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 rawmidi substreamh]hthe rawmidi substream}(hj[ hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjW hMhjX ubah}(h]h ]h"]h$]h&]uh1jhj< ubeh}(h]h ]h"]h$]h&]uh1jhjW hMhj9 ubj)}(h$``int count`` the transferred count h](j)}(h ``int count``h]j)}(hj{ h]h int count}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhju ubj)}(hhh]jg)}(hthe transferred counth]hthe transferred count}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhju ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj9 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 }(hj1 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj0 hMubj)}(hsnd_rawmidi_transmith]j%)}(hsnd_rawmidi_transmith]hsnd_rawmidi_transmit}(hjC hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj? ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj0 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 }(hjl 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$hjz ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjE sbc.snd_rawmidi_transmitasbuh1hhj[ 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 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>uh1jEhjW 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}(hjK hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+ ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjW ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhj0 hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj hhhj0 hMubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0 hMhj hhubjb)}(hhh]jg)}(h"copy from the buffer to the deviceh]h"copy from the buffer to the device}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjr hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj0 hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj 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.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-``unsigned char *buffer`` the buffer pointer h](j)}(h``unsigned char *buffer``h]j)}(hj h]hunsigned char *buffer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj)}(hhh]jg)}(hthe buffer pointerh]hthe buffer pointer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h(``int count`` the data size to transfer h](j)}(h ``int count``h]j)}(hj( h]h int count}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj& ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj" ubj)}(hhh]jg)}(hthe data size to transferh]hthe data size to transfer}(hjA 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)}(hjc h]h Description}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja 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)}(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.}(hjy 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)}(hCThe copied size if successful, or a negative error code on failure.h]hCThe copied size if successful, or a negative error code on failure.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj 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&]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)}jj sbc.snd_rawmidi_proceedasbuh1hhjubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h substreamh]h substream}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hz**Parameters** ``struct snd_rawmidi_substream *substream`` rawmidi substream **Return** the number of discarded bytesh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]j)}(h>``struct snd_rawmidi_substream *substream`` rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjh]h'struct snd_rawmidi_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]jg)}(hrawmidi substreamh]hrawmidi substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubjg)}(hthe number of discarded bytesh]hthe number of discarded bytes}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_rawmidi_new (C function)c.snd_rawmidi_newhNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_rawmidi_new (struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h]h)}(hint snd_rawmidi_new(struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhe/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 hjLhhhj^hMPubj)}(hsnd_rawmidi_newh]j%)}(hsnd_rawmidi_newh]hsnd_rawmidi_new}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhj^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}(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)}jjssbc.snd_rawmidi_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hchar *idh](h)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hidh]hid}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int deviceh](h)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hdeviceh]hdevice}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint output_counth](h)}(hinth]hint}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj%)}(h output_counth]h output_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint input_counth](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h input_counth]h input_count}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_rawmidi **rrawmidih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_rawmidi_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrrawmidih]hrrawmidi}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjLhhhj^hMPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj^hMPubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hMPhjEhhubjb)}(hhh]jg)}(hcreate a rawmidi instanceh]hcreate a rawmidi instance}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPhjkhhubah}(h]h ]h"]h$]h&]uh1jahjEhhhj^hMPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``char *id`` the id string ``int device`` the device index ``int output_count`` the number of output streams ``int input_count`` the number of input streams ``struct snd_rawmidi **rrawmidi`` the pointer to store the new rawmidi instance **Description** Creates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMThjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMQhjubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMQhjubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hjh]hchar *id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMRhjubj)}(hhh]jg)}(h the id stringh]h the id string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMRhjubj)}(h ``int device`` the device index h](j)}(h``int device``h]j)}(hj!h]h int device}(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.chMShjubj)}(hhh]jg)}(hthe device indexh]hthe device index}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6hMShj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hMShjubj)}(h2``int output_count`` the number of output streams h](j)}(h``int output_count``h]j)}(hjZh]hint output_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.chMThjTubj)}(hhh]jg)}(hthe number of output streamsh]hthe number of output streams}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMThjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohMThjubj)}(h0``int input_count`` the number of input streams h](j)}(h``int input_count``h]j)}(hjh]hint input_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMUhjubj)}(hhh]jg)}(hthe number of input streamsh]hthe number of input streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMUhjubj)}(hP``struct snd_rawmidi **rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h!``struct snd_rawmidi **rrawmidi``h]j)}(hjh]hstruct snd_rawmidi **rrawmidi}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMVhjubj)}(hhh]jg)}(h-the pointer to store the new rawmidi instanceh]h-the pointer to store the new rawmidi instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMVhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMXhjubjg)}(hcCreates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance.h]hcCreates a new rawmidi instance. Use snd_rawmidi_set_ops() to set the operators to the new instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMWhjubjg)}(h **Return**h]j)}(hj.h]hReturn}(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:71: ./sound/core/rawmidi.chMZhjubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM[hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_set_ops (C function)c.snd_rawmidi_set_opshNtauh1hhjhhhNhNubh)}(hhh](h)}(hcvoid snd_rawmidi_set_ops (struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h]h)}(hbvoid snd_rawmidi_set_ops(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](h)}(hvoidh]hvoid}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhe/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 hjohhhjhM&ubj)}(hsnd_rawmidi_set_opsh]j%)}(hsnd_rawmidi_set_opsh]hsnd_rawmidi_set_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjhM&ubj@)}(hJ(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](jF)}(hstruct snd_rawmidi *rmidih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_set_opsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrmidih]hrmidi}(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&]uh1hhjubj)}(h h]h }(hj0hhhNhNubah}(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>uh1jEhjubjF)}(h!const struct snd_rawmidi_ops *opsh](jL)}(hj\h]hconst}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubjL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubh)}(hhh]j%)}(hsnd_rawmidi_opsh]hsnd_rawmidi_ops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_rawmidi_set_opsasbuh1hhjSubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj%)}(hopsh]hops}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjhM&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjkhhhjhM&ubah}(h]jfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM&hjhhhubjb)}(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&]uh1jahjhhhhjhM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(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)}(hj4h]hstruct snd_rawmidi *rmidi}(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)}(hthe rawmidi instanceh]hthe rawmidi instance}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhM'hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM'hj+ubj)}(h>``int stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX h](j)}(h``int stream``h]j)}(hjmh]h int stream}(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)}(h.the stream direction, SNDRV_RAWMIDI_STREAM_XXXh]h.the stream direction, SNDRV_RAWMIDI_STREAM_XXX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhM(hj+ubj)}(h9``const struct snd_rawmidi_ops *ops`` the operator table h](j)}(h%``const struct snd_rawmidi_ops *ops``h]j)}(hjh]h!const struct snd_rawmidi_ops *ops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM)hjubj)}(hhh]jg)}(hthe operator tableh]hthe operator table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hj+ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM+hjubjg)}(h:Sets the rawmidi operators for the given stream direction.h]h:Sets the rawmidi operators for the given stream direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM*hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] raw-midi-apiah ]h"] raw midi apiah$]h&]uh1hhjhhhhhKFubh)}(hhh](h)}(hMPU401-UART APIh]hMPU401-UART API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKJubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_mpu401_uart_interrupt (C function)c.snd_mpu401_uart_interrupthNtauh1hhjhhhNhNubh)}(hhh](h)}(h=irqreturn_t snd_mpu401_uart_interrupt (int irq, void *dev_id)h]h)}(huh1jhj;hhhjchKkubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *dev_idh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdev_idh]hdev_id}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhjchKkubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjchKkubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchKkhj4hhubjb)}(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.chKkhjhhubah}(h]h ]h"]h$]h&]uh1jahj4hhhjchKkubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhjhNhNubj)}(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)}(hj;h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKohj5ubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hjZh]hint irq}(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.chKlhjTubj)}(hhh]jg)}(hthe irq numberh]hthe irq number}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohKlhjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohKlhjQubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjh]h void *dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKmhjubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKmhjQubeh}(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&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKohj5ubjg)}(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.chKnhj5ubjg)}(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.chKphj5ubjg)}(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&]uh1jhj ubh if the interrupt was handled. }(hj hhhNhNubj)}(h ``IRQ_NONE``h]hIRQ_NONE}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh otherwise.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKqhj5ubeh}(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$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j)}jsnd_mpu401_uart_interrupt_txsbc.snd_mpu401_uart_interrupt_txasbuh1hhjVhhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhj~hKubj)}(hsnd_mpu401_uart_interrupt_txh]j%)}(hj{h]hsnd_mpu401_uart_interrupt_tx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVhhhj~hKubj@)}(h(int irq, void *dev_id)h](jF)}(hint irqh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hirqh]hirq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h void *dev_idh](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdev_idh]hdev_id}(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?hjVhhhj~hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhj~hKubah}(h]jMah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hKhjOhhubjb)}(hhh]jg)}(h(generic MPU401-UART transmit irq handlerh]h(generic MPU401-UART transmit irq handler}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhj1hhubah}(h]h ]h"]h$]h&]uh1jahjOhhhj~hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhjhNhNubj)}(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)}(hjVh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjPubj)}(hhh](j)}(h``int irq`` the irq number h](j)}(h ``int irq``h]j)}(hjuh]hint irq}(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)}(hthe irq numberh]hthe irq number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhKhjlubj)}(h!``void *dev_id`` mpu401 instance h](j)}(h``void *dev_id``h]j)}(hjh]h void *dev_id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjubj)}(hhh]jg)}(hmpu401 instanceh]hmpu401 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjlubeh}(h]h ]h"]h$]h&]uh1jhjPubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjPubjg)}(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.chKhjPubjg)}(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.chKhjPubjg)}(hE``IRQ_HANDLED`` if the interrupt was handled. ``IRQ_NONE`` otherwise.h](j)}(h``IRQ_HANDLED``h]h IRQ_HANDLED}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubh if the interrupt was handled. }(hj&hhhNhNubj)}(h ``IRQ_NONE``h]hIRQ_NONE}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubh otherwise.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chKhjPubeh}(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}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjqhhhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqhhhjhMubj)}(hsnd_mpu401_uart_newh]j%)}(hsnd_mpu401_uart_newh]hsnd_mpu401_uart_new}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqhhhjhMubj@)}(h(struct snd_card *card, int device, unsigned short hardware, unsigned long port, unsigned int info_flags, int irq, struct snd_rawmidi **rrawmidi)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_mpu401_uart_newasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int deviceh](h)}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hdeviceh]hdevice}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned short hardwareh](h)}(hunsignedh]hunsigned}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubh)}(hshorth]hshort}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj%)}(hhardwareh]hhardware}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned long porth](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hporth]hport}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int info_flagsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(h info_flagsh]h info_flags}(hj3hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hint irqh](h)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(hirqh]hirq}(hjhhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_rawmidi **rrawmidih](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_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_mpu401_uart_newasbuh1hhj}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hrrawmidih]hrrawmidi}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjqhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmhhhjhMubah}(h]jhah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjjhhubjb)}(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.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'jj'jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``int device`` the device index, zero-based ``unsigned short hardware`` the hardware type, MPU401_HW_XXXX ``unsigned long port`` the base address of MPU401 port ``unsigned int info_flags`` bitflags MPU401_INFO_XXX ``int irq`` the ISA irq number, -1 if not to be allocated ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance **Description** Creates a new MPU-401 instance. Note that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast). **Return** Zero if successful, or a negative error code.h](jg)}(h**Parameters**h]j)}(hj1h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjPh]hstruct snd_card *card}(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 card instanceh]hthe card instance}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehMhjGubj)}(h,``int device`` the device index, zero-based h](j)}(h``int device``h]j)}(hjh]h int device}(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 device index, zero-basedh]hthe device index, zero-based}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjGubj)}(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&]uh1jhjhMhjGubj)}(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&]uh1jhjhMhjGubj)}(h5``unsigned int info_flags`` bitflags MPU401_INFO_XXX h](j)}(h``unsigned int info_flags``h]j)}(hj4h]hunsigned int info_flags}(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)}(hbitflags MPU401_INFO_XXXh]hbitflags MPU401_INFO_XXX}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMhjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMhjGubj)}(h:``int irq`` the ISA irq number, -1 if not to be allocated h](j)}(h ``int irq``h]j)}(hjmh]hint irq}(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 ISA irq number, -1 if not to be allocatedh]h-the ISA irq number, -1 if not to be allocated}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhMhjGubj)}(hQ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h"``struct snd_rawmidi ** rrawmidi``h]j)}(hjh]hstruct snd_rawmidi ** rrawmidi}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjGubeh}(h]h ]h"]h$]h&]uh1jhj+ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubjg)}(hCreates a new MPU-401 instance.h]hCreates a new MPU-401 instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubjg)}(hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).h]hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubjg)}(h-Zero if successful, or a negative error code.h]h-Zero if successful, or a negative error code.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]mpu401-uart-apiah ]h"]mpu401-uart apiah$]h&]uh1hhjhhhhhKJubeh}(h]midi-apiah ]h"]midi apiah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h Proc Info APIh]h Proc Info API}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShhhhhKNubh)}(hhh](h)}(hProc Info Interfaceh]hProc Info Interface}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhhhhhKQubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_line (C function)c.snd_info_get_linehNtauh1hhjdhhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM@ubj)}(hsnd_info_get_lineh]j%)}(hsnd_info_get_lineh]hsnd_info_get_line}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM@ubj@)}(h5(struct snd_info_buffer *buffer, char *line, int len)h](jF)}(hstruct snd_info_buffer *bufferh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_info_get_lineasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hbufferh]hbuffer}(hj$ hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h char *lineh](h)}(hcharh]hchar}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9 ubj)}(h h]h }(hjK hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9 ubj)}(hjh]h*}(hjY hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubj%)}(hlineh]hline}(hjf hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9 ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM@ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM@ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM@hjhhubjb)}(hhh]jg)}(h$read 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&]uh1jahjhhhjhM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjdhNhNubj)}(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}(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.chMBhj9!ubj)}(hhh]jg)}(hthe buffer to storeh]hthe buffer to store}(hjX!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjT!hMBhjU!ubah}(h]h ]h"]h$]h&]uh1jhj9!ubeh}(h]h ]h"]h$]h&]uh1jhjT!hMBhj ubj)}(h!``int len`` the max. buffer size h](j)}(h ``int len``h]j)}(hjx!h]hint len}(hjz!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv!ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChjr!ubj)}(hhh]jg)}(hthe max. buffer sizeh]hthe max. buffer size}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hMChj!ubah}(h]h ]h"]h$]h&]uh1jhjr!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMChj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhj ubjg)}(h5Reads one line from the buffer and stores the string.h]h5Reads one line from the buffer and stores the string.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.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&]uh1jhjdhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_str (C function)c.snd_info_get_strhNtauh1hhjdhhhNhNubh)}(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 }(hjI"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"hhhj,"hMdubj)}(hjh]h*}(hjW"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhj,"hMdubj)}(hsnd_info_get_strh]j%)}(hsnd_info_get_strh]hsnd_info_get_str}(hjh"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd"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}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(hdesth]hdest}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|"ubjF)}(hconst char *srch](jL)}(hj\h]hconst}(hj"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubh)}(hcharh]hchar}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(hsrch]hsrc}(hj #hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|"ubjF)}(hint lenh](h)}(hinth]hint}(hj##hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#ubj)}(h h]h }(hj1#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj%)}(hlenh]hlen}(hj?#hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|"ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj"hhhj,"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}(hji#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMdhjf#hhubah}(h]h ]h"]h$]h&]uh1jahj"hhhj,"hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhjdhNhNubj)}(hXX**Parameters** ``char *dest`` the buffer to store the string token ``const char *src`` the original string ``int len`` the max. length of token - 1 **Description** Parses the original string and copy a token to the given string buffer. **Return** The updated pointer of the original string so that it can be used for the next call.h](jg)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhj#ubj)}(hhh](j)}(h4``char *dest`` the buffer to store the string token h](j)}(h``char *dest``h]j)}(hj#h]h char *dest}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMehj#ubj)}(hhh]jg)}(h$the buffer to store the string tokenh]h$the buffer to store the string token}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hMehj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMehj#ubj)}(h(``const char *src`` the original string h](j)}(h``const char *src``h]j)}(hj#h]hconst char *src}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMfhj#ubj)}(hhh]jg)}(hthe original stringh]hthe original string}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hMfhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMfhj#ubj)}(h)``int len`` the max. length of token - 1 h](j)}(h ``int len``h]j)}(hj$h]hint len}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMghj$ubj)}(hhh]jg)}(hthe max. length of token - 1h]hthe max. length of token - 1}(hj5$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1$hMghj2$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj1$hMghj#ubeh}(h]h ]h"]h$]h&]uh1jhj#ubjg)}(h**Description**h]j)}(hjW$h]h Description}(hjY$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU$ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihj#ubjg)}(hGParses the original string and copy a token to the given string buffer.h]hGParses the original string and copy a token to the given string buffer.}(hjm$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhj#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.chMkhj#ubjg)}(hTThe updated pointer of the original string so that it can be used for the next call.h]hTThe updated pointer of the original string so that it can be used for the next call.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjdhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_info_create_module_entry (C function)c.snd_info_create_module_entryhNtauh1hhjdhhhNhNubh)}(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&]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]j$c.snd_info_create_module_entryasbuh1hhj9%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>uh1jEhj5%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>uh1jEhj5%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 }(hjF&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hjT&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(hparenth]hparent}(hja&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5%ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj$hhhj$hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj$hhhj$hMubah}(h]j$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hMhj$hhubjb)}(hhh]jg)}(h)create an info entry for the given moduleh]h)create an info entry for the given module}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj&hhubah}(h]h ]h"]h$]h&]uh1jahj$hhhj$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjdhNhNubj)}(hX4**Parameters** ``struct module * module`` the module pointer ``const char *name`` the file name ``struct snd_info_entry *parent`` the parent directory **Description** Creates a new info entry and assigns it to the given module. **Return** The pointer of the new instance, or ``NULL`` on failure.h](jg)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj&ubj)}(hhh](j)}(h.``struct module * module`` the module pointer h](j)}(h``struct module * module``h]j)}(hj&h]hstruct module * module}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj&ubj)}(hhh]jg)}(hthe module pointerh]hthe module pointer}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&hMhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMhj&ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj'h]hconst char *name}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj&ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'hMhj'ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj'hMhj&ubj)}(h7``struct snd_info_entry *parent`` the parent directory h](j)}(h!``struct snd_info_entry *parent``h]j)}(hj>'h]hstruct snd_info_entry *parent}(hj@'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj8'ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hjW'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjS'hMhjT'ubah}(h]h ]h"]h$]h&]uh1jhj8'ubeh}(h]h ]h"]h$]h&]uh1jhjS'hMhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubjg)}(h**Description**h]j)}(hjy'h]h Description}(hj{'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw'ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj&ubjg)}(huh1jhj'hhhj(hMubj@)}(hH(struct snd_card *card, const char *name, struct snd_info_entry *parent)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjq(hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjm(ubj)}(h h]h }(hj~(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm(ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j2(c.snd_info_create_card_entryasbuh1hhjm(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm(ubj%)}(hcardh]hcard}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhji(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>uh1jEhji(ubjF)}(hstruct snd_info_entry *parenth](jL)}(hjOh]hstruct}(hj>)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:)ubj)}(h h]h }(hjK)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:)ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj\)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjY)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^)modnameN classnameNjj)}j]j2(c.snd_info_create_card_entryasbuh1hhj:)ubj)}(h h]h }(hjz)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>uh1jEhji(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)jjjuh1hhhhjdhNhNubj)}(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)}(hj9*h]hconst char *name}(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)}(h the file nameh]h the file name}(hjR*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjN*hMhjO*ubah}(h]h ]h"]h$]h&]uh1jhj3*ubeh}(h]h ]h"]h$]h&]uh1jhjN*hMhj)ubj)}(h8``struct snd_info_entry * parent`` the parent directory h](j)}(h"``struct snd_info_entry * parent``h]j)}(hjr*h]hstruct snd_info_entry * parent}(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:82: ./sound/core/info.chMhjl*ubj)}(hhh]jg)}(hthe parent directoryh]hthe parent directory}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1jhjl*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubjg)}(h**Description**h]j)}(hj*h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj)ubjg)}(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&]uh1jhjdhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_info_free_entry (C function)c.snd_info_free_entryhNtauh1hhjdhhhNhNubh)}(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'+hhhj9+hMubj)}(hsnd_info_free_entryh]j%)}(hsnd_info_free_entryh]hsnd_info_free_entry}(hjL+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjH+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj'+hhhj9+hMubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](jL)}(hjOh]hstruct}(hjh+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjd+ubj)}(h h]h }(hju+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd+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)}jjN+sbc.snd_info_free_entryasbuh1hhjd+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjd+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjd+ubj%)}(hentryh]hentry}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjd+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`+ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj'+hhhj9+hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#+hhhj9+hMubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9+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 +hhhj9+hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhjdhNhNubj)}(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}(hjE,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjA,hMhjB,ubah}(h]h ]h"]h$]h&]uh1jhj&,ubeh}(h]h ]h"]h$]h&]uh1jhjA,hMhj#,ubah}(h]h ]h"]h$]h&]uh1jhj,ubjg)}(h**Description**h]j)}(hjg,h]h Description}(hji,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje,ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,ubjg)}(hReleases the info entry.h]hReleases the info entry.}(hj},hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjdhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_register (C function)c.snd_info_registerhNtauh1hhjdhhhNhNubh)}(hhh](h)}(h4int snd_info_register (struct snd_info_entry *entry)h]h)}(h3int snd_info_register(struct snd_info_entry *entry)h](h)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhj,hM$ubj)}(hsnd_info_registerh]j%)}(hsnd_info_registerh]hsnd_info_register}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,hhhj,hM$ubj@)}(h(struct snd_info_entry *entry)h]jF)}(hstruct snd_info_entry *entryh](jL)}(hjOh]hstruct}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj -modnameN classnameNjj)}j]j)}jj,sbc.snd_info_registerasbuh1hhj,ubj)}(h h]h }(hj'-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hjh]h*}(hj5-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj%)}(hentryh]hentry}(hjB-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj,ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj,hhhj,hM$ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj,hhhj,hM$ubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj,hM$hj,hhubjb)}(hhh]jg)}(hregister the info entryh]hregister the info entry}(hjl-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$hji-hhubah}(h]h ]h"]h$]h&]uh1jahj,hhhj,hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhjdhNhNubj)}(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)}(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.chM(hj-ubj)}(hhh]j)}(h0``struct snd_info_entry *entry`` the info entry h](j)}(h ``struct snd_info_entry *entry``h]j)}(hj-h]hstruct snd_info_entry *entry}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM%hj-ubj)}(hhh]jg)}(hthe info entryh]hthe info entry}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-hM%hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hM%hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubjg)}(h**Description**h]j)}(hj-h]h Description}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM'hj-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&hj-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)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&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM*hj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjdhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_rw_proc_new (C function)c.snd_card_rw_proc_newhNtauh1hhjdhhhNhNubh)}(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}(hjT.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjP.hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBubj)}(h h]h }(hjc.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjP.hhhjb.hMBubj)}(hsnd_card_rw_proc_newh]j%)}(hsnd_card_rw_proc_newh]hsnd_card_rw_proc_new}(hju.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjq.ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjP.hhhjb.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}(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)}jjw.sbc.snd_card_rw_proc_newasbuh1hhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hcardh]hcard}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(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}(hjG/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(hvoid *private_datah](h)}(hvoidh]hvoid}(hj`/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj\/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 private_datah]h private_data}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(h=void (*read)(struct snd_info_entry*, struct snd_info_buffer*)h](h)}(hvoidh]hvoid}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h(}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hreadh]hread}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubj)}(hjh]h)}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hjh]h(}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubjL)}(hjOh]hstruct}(hj0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj 0modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhj/ubj)}(hjh]h*}(hj<0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hjRh]h,}(hjI0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hjV0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubjL)}(hjOh]hstruct}(hjd0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hjq0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_info_bufferh]hsnd_info_buffer}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhj/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(hjh]h)}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.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)}(hj 1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(hjh]h(}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubjL)}(hjOh]hstruct}(hj#1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj01hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubh)}(hhh]j%)}(hsnd_info_entryh]hsnd_info_entry}(hjA1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj>1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjC1modnameN classnameNjj)}j]j.c.snd_card_rw_proc_newasbuh1hhj0ubj)}(h h]h }(hj_1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubj)}(hjh]h*}(hjm1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj%)}(hentryh]hentry}(hjz1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0ubj)}(hjRh]h,}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0ubjL)}(hjOh]hstruct}(hj1hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0ubj)}(h h]h }(hj1hhhNhNubah}(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)}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjP.hhhjb.hMBubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjL.hhhjb.hMBubah}(h]jG.ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjb.hMBhjI.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}(hj12hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhj.2hhubah}(h]h ]h"]h$]h&]uh1jahjI.hhhjb.hMBubeh}(h]h ](jfunctioneh"]h$]h&]jjjjI2jjI2jjjuh1hhhhjdhNhNubj)}(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)}(hjS2h]h Parameters}(hjU2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ2ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhjM2ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjr2h]hstruct snd_card *card}(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.chMChjl2ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMChj2ubah}(h]h ]h"]h$]h&]uh1jhjl2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMChji2ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj2h]hconst char *name}(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.chMDhj2ubj)}(hhh]jg)}(h the file nameh]h the file name}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMDhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMDhji2ubj)}(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&]uh1jhj2hMEhji2ubj)}(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)}(hj3h]h?void (*read)(struct snd_info_entry *, struct snd_info_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.chMFhj3ubj)}(hhh]jg)}(hthe read callbackh]hthe read callback}(hj63hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj23hMFhj33ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj23hMFhji2ubj)}(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)}(hjV3h]hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)}(hjX3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT3ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhjP3ubj)}(hhh]jg)}(h&the write callback, NULL for read-onlyh]h&the write callback, NULL for read-only}(hjo3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjk3hMGhjl3ubah}(h]h ]h"]h$]h&]uh1jhjP3ubeh}(h]h ]h"]h$]h&]uh1jhjk3hMGhji2ubeh}(h]h ]h"]h$]h&]uh1jhjM2ubjg)}(h**Description**h]j)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhjM2ubjg)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMHhjM2ubjg)}(h **Return**h]j)}(hj3h]hReturn}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMKhjM2ubjg)}(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.chMLhjM2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjdhhhNhNubeh}(h]proc-info-interfaceah ]h"]proc info interfaceah$]h&]uh1hhjShhhhhKQubeh}(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}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hhhhhKXubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_stop_error (C function)c.snd_compr_stop_errorhNtauh1hhj4hhhNhNubh)}(hhh](h)}(hQint snd_compr_stop_error (struct snd_compr_stream *stream, snd_pcm_state_t state)h]h)}(hPint snd_compr_stop_error(struct snd_compr_stream *stream, snd_pcm_state_t state)h](h)}(hinth]hint}(hj/4hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+4hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMoubj)}(h h]h }(hj>4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+4hhhj=4hMoubj)}(hsnd_compr_stop_errorh]j%)}(hsnd_compr_stop_errorh]hsnd_compr_stop_error}(hjP4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjL4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+4hhhj=4hMoubj@)}(h8(struct snd_compr_stream *stream, snd_pcm_state_t state)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hjl4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjh4ubj)}(h h]h }(hjy4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjh4ubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjR4sbc.snd_compr_stop_errorasbuh1hhjh4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjh4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh4ubj%)}(hstreamh]hstream}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjh4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjd4ubjF)}(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]j4c.snd_compr_stop_errorasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj%)}(hstateh]hstate}(hj 5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjd4ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj+4hhhj=4hMoubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj'4hhhj=4hMoubah}(h]j"4ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj=4hMohj$4hhubjb)}(hhh]jg)}(h Report a fatal error on a streamh]h Report a fatal error on a stream}(hj75hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMohj45hhubah}(h]h ]h"]h$]h&]uh1jahj$4hhhj=4hMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjjO5jjO5jjjuh1hhhhj4hNhNubj)}(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)}(hjY5h]h Parameters}(hj[5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjW5ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMshjS5ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjx5h]hstruct snd_compr_stream *stream}(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.chMphjr5ubj)}(hhh]jg)}(hpointer to streamh]hpointer to stream}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMphj5ubah}(h]h ]h"]h$]h&]uh1jhjr5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMphjo5ubj)}(h<``snd_pcm_state_t state`` state to transition the stream to h](j)}(h``snd_pcm_state_t state``h]j)}(hj5h]hsnd_pcm_state_t state}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMqhj5ubj)}(hhh]jg)}(h!state to transition the stream toh]h!state to transition the stream to}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj5hMqhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMqhjo5ubeh}(h]h ]h"]h$]h&]uh1jhjS5ubjg)}(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.chMshjS5ubjg)}(h"Stop the stream and set its state.h]h"Stop the stream and set its state.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMrhjS5ubjg)}(h2Should be called with compressed device lock held.h]h2Should be called with compressed device lock held.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMthjS5ubjg)}(h **Return**h]j)}(hj"6h]hReturn}(hj$6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 6ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMvhjS5ubjg)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj86hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMwhjS5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_compr_task_finished (C function)c.snd_compr_task_finishedhNtauh1hhj4hhhNhNubh)}(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}(hjg6hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjc6hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hjv6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc6hhhju6hMubj)}(hsnd_compr_task_finishedh]j%)}(hsnd_compr_task_finishedh]hsnd_compr_task_finished}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjc6hhhju6hMubj@)}(hF(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](jF)}(hstruct snd_compr_stream *streamh](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_streamh]hsnd_compr_stream}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jj6sbc.snd_compr_task_finishedasbuh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(hstreamh]hstream}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubjF)}(h#struct snd_compr_task_runtime *taskh](jL)}(hjOh]hstruct}(hj7hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hj#7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_compr_task_runtimeh]hsnd_compr_task_runtime}(hj47hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj17ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj67modnameN classnameNjj)}j]j6c.snd_compr_task_finishedasbuh1hhj7ubj)}(h h]h }(hjR7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hj`7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(htaskh]htask}(hjm7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjc6hhhju6hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj_6hhhju6hMubah}(h]jZ6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhju6hMhj\6hhubjb)}(hhh]jg)}(h!Notify that the task was finishedh]h!Notify that the task was finished}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7hhubah}(h]h ]h"]h$]h&]uh1jahj\6hhhju6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1hhhhj4hNhNubj)}(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&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7ubj)}(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)}(hj8h]h#struct snd_compr_task_runtime *task}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj 8ubj)}(hhh]jg)}(hruntime task structureh]hruntime task structure}(hj*8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&8hMhj'8ubah}(h]h ]h"]h$]h&]uh1jhj 8ubeh}(h]h ]h"]h$]h&]uh1jhj&8hMhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubjg)}(h**Description**h]j)}(hjL8h]h Description}(hjN8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ8ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7ubjg)}(h/Set the finished task state and notify waiters.h]h/Set the finished task state and notify waiters.}(hjb8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compress_new (C function)c.snd_compress_newhNtauh1hhj4hhhNhNubh)}(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}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhj8hMubj)}(hsnd_compress_newh]j%)}(hsnd_compress_newh]hsnd_compress_new}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhj8hMubj@)}(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)}jj8sbc.snd_compress_newasbuh1hhj8ubj)}(h h]h }(hj 9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hcardh]hcard}(hj'9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(h int deviceh](h)}(hinth]hint}(hj@9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<9ubj)}(h h]h }(hjN9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<9ubj%)}(hdeviceh]hdevice}(hj\9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hint dirnh](h)}(hinth]hint}(hju9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjq9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjq9ubj%)}(hdirnh]hdirn}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjq9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(hcharh]hchar}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj%)}(hidh]hid}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hstruct snd_compr *comprh](jL)}(hjOh]hstruct}(hj:hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubh)}(hhh]j%)}(h snd_comprh]h snd_compr}(hj%:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj":ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj':modnameN classnameNjj)}j]j9c.snd_compress_newasbuh1hhj:ubj)}(h h]h }(hjC:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hjQ:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hcomprh]hcompr}(hj^:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8hhhj8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj8hhhj8hMubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj8hMhj8hhubjb)}(hhh]jg)}(hcreate new compress deviceh]hcreate new compress device}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj:hhubah}(h]h ]h"]h$]h&]uh1jahj8hhhj8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1hhhhj4hNhNubj)}(hX<**Parameters** ``struct snd_card *card`` sound card pointer ``int device`` device number ``int dirn`` device direction, should be of type enum snd_compr_direction ``const char *id`` ID string ``struct snd_compr *compr`` compress device pointer **Return** zero if successful, or a negative error codeh](jg)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jfhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj:ubj)}(hhh](j)}(h-``struct snd_card *card`` sound card pointer h](j)}(h``struct snd_card *card``h]j)}(hj:h]hstruct snd_card *card}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj:ubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj:ubj)}(h``int device`` device number h](j)}(h``int device``h]j)}(hj;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&]uh1jhj9;ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj5;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}(hjo<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.hhKhjl<hhubah}(h]h ]h"]h$]h&]uh1jahj"<hhhj:<hKubeh}(h]h ](jstructeh"]h$]h&]jjjj<jj<jjjuh1hhhhj4hNhNubj)}(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}(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.hhKhj<ubj)}(hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };h]hOstruct snd_compressed_buffer { __u32 fragment_size; __u32 fragments; };}hj<sbah}(h]h ]h"]h$]h&]j=j>uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj<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.hhKhj<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&]uh1jhj<ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_params (C struct)c.snd_compr_paramshNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_paramsh]h)}(hstruct snd_compr_paramsh](jL)}(hjOh]hstruct}(hjo=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjk=hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj}=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjk=hhhj|=hKubj)}(hsnd_compr_paramsh]j%)}(hji=h]hsnd_compr_params}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjk=hhhj|=hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjg=hhhj|=hKubah}(h]jb=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|=hKhjd=hhubjb)}(hhh]jg)}(hcompressed stream paramsh]hcompressed stream params}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj=hhubah}(h]h ]h"]h$]h&]uh1jahjd=hhhj|=hKubeh}(h]h ](jstructeh"]h$]h&]jjjj=jj=jjjuh1hhhhj4hNhNubj)}(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}(hj7>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3>hKhj4>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj3>hKhj>ubj)}(h``codec`` codec parameters h](j)}(h ``codec``h]j)}(hjW>h]hcodec}(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.hhKhjQ>ubj)}(hhh]jg)}(hcodec parametersh]hcodec parameters}(hjp>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjl>hKhjm>ubah}(h]h ]h"]h$]h&]uh1jhjQ>ubeh}(h]h ]h"]h$]h&]uh1jhjl>hKhj>ubj)}(h.``no_wake_mode`` dont wake on fragment elapsedh](j)}(h``no_wake_mode``h]j)}(hj>h]h no_wake_mode}(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)}(hdont wake on fragment elapsedh]hdont wake on fragment elapsed}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK hj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubeh}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_tstamp (C struct)c.snd_compr_tstamphNtauh1hhj4hhhNhNubh)}(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&]jjjjD?jjD?jjjuh1hhhhj4hNhNubj)}(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}(hjP?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL?ubh:}(hjL?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,hjH?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; };}hji?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.hjH?ubjg)}(h **Members**h]j)}(hjz?h]hMembers}(hj|?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx?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.hhK6hjH?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}(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!Byte offset in ring buffer to DSPh]h!Byte offset in ring buffer to DSP}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj?hK*hj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hK*hj?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+hj?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.hj?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)}(hjE@h]h pcm_io_frames}(hjG@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC@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.hhK0hj?@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.hhK/hj[@ubah}(h]h ]h"]h$]h&]uh1jhj?@ubeh}(h]h ]h"]h$]h&]uh1jhjZ@hK0hj?ubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hj@h]h sampling_rate}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}@ubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK0hjy@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.hhK1hj@ubah}(h]h ]h"]h$]h&]uh1jhjy@ubeh}(h]h ]h"]h$]h&]uh1jhj@hK0hj?ubeh}(h]h ]h"]h$]h&]uh1jhjH?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_tstamp64 (C struct)c.snd_compr_tstamp64hNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_tstamp64h]h)}(hstruct snd_compr_tstamp64h](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.hhK7ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhj@hK7ubj)}(hsnd_compr_tstamp64h]j%)}(hj@h]hsnd_compr_tstamp64}(hj@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhj@hK7ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@hhhj@hK7ubah}(h]j@ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@hK7hj@hhubjb)}(hhh]jg)}(h*timestamp descriptor with fields in 64 bith]h*timestamp descriptor with fields in 64 bit}(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;hjAhhubah}(h]h ]h"]h$]h&]uh1jahj@hhhj@hK7ubeh}(h]h ](jstructeh"]h$]h&]jjjj3Ajj3Ajjjuh1hhhhj4hNhNubj)}(hX**Definition**:: struct snd_compr_tstamp64 { __u32 byte_offset; __u64 copied_total; __u64 pcm_frames; __u64 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?AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Aubh:}(hj;AhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK?hj7Aubj)}(hstruct snd_compr_tstamp64 { __u32 byte_offset; __u64 copied_total; __u64 pcm_frames; __u64 pcm_io_frames; __u32 sampling_rate; };h]hstruct snd_compr_tstamp64 { __u32 byte_offset; __u64 copied_total; __u64 pcm_frames; __u64 pcm_io_frames; __u32 sampling_rate; };}hjXAsbah}(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.hhKAhj7Aubjg)}(h **Members**h]j)}(hjiAh]hMembers}(hjkAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgAubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKIhj7Aubj)}(hhh](j)}(h2``byte_offset`` Byte offset in ring buffer to DSP h](j)}(h``byte_offset``h]j)}(hjAh]h byte_offset}(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)}(h!Byte offset in ring buffer to DSPh]h!Byte offset in ring buffer to DSP}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK=hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK=hjAubj)}(hL``copied_total`` Total number of bytes copied from/to ring buffer to/by DSP h](j)}(h``copied_total``h]j)}(hjAh]h copied_total}(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)}(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}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK>hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK>hjAubj)}(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)}(hjAh]h pcm_frames}(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.hhKAhjAubj)}(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.}(hjBhhhNhNubah}(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?hjBubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjBhKAhjAubj)}(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)}(hj4Bh]h pcm_io_frames}(hj6BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Bubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKChj.Bubj)}(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.}(hjMBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKBhjJBubah}(h]h ]h"]h$]h&]uh1jhj.Bubeh}(h]h ]h"]h$]h&]uh1jhjIBhKChjAubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hjnBh]h sampling_rate}(hjpBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlBubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKChjhBubj)}(hhh]jg)}(hsampling rate of audioh]hsampling rate of audio}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKDhjBubah}(h]h ]h"]h$]h&]uh1jhjhBubeh}(h]h ]h"]h$]h&]uh1jhjBhKChjAubeh}(h]h ]h"]h$]h&]uh1jhj7Aubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_avail (C struct)c.snd_compr_availhNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_availh]h)}(hstruct snd_compr_availh](jL)}(hjOh]hstruct}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKJubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBhhhjBhKJubj)}(hsnd_compr_availh]j%)}(hjBh]hsnd_compr_avail}(hjBhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjBhhhjBhKJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhjBhKJubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjBhKJhjBhhubjb)}(hhh]jg)}(havail descriptorh]havail descriptor}(hj ChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKNhjChhubah}(h]h ]h"]h$]h&]uh1jahjBhhhjBhKJubeh}(h]h ](jstructeh"]h$]h&]jjjj"Cjj"Cjjjuh1hhhhj4hNhNubj)}(h**Definition**:: struct snd_compr_avail { __u64 avail; struct snd_compr_tstamp tstamp; }; **Members** ``avail`` Number of bytes available in ring buffer for writing/reading ``tstamp`` timestamp informationh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj.ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Cubh:}(hj*ChhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhj&Cubj)}(hPstruct snd_compr_avail { __u64 avail; struct snd_compr_tstamp tstamp; };h]hPstruct snd_compr_avail { __u64 avail; struct snd_compr_tstamp tstamp; };}hjGCsbah}(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.hhKThj&Cubjg)}(h **Members**h]j)}(hjXCh]hMembers}(hjZChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVCubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKYhj&Cubj)}(hhh](j)}(hG``avail`` Number of bytes available in ring buffer for writing/reading h](j)}(h ``avail``h]j)}(hjwCh]havail}(hjyChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuCubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhjqCubj)}(hhh]jg)}(huh1jhjDhhhjDhKWubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDhhhjDhKWubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjDhKWhjChhubjb)}(hhh]jg)}(h-avail descriptor with tstamp in 64 bit formath]h-avail descriptor with tstamp in 64 bit format}(hjLDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKXhjIDhhubah}(h]h ]h"]h$]h&]uh1jahjChhhjDhKWubeh}(h]h ](jstructeh"]h$]h&]jjjjdDjjdDjjjuh1hhhhj4hNhNubj)}(h**Definition**:: struct snd_compr_avail64 { __u64 avail; struct snd_compr_tstamp64 tstamp; }; **Members** ``avail`` Number of bytes available in ring buffer for writing/reading ``tstamp`` timestamp informationh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjpDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlDubh:}(hjlDhhhNhNubeh}(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\hjhDubj)}(hTstruct snd_compr_avail64 { __u64 avail; struct snd_compr_tstamp64 tstamp; };h]hTstruct snd_compr_avail64 { __u64 avail; struct snd_compr_tstamp64 tstamp; };}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.hhK^hjhDubjg)}(h **Members**h]j)}(hjDh]hMembers}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKchjhDubj)}(hhh](j)}(hG``avail`` Number of bytes available in ring buffer for writing/reading h](j)}(h ``avail``h]j)}(hjDh]havail}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKZhjDubj)}(hhh]jg)}(huh1jhjHEhhhjYEhKaubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjDEhhhjYEhKaubah}(h]j?Eah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYEhKahjAEhhubjb)}(hhh]jg)}(hcaps descriptorh]hcaps 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.hhKhhjEhhubah}(h]h ]h"]h$]h&]uh1jahjAEhhhjYEhKaubeh}(h]h ](jstructeh"]h$]h&]jjjjEjjEjjjuh1hhhhj4hNhNubj)}(hX**Definition**:: struct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; }; **Members** ``num_codecs`` number of codecs supported ``direction`` direction supported. Of type snd_compr_direction ``min_fragment_size`` minimum fragment supported by DSP ``max_fragment_size`` maximum fragment supported by DSP ``min_fragments`` min fragments supported by DSP ``max_fragments`` max fragments supported by DSP ``codecs`` pointer to array of codecs ``reserved`` reserved fieldh](jg)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh:}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKlhjEubj)}(hstruct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; };h]hstruct snd_compr_caps { __u32 num_codecs; __u32 direction; __u32 min_fragment_size; __u32 max_fragment_size; __u32 min_fragments; __u32 max_fragments; __u32 codecs[MAX_NUM_CODECS]; __u32 reserved[11]; };}hjEsbah}(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.hhKnhjEubjg)}(h **Members**h]j)}(hjEh]hMembers}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKyhjEubj)}(hhh](j)}(h*``num_codecs`` number of codecs supported h](j)}(h``num_codecs``h]j)}(hjEh]h num_codecs}(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.hhKphjEubj)}(hhh]jg)}(hnumber of codecs supportedh]hnumber of codecs supported}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKphjFubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjFhKphjEubj)}(h?``direction`` direction supported. Of type snd_compr_direction h](j)}(h ``direction``h]j)}(hj4Fh]h direction}(hj6FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Fubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKkhj.Fubj)}(hhh]jg)}(h0direction supported. Of type snd_compr_directionh]h0direction supported. Of type snd_compr_direction}(hjMFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIFhKkhjJFubah}(h]h ]h"]h$]h&]uh1jhj.Fubeh}(h]h ]h"]h$]h&]uh1jhjIFhKkhjEubj)}(h8``min_fragment_size`` minimum fragment supported by DSP h](j)}(h``min_fragment_size``h]j)}(hjmFh]hmin_fragment_size}(hjoFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkFubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKlhjgFubj)}(hhh]jg)}(h!minimum fragment supported by DSPh]h!minimum fragment supported by DSP}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKlhjFubah}(h]h ]h"]h$]h&]uh1jhjgFubeh}(h]h ]h"]h$]h&]uh1jhjFhKlhjEubj)}(h8``max_fragment_size`` maximum fragment supported by DSP h](j)}(h``max_fragment_size``h]j)}(hjFh]hmax_fragment_size}(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.hhKmhjFubj)}(hhh]jg)}(h!maximum fragment supported by DSPh]h!maximum fragment supported by DSP}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKmhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKmhjEubj)}(h1``min_fragments`` min fragments supported by DSP h](j)}(h``min_fragments``h]j)}(hjFh]h min_fragments}(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.hhKnhjFubj)}(hhh]jg)}(hmin fragments supported by DSPh]hmin fragments supported by DSP}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhKnhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKnhjEubj)}(h1``max_fragments`` max fragments supported by DSP h](j)}(h``max_fragments``h]j)}(hjGh]h max_fragments}(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.hhKohjGubj)}(hhh]jg)}(hmax fragments supported by DSPh]hmax fragments supported by DSP}(hj1GhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj-GhKohj.Gubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhj-GhKohjEubj)}(h&``codecs`` pointer to array of codecs h](j)}(h ``codecs``h]j)}(hjQGh]hcodecs}(hjSGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKjhjKGubj)}(hhh]jg)}(hpointer to array of codecsh]hpointer to array of codecs}(hjjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfGhKjhjgGubah}(h]h ]h"]h$]h&]uh1jhjKGubeh}(h]h ]h"]h$]h&]uh1jhjfGhKjhjEubj)}(h``reserved`` reserved fieldh](j)}(h ``reserved``h]j)}(hjGh]hreserved}(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.hhKphjGubj)}(hhh]jg)}(hreserved fieldh]hreserved field}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKqhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhKphjEubeh}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_codec_caps (C struct)c.snd_compr_codec_capshNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_codec_capsh]h)}(hstruct snd_compr_codec_capsh](jL)}(hjOh]hstruct}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKwubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGhhhjGhKwubj)}(hsnd_compr_codec_capsh]j%)}(hjGh]hsnd_compr_codec_caps}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjGhhhjGhKwubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGhhhjGhKwubah}(h]jGah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjGhKwhjGhhubjb)}(hhh]jg)}(hquery capability of codech]hquery capability of codec}(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#Hhhubah}(h]h ]h"]h$]h&]uh1jahjGhhhjGhKwubeh}(h]h ](jstructeh"]h$]h&]jjjj>Hjj>Hjjjuh1hhhhj4hNhNubj)}(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}(hjJHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFHubh:}(hjFHhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBHubj)}(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]; };}hjcHsbah}(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.hhKhjBHubjg)}(h **Members**h]j)}(hjtHh]hMembers}(hjvHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrHubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBHubj)}(hhh](j)}(h0``codec`` codec for which capability is queried h](j)}(h ``codec``h]j)}(hjHh]hcodec}(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%codec for which capability is queriedh]h%codec for which capability is queried}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhKhjHubj)}(h0``num_descriptors`` number of codec descriptors h](j)}(h``num_descriptors``h]j)}(hjHh]hnum_descriptors}(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)}(hnumber of codec descriptorsh]hnumber of codec descriptors}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjHhKhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhKhjHubj)}(h3``descriptor`` array of codec capability descriptorh](j)}(h``descriptor``h]j)}(hjIh]h descriptor}(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.hhKhjHubj)}(hhh]jg)}(h$array of codec capability descriptorh]h$array of codec capability descriptor}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjHubeh}(h]h ]h"]h$]h&]uh1jhjBHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsndrv_compress_encoder (C enum)c.sndrv_compress_encoderhNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsndrv_compress_encoderh]h)}(henum sndrv_compress_encoderh](jL)}(hj(h]henum}(hj_IhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[Ihhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjmIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[IhhhjlIhKubj)}(hsndrv_compress_encoderh]j%)}(hjYIh]hsndrv_compress_encoder}(hjIhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{Iubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[IhhhjlIhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjWIhhhjlIhKubah}(h]jRIah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlIhKhjTIhhubjb)}(hhh]jg)}(hencoder metadata keyh]hencoder metadata key}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIhhubah}(h]h ]h"]h$]h&]uh1jahjTIhhhjlIhKubeh}(h]h ](jenumeh"]h$]h&]jjjjIjjIjjjuh1hhhhj4hNhNubj)}(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)}(hjIh]h Constants}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubj)}(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)}(hjIh]hSNDRV_COMPRESS_ENCODER_PADDING}(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=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}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhKhjIubj)}(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)}(hjJh]hSNDRV_COMPRESS_ENCODER_DELAY}(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)}(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}(hj5JhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1JhKhj2Jubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhj1JhKhjIubeh}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_metadata (C struct)c.snd_compr_metadatahNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_metadatah]h)}(hstruct snd_compr_metadatah](jL)}(hjOh]hstruct}(hjuJhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqJhhhv/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 hjqJhhhjJhKubj)}(hsnd_compr_metadatah]j%)}(hjoJh]hsnd_compr_metadata}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjqJhhhjJhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjmJhhhjJhKubah}(h]jhJah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJhKhjjJhhubjb)}(hhh]jg)}(hcompressed stream metadatah]hcompressed stream metadata}(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&]uh1jahjjJhhhjJhKubeh}(h]h ](jstructeh"]h$]h&]jjjjJjjJjjjuh1hhhhj4hNhNubj)}(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}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh:}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjJubj)}(hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };h]hAstruct snd_compr_metadata { __u32 key; __u32 value[8]; };}hjJsbah}(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.hhKhjJubjg)}(h **Members**h]j)}(hjKh]hMembers}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjJubj)}(hhh](j)}(h``key`` key id h](j)}(h``key``h]j)}(hj$Kh]hkey}(hj&KhhhNhNubah}(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.hhKhjKubj)}(hhh]jg)}(hkey idh]hkey id}(hj=KhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9KhKhj:Kubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhj9KhKhjKubj)}(h``value`` key valueh](j)}(h ``value``h]j)}(hj]Kh]hvalue}(hj_KhhhNhNubah}(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.hhKhjWKubj)}(hhh]jg)}(h key valueh]h key value}(hjvKhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjsKubah}(h]h ]h"]h$]h&]uh1jhjWKubeh}(h]h ]h"]h$]h&]uh1jhjrKhKhjKubeh}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_task (C struct)c.snd_compr_taskhNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_taskh]h)}(hstruct snd_compr_taskh](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 }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhjKhKubj)}(hsnd_compr_taskh]j%)}(hjKh]hsnd_compr_task}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKhhhjKhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjKhhhjKhKubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKhKhjKhhubjb)}(hhh]jg)}(h)task primitive for non-realtime operationh]h)task primitive for non-realtime operation}(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.hhKhjKhhubah}(h]h ]h"]h$]h&]uh1jahjKhhhjKhKubeh}(h]h ](jstructeh"]h$]h&]jjjjLjjLjjjuh1hhhhj4hNhNubj)}(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}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh:}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjLubj)}(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]; };}hj6Lsbah}(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.hhKhjLubjg)}(h **Members**h]j)}(hjGLh]hMembers}(hjILhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjELubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjLubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjfLh]hseqno}(hjhLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdLubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj`Lubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{LhKhj|Lubah}(h]h ]h"]h$]h&]uh1jhj`Lubeh}(h]h ]h"]h$]h&]uh1jhj{LhKhj]Lubj)}(hH``origin_seqno`` previous sequence number (task identifier) - for reuse h](j)}(h``origin_seqno``h]j)}(hjLh]h origin_seqno}(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)}(h6previous sequence number (task identifier) - for reuseh]h6previous sequence number (task identifier) - for reuse}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhj]Lubj)}(h2``input_fd`` data input file descriptor (dma-buf) h](j)}(h ``input_fd``h]j)}(hjLh]hinput_fd}(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$data input file descriptor (dma-buf)h]h$data input file descriptor (dma-buf)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhj]Lubj)}(h4``output_fd`` data output file descriptor (dma-buf) h](j)}(h ``output_fd``h]j)}(hjMh]h output_fd}(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.hhKhj Mubj)}(hhh]jg)}(h%data output file descriptor (dma-buf)h]h%data output file descriptor (dma-buf)}(hj*MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&MhKhj'Mubah}(h]h ]h"]h$]h&]uh1jhj Mubeh}(h]h ]h"]h$]h&]uh1jhj&MhKhj]Lubj)}(hQ``input_size`` filled data in bytes (from caller, must not exceed fragment size) h](j)}(h``input_size``h]j)}(hjJMh]h input_size}(hjLMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHMubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjDMubj)}(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)}(hjcMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_MhKhj`Mubah}(h]h ]h"]h$]h&]uh1jhjDMubeh}(h]h ]h"]h$]h&]uh1jhj_MhKhj]Lubj)}(h*``flags`` see SND_COMPRESS_TFLG_* defines h](j)}(h ``flags``h]j)}(hjMh]hflags}(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.hhKhj}Mubj)}(hhh]jg)}(hsee SND_COMPRESS_TFLG_* definesh]hsee SND_COMPRESS_TFLG_* defines}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhKhjMubah}(h]h ]h"]h$]h&]uh1jhj}Mubeh}(h]h ]h"]h$]h&]uh1jhjMhKhj]Lubj)}(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&]uh1jhjMhKhj]Lubeh}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_state (C enum)c.snd_compr_statehNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_stateh]h)}(henum snd_compr_stateh](jL)}(hj(h]henum}(hjNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hj$NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj#NhKubj)}(hsnd_compr_stateh]j%)}(hjNh]hsnd_compr_state}(hj6NhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2Nubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhj#NhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNhhhj#NhKubah}(h]j Nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj#NhKhj Nhhubjb)}(hhh]jg)}(h task stateh]h task state}(hjXNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjUNhhubah}(h]h ]h"]h$]h&]uh1jahj Nhhhj#NhKubeh}(h]h ](jenumeh"]h$]h&]jjjjpNjjpNjjjuh1hhhhj4hNhNubj)}(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)}(hjzNh]h Constants}(hj|NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjtNubj)}(hhh](j)}(h4``SND_COMPRESS_TASK_STATE_IDLE`` task is not queued h](j)}(h ``SND_COMPRESS_TASK_STATE_IDLE``h]j)}(hjNh]hSND_COMPRESS_TASK_STATE_IDLE}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNubj)}(hhh]jg)}(htask is not queuedh]htask is not queued}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjNubj)}(h8``SND_COMPRESS_TASK_STATE_ACTIVE`` task is in the queue h](j)}(h"``SND_COMPRESS_TASK_STATE_ACTIVE``h]j)}(hjNh]hSND_COMPRESS_TASK_STATE_ACTIVE}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjNubj)}(hhh]jg)}(htask is in the queueh]htask is in the queue}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhKhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhKhjNubj)}(hL``SND_COMPRESS_TASK_STATE_FINISHED`` task was processed, output is availableh](j)}(h$``SND_COMPRESS_TASK_STATE_FINISHED``h]j)}(hj Oh]h SND_COMPRESS_TASK_STATE_FINISHED}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Oubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOubj)}(hhh]jg)}(h'task was processed, output is availableh]h'task was processed, output is available}(hj$OhhhNhNubah}(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!Oubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhj OhKhjNubeh}(h]h ]h"]h$]h&]uh1jhjtNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_compr_task_status (C struct)c.snd_compr_task_statushNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_task_statush]h)}(hstruct snd_compr_task_statush](jL)}(hjOh]hstruct}(hjeOhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjaOhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj)}(h h]h }(hjsOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaOhhhjrOhKubj)}(hsnd_compr_task_statush]j%)}(hj_Oh]hsnd_compr_task_status}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjaOhhhjrOhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj]OhhhjrOhKubah}(h]jXOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrOhKhjZOhhubjb)}(hhh]jg)}(h task statush]h task status}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOhhubah}(h]h ]h"]h$]h&]uh1jahjZOhhhjrOhKubeh}(h]h ](jstructeh"]h$]h&]jjjjOjjOjjjuh1hhhhj4hNhNubj)}(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}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh:}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOubj)}(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]; };}hjOsbah}(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.hhKhjOubjg)}(h **Members**h]j)}(hjOh]hMembers}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjOubj)}(hhh](j)}(h,``seqno`` sequence number (task identifier) h](j)}(h ``seqno``h]j)}(hjPh]hseqno}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(h!sequence number (task identifier)h]h!sequence number (task identifier)}(hj-PhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)PhKhj*Pubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj)PhKhj Pubj)}(h6``input_size`` filled data in bytes (from user space) h](j)}(h``input_size``h]j)}(hjMPh]h input_size}(hjOPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjGPubj)}(hhh]jg)}(h&filled data in bytes (from user space)h]h&filled data in bytes (from user space)}(hjfPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbPhKhjcPubah}(h]h ]h"]h$]h&]uh1jhjGPubeh}(h]h ]h"]h$]h&]uh1jhjbPhKhj Pubj)}(h3``output_size`` filled data in bytes (from driver) h](j)}(h``output_size``h]j)}(hjPh]h output_size}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(h"filled data in bytes (from driver)h]h"filled data in bytes (from driver)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKhj Pubj)}(h?``output_flags`` reserved for future (all zeros - from driver) h](j)}(h``output_flags``h]j)}(hjPh]h output_flags}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(h-reserved for future (all zeros - from driver)h]h-reserved for future (all zeros - from driver)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhKhj Pubj)}(h8``state`` actual task state (SND_COMPRESS_TASK_STATE_*) h](j)}(h ``state``h]j)}(hjPh]hstate}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjPubj)}(hhh]jg)}(h-actual task state (SND_COMPRESS_TASK_STATE_*)h]h-actual task state (SND_COMPRESS_TASK_STATE_*)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj QhKhjQubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhj QhKhj Pubj)}(h*``reserved`` reserved for future extensionh](j)}(h ``reserved``h]j)}(hj1Qh]hreserved}(hj3QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Qubah}(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+Qubj)}(hhh]jg)}(hreserved for future extensionh]hreserved for future extension}(hjJQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjGQubah}(h]h ]h"]h$]h&]uh1jhj+Qubeh}(h]h ]h"]h$]h&]uh1jhjFQhKhj Pubeh}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_vorbis (C struct)c.snd_enc_vorbishNtauh1hhj4hhhu/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}(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.hhKubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjQhhhjQhKubj)}(hsnd_enc_vorbish]j%)}(hjQh]hsnd_enc_vorbis}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjQhhhjQhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjQhKubah}(h]j~Qah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjQhKhjQhhubjb)}(hhh]jg)}(hVorbis encoder parametersh]hVorbis encoder parameters}(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.hhKhjQhhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjQhKubeh}(h]h ](jstructeh"]h$]h&]jjjjQjjQjjjuh1hhhhj4hjQhNubj)}(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}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubh:}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjQubj)}(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; };}hj Rsbah}(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.hhKhjQubjg)}(h **Members**h]j)}(hjRh]hMembers}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjQubj)}(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)}(hj;Rh]hquality}(hj=RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Rubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj5Rubj)}(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.}(hjTRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjQRubah}(h]h ]h"]h$]h&]uh1jhj5Rubeh}(h]h ]h"]h$]h&]uh1jhjPRhKhj2Rubj)}(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)}(hjuRh]hmanaged}(hjwRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsRubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjoRubj)}(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.}(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.hhKhjRubah}(h]h ]h"]h$]h&]uh1jhjoRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhj2Rubj)}(h1``max_bit_rate`` Enabled only if managed is TRUE h](j)}(h``max_bit_rate``h]j)}(hjRh]h max_bit_rate}(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.hhKhjRubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhKhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhj2Rubj)}(h1``min_bit_rate`` Enabled only if managed is TRUE h](j)}(h``min_bit_rate``h]j)}(hjRh]h min_bit_rate}(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.hhKhjRubj)}(hhh]jg)}(hEnabled only if managed is TRUEh]hEnabled only if managed is TRUE}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjRhKhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhKhj2Rubj)}(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)}(hj!Sh]hdownmix}(hj#ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjSubj)}(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.}(hj:ShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj6ShKhj7Subah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj6ShKhj2Rubeh}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhjQhNubjg)}(h**Description**h]j)}(hjcSh]h Description}(hjeShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaSubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj4hhubjg)}(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}(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.hhKhj4hhubjg)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj4hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_real (C struct)c.snd_enc_realhNtauh1hhj4hhhjQhNubh)}(hhh](h)}(h snd_enc_realh]h)}(hstruct snd_enc_realh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjShhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhjShKubj)}(h snd_enc_realh]j%)}(hjSh]h snd_enc_real}(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)}(hRealAudio encoder parametersh]hRealAudio encoder parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjShhubah}(h]h ]h"]h$]h&]uh1jahjShhhjShKubeh}(h]h ](jstructeh"]h$]h&]jjjj Tjj Tjjjuh1hhhhj4hjQhNubj)}(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}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh:}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubj)}(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; };}hj/Tsbah}(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.hhKhjTubjg)}(h **Members**h]j)}(hj@Th]hMembers}(hjBThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>Tubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjTubj)}(hhh](j)}(hB``quant_bits`` number of coupling quantization bits in the stream h](j)}(h``quant_bits``h]j)}(hj_Th]h quant_bits}(hjaThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]Tubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjYTubj)}(hhh]jg)}(h2number of coupling quantization bits in the streamh]h2number of coupling quantization bits in the stream}(hjxThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjtThKhjuTubah}(h]h ]h"]h$]h&]uh1jhjYTubeh}(h]h ]h"]h$]h&]uh1jhjtThKhjVTubj)}(h5``start_region`` coupling start region in the stream h](j)}(h``start_region``h]j)}(hjTh]h start_region}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubj)}(hhh]jg)}(h#coupling start region in the streamh]h#coupling start region in the stream}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhjVTubj)}(h'``num_regions`` number of regions valueh](j)}(h``num_regions``h]j)}(hjTh]h num_regions}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubj)}(hhh]jg)}(hnumber of regions valueh]hnumber of regions value}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhjVTubeh}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhjQhNubjg)}(h**Description**h]j)}(hjUh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj4hhubjg)}(h5These options were extracted from the OpenMAX IL spech]h5These options were extracted from the OpenMAX IL spec}(hj*UhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhKhj4hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_enc_flac (C struct)c.snd_enc_flachNtauh1hhj4hhhjQhNubh)}(hhh](h)}(h snd_enc_flach]h)}(hstruct snd_enc_flach](jL)}(hjOh]hstruct}(hjRUhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjNUhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMubj)}(h h]h }(hj`UhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNUhhhj_UhMubj)}(h snd_enc_flach]j%)}(hjLUh]h snd_enc_flac}(hjrUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnUubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNUhhhj_UhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjJUhhhj_UhMubah}(h]jEUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_UhMhjGUhhubjb)}(hhh]jg)}(hFLAC encoder parametersh]hFLAC encoder parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjUhhubah}(h]h ]h"]h$]h&]uh1jahjGUhhhj_UhMubeh}(h]h ](jstructeh"]h$]h&]jjjjUjjUjjjuh1hhhhj4hjQhNubj)}(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}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubh:}(hjUhhhNhNubeh}(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 hjUubj)}(h7struct snd_enc_flac { __u32 num; __u32 gain; };h]h7struct snd_enc_flac { __u32 num; __u32 gain; };}hjUsbah}(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.hhMhjUubjg)}(h **Members**h]j)}(hjUh]hMembers}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhjUubj)}(hhh](j)}(hQ``num`` serial number, valid only for OGG formats needs to be set by application h](j)}(h``num``h]j)}(hjVh]hnum}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjUubj)}(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}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM hjVubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjVhM hjUubj)}(h``gain`` Add replay gain tagsh](j)}(h``gain``h]j)}(hj;Vh]hgain}(hj=VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Vubah}(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 hj5Vubj)}(hhh]jg)}(hAdd replay gain tagsh]hAdd replay gain tags}(hjTVhhShNhNubah}(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 hjQVubah}(h]h ]h"]h$]h&]uh1jhj5Vubeh}(h]h ]h"]h$]h&]uh1jhjPVhM hjUubeh}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhjQhNubjg)}(h**Description**h]j)}(hj~Vh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Vubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj4hhubjg)}(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 }(hjVhhhNhNubh reference)}(h9http://flac.sourceforge.net/documentation_tools_flac.htmlh]h9http://flac.sourceforge.net/documentation_tools_flac.html}(hjVhhhNhNubah}(h]h ]h"]h$]h&]refurijVuh1jVhjVubeh}(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 hj4hhubjg)}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj4hhubjg)}(h1By default the Subset format is used by encoders.h]h1By default the Subset format is used by encoders.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj4hhubjg)}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMhj4hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dec_opus (C struct)c.snd_dec_opushNtauh1hhj4hhhjQhNubh)}(hhh](h)}(h snd_dec_opush]h)}(hstruct snd_dec_opush](jL)}(hjOh]hstruct}(hjVhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVhhhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjWhMubj)}(h snd_dec_opush]j%)}(hjVh]h snd_dec_opus}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjVhhhjWhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjVhhhjWhMubah}(h]jVah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhMhjVhhubjb)}(hhh]jg)}(h*Opus decoder parameters (raw opus packets)h]h*Opus decoder parameters (raw opus packets)}(hjuh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMOhjXWubjg)}(h **Members**h]j)}(hjWh]hMembers}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM]hjXWubj)}(hhh](j)}(hr``version`` Usually should be '1' but can be split into major (4 upper bits) and minor (4 lower bits) sub-fields. h](j)}(h ``version``h]j)}(hjWh]hversion}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMLhjWubj)}(hhh]jg)}(heUsually should be '1' but can be split into major (4 upper bits) and minor (4 lower bits) sub-fields.h]hiUsually should be ‘1’ but can be split into major (4 upper bits) and minor (4 lower bits) sub-fields.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMKhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMLhjWubj)}(h,``num_channels`` Number of output channels. h](j)}(h``num_channels``h]j)}(hjWh]h num_channels}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMMhjWubj)}(hhh]jg)}(hNumber of output channels.h]hNumber of output channels.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjWhMMhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMMhjWubj)}(h5``pre_skip`` Number of samples to discard at 48 kHz. h](j)}(h ``pre_skip``h]j)}(hjXh]hpre_skip}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMNhjXubj)}(hhh]jg)}(h'Number of samples to discard at 48 kHz.h]h'Number of samples to discard at 48 kHz.}(hj5XhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1XhMNhj2Xubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhj1XhMNhjWubj)}(h/``sample_rate`` Sample rate of original input. h](j)}(h``sample_rate``h]j)}(hjUXh]h sample_rate}(hjWXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMOhjOXubj)}(hhh]jg)}(hSample rate of original input.h]hSample rate of original input.}(hjnXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjXhMOhjkXubah}(h]h ]h"]h$]h&]uh1jhjOXubeh}(h]h ]h"]h$]h&]uh1jhjjXhMOhjWubj)}(h>``output_gain`` Gain to apply when decoding (in Q7.8 format). h](j)}(h``output_gain``h]j)}(hjXh]h output_gain}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMPhjXubj)}(hhh]jg)}(h-Gain to apply when decoding (in Q7.8 format).h]h-Gain to apply when decoding (in Q7.8 format).}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhMPhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMPhjWubj)}(h``mapping_family`` Order and meaning of output channels. Only values 0 and 1 are expected; values 2..255 are not recommended for playback. h](j)}(h``mapping_family``h]j)}(hjXh]hmapping_family}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMRhjXubj)}(hhh]jg)}(hwOrder and meaning of output channels. Only values 0 and 1 are expected; values 2..255 are not recommended for playback.h]hwOrder and meaning of output channels. Only values 0 and 1 are expected; values 2..255 are not recommended for playback.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMQhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMRhjWubj)}(hl``chan_map`` Optional channel mapping table. Describes mapping of opus streams to decoded channels. Fields: h](j)}(h ``chan_map``h]j)}(hjYh]hchan_map}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMUhjXubj)}(hhh]jg)}(h^Optional channel mapping table. Describes mapping of opus streams to decoded channels. Fields:h]h^Optional channel mapping table. Describes mapping of opus streams to decoded channels. Fields:}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMThjYubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjYhMUhjWubj)}(hH``chan_map.stream_count`` Number of streams encoded in each Ogg packet. h](j)}(h``chan_map.stream_count``h]j)}(hj;Yh]hchan_map.stream_count}(hj=YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Yubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMVhj5Yubj)}(hhh]jg)}(h-Number of streams encoded in each Ogg packet.h]h-Number of streams encoded in each Ogg packet.}(hjTYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPYhMVhjQYubah}(h]h ]h"]h$]h&]uh1jhj5Yubeh}(h]h ]h"]h$]h&]uh1jhjPYhMVhjWubj)}(hW``chan_map.coupled_count`` Number of streams whose decoders are used for two channels. h](j)}(h``chan_map.coupled_count``h]j)}(hjtYh]hchan_map.coupled_count}(hjvYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrYubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMXhjnYubj)}(hhh]jg)}(h;Number of streams whose decoders are used for two channels.h]h;Number of streams whose decoders are used for two channels.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMWhjYubah}(h]h ]h"]h$]h&]uh1jhjnYubeh}(h]h ]h"]h$]h&]uh1jhjYhMXhjWubj)}(h``chan_map.channel_map`` Which decoded channel to be used for each one. Supports only mapping families 0 and 1, max number of channels is 8.h](j)}(h``chan_map.channel_map``h]j)}(hjYh]hchan_map.channel_map}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMZhjYubj)}(hhh]jg)}(hsWhich decoded channel to be used for each one. Supports only mapping families 0 and 1, max number of channels is 8.h]hsWhich decoded channel to be used for each one. Supports only mapping families 0 and 1, max number of channels is 8.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMYhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhMZhjWubeh}(h]h ]h"]h$]h&]uh1jhjXWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhjQhNubjg)}(h**Description**h]j)}(hjYh]h Description}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(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^hj4hhubjg)}(h4These options were extracted from RFC7845 Section 5.h]h4These options were extracted from RFC7845 Section 5.}(hjZhhhNhNubah}(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[hj4hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_task_runtime (C struct)c.snd_compr_task_runtimehNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_task_runtimeh]h)}(hstruct snd_compr_task_runtimeh](jL)}(hjOh]hstruct}(hj/ZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj+Zhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hj=ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+Zhhhjuh1jhj+ZhhhjjSuh1hjTjUhj'Zhhhjuh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjZubjg)}(h **Members**h]j)}(hjZh]hMembers}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK)hjZubj)}(hhh](j)}(h#``list`` list of all managed tasks h](j)}(h``list``h]j)}(hjZh]hlist}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjZubj)}(hhh]jg)}(hlist of all managed tasksh]hlist of all managed tasks}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubj)}(h``input`` input DMA buffer h](j)}(h ``input``h]j)}(hj[h]hinput}(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)}(hinput DMA bufferh]hinput DMA buffer}(hj0[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,[hKhj-[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj,[hKhjZubj)}(h``output`` output DMA buffer h](j)}(h ``output``h]j)}(hjP[h]houtput}(hjR[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjJ[ubj)}(hhh]jg)}(houtput DMA bufferh]houtput DMA buffer}(hji[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhje[hKhjf[ubah}(h]h ]h"]h$]h&]uh1jhjJ[ubeh}(h]h ]h"]h$]h&]uh1jhje[hKhjZubj)}(h``seqno`` sequence number h](j)}(h ``seqno``h]j)}(hj[h]hseqno}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[ubj)}(hhh]jg)}(hsequence numberh]hsequence number}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjZubj)}(h4``input_size`` really used data in the input buffer h](j)}(h``input_size``h]j)}(hj[h]h input_size}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[ubj)}(hhh]jg)}(h$really used data in the input bufferh]h$really used data in the input buffer}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjZubj)}(h6``output_size`` really used data in the output buffer h](j)}(h``output_size``h]j)}(hj[h]h output_size}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj[ubj)}(hhh]jg)}(h%really used data in the output bufferh]h%really used data in the output buffer}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hKhj\ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj\hKhjZubj)}(h"``flags`` see SND_COMPRESS_TFLG_* h](j)}(h ``flags``h]j)}(hj4\h]hflags}(hj6\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj.\ubj)}(hhh]jg)}(hsee SND_COMPRESS_TFLG_*h]hsee SND_COMPRESS_TFLG_*}(hjM\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjI\hKhjJ\ubah}(h]h ]h"]h$]h&]uh1jhj.\ubeh}(h]h ]h"]h$]h&]uh1jhjI\hKhjZubj)}(h``state`` actual task state h](j)}(h ``state``h]j)}(hjm\h]hstate}(hjo\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK hjg\ubj)}(hhh]jg)}(hactual task stateh]hactual task state}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hK hj\ubah}(h]h ]h"]h$]h&]uh1jhjg\ubeh}(h]h ]h"]h$]h&]uh1jhj\hK hjZubj)}(h6``private_value`` used by the lowlevel driver (opaque)h](j)}(h``private_value``h]j)}(hj\h]h private_value}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK hj\ubj)}(hhh]jg)}(h$used by the lowlevel driver (opaque)h]h$used by the lowlevel driver (opaque)}(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\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hK hjZubeh}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_runtime (C struct)c.snd_compr_runtimehNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_runtimeh]h)}(hstruct snd_compr_runtimeh](jL)}(hjOh]hstruct}(hj]hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\hhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK'ubj)}(h h]h }(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\hhhj ]hK'ubj)}(hsnd_compr_runtimeh]j%)}(hj\h]hsnd_compr_runtime}(hj ]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj\hhhj ]hK'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj\hhhj ]hK'ubah}(h]j\ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj ]hK'hj\hhubjb)}(hhh]jg)}(hruntime stream descriptionh]hruntime stream description}(hjB]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK/hj?]hhubah}(h]h ]h"]h$]h&]uh1jahj\hhhj ]hK'ubeh}(h]h ](jstructeh"]h$]h&]jjjjZ]jjZ]jjjuh1hhhhj4hNhNubj)}(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}(hjf]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb]ubh:}(hjb]hhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hj^]ubj)}(hX struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); u32 active_tasks; u32 total_tasks; u64 task_seqno; struct list_head tasks; #endif; };h]hX struct snd_compr_runtime { snd_pcm_state_t state; struct snd_compr_ops *ops; void *buffer; u64 buffer_size; u32 fragment_size; u32 fragments; u64 total_bytes_available; u64 total_bytes_transferred; wait_queue_head_t sleep; void *private_data; unsigned char *dma_area; dma_addr_t dma_addr; size_t dma_bytes; struct snd_dma_buffer *dma_buffer_p; #if IS_ENABLED(CONFIG_SND_COMPRESS_ACCEL); u32 active_tasks; u32 total_tasks; u64 task_seqno; struct list_head tasks; #endif; };}hj]sbah}(h]h ]h"]h$]h&]j=j>uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hj^]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.hhKLhj^]ubj)}(hhh](j)}(h``state`` stream state h](j)}(h ``state``h]j)}(hj]h]hstate}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK1hj]ubj)}(hhh]jg)}(h stream stateh]h stream state}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hK1hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hK1hj]ubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hj]h]hops}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK2hj]ubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hK2hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hK2hj]ubj)}(hd``buffer`` pointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copy h](j)}(h ``buffer``h]j)}(hj!^h]hbuffer}(hj#^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK4hj^ubj)}(hhh]jg)}(hXpointer to kernel buffer, valid only when not in mmap mode or DSP doesn't implement copyh]hZpointer to kernel buffer, valid only when not in mmap mode or DSP doesn’t implement copy}(hj:^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hj7^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj6^hK4hj]ubj)}(h)``buffer_size`` size of the above buffer h](j)}(h``buffer_size``h]j)}(hj[^h]h buffer_size}(hj]^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hjU^ubj)}(hhh]jg)}(hsize of the above bufferh]hsize of the above buffer}(hjt^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjp^hK5hjq^ubah}(h]h ]h"]h$]h&]uh1jhjU^ubeh}(h]h ]h"]h$]h&]uh1jhjp^hK5hj]ubj)}(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&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK6hj^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^hK6hj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hK6hj]ubj)}(h'``fragments`` number of such fragments h](j)}(h ``fragments``h]j)}(hj^h]h fragments}(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.hhK7hj^ubj)}(hhh]jg)}(hnumber of such fragmentsh]hnumber of such fragments}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj^hK7hj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hK7hj]ubj)}(hW``total_bytes_available`` cumulative number of bytes made available in the ring buffer h](j)}(h``total_bytes_available``h]j)}(hj_h]htotal_bytes_available}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK9hj_ubj)}(hhh]jg)}(h_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK:hj:_ubj)}(hhh]jg)}(h+cumulative bytes transferred by offload DSPh]h+cumulative bytes transferred by offload DSP}(hjY_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjU_hK:hjV_ubah}(h]h ]h"]h$]h&]uh1jhj:_ubeh}(h]h ]h"]h$]h&]uh1jhjU_hK:hj]ubj)}(h``sleep`` poll sleep h](j)}(h ``sleep``h]j)}(hjy_h]hsleep}(hj{_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK;hjs_ubj)}(hhh]jg)}(h poll sleeph]h poll sleep}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hK;hj_ubah}(h]h ]h"]h$]h&]uh1jhjs_ubeh}(h]h ]h"]h$]h&]uh1jhj_hK;hj]ubj)}(h-``private_data`` driver private data pointer 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.hhKhj`ubj)}(hhh]jg)}(h6physical buffer address (not accessible from main CPU)h]h6physical buffer address (not accessible from main CPU)}(hj=`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9`hK>hj:`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj9`hK>hj]ubj)}(h``dma_bytes`` size of DMA area h](j)}(h ``dma_bytes``h]j)}(hj]`h]h dma_bytes}(hj_`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK?hjW`ubj)}(hhh]jg)}(hsize of DMA areah]hsize of DMA area}(hjv`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjr`hK?hjs`ubah}(h]h ]h"]h$]h&]uh1jhjW`ubeh}(h]h ]h"]h$]h&]uh1jhjr`hK?hj]ubj)}(h,``dma_buffer_p`` runtime dma buffer pointer h](j)}(h``dma_buffer_p``h]j)}(hj`h]h dma_buffer_p}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK@hj`ubj)}(hhh]jg)}(hruntime dma buffer pointerh]hruntime dma buffer pointer}(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'``active_tasks`` count of active tasks h](j)}(h``active_tasks``h]j)}(hj`h]h active_tasks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKAhj`ubj)}(hhh]jg)}(hcount of active tasksh]hcount of active tasks}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hKAhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKAhj]ubj)}(h#``total_tasks`` count of all tasks h](j)}(h``total_tasks``h]j)}(hjah]h total_tasks}(hj ahhhNhNubah}(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.hhKBhjaubj)}(hhh]jg)}(hcount of all tasksh]hcount of all tasks}(hj!ahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahKBhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahKBhj]ubj)}(h0``task_seqno`` last task sequence number (!= 0) h](j)}(h``task_seqno``h]j)}(hjAah]h task_seqno}(hjCahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?aubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChj;aubj)}(hhh]jg)}(h last task sequence number (!= 0)h]h last task sequence number (!= 0)}(hjZahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVahKChjWaubah}(h]h ]h"]h$]h&]uh1jhj;aubeh}(h]h ]h"]h$]h&]uh1jhjVahKChj]ubj)}(h``tasks`` list of all tasksh](j)}(h ``tasks``h]j)}(hjzah]htasks}(hj|ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxaubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChjtaubj)}(hhh]jg)}(hlist of all tasksh]hlist of all tasks}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKDhjaubah}(h]h ]h"]h$]h&]uh1jhjtaubeh}(h]h ]h"]h$]h&]uh1jhjahKChj]ubeh}(h]h ]h"]h$]h&]uh1jhj^]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_stream (C struct)c.snd_compr_streamhNtauh1hhj4hhhNhNubh)}(hhh](h)}(hsnd_compr_streamh]h)}(hstruct snd_compr_streamh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjahhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKJubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjahhhjahKJubj)}(hsnd_compr_streamh]j%)}(hjah]hsnd_compr_stream}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjahhhjahKJubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjahhhjahKJubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjahKJhjahhubjb)}(hhh]jg)}(hcompressed streamh]hcompressed stream}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK_hjbhhubah}(h]h ]h"]h$]h&]uh1jahjahhhjahKJubeh}(h]h ](jstructeh"]h$]h&]jjjj.bjj.bjjjuh1hhhhj4hNhNubj)}(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:bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6bubh:}(hj6bhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchj2bubj)}(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; };}hjSbsbah}(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.hhKehj2bubjg)}(h **Members**h]j)}(hjdbh]hMembers}(hjfbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbbubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKthj2bubj)}(hhh](j)}(h``name`` device name h](j)}(h``name``h]j)}(hjbh]hname}(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.hhKahj}bubj)}(hhh]jg)}(h device nameh]h device name}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKahjbubah}(h]h ]h"]h$]h&]uh1jhj}bubeh}(h]h ]h"]h$]h&]uh1jhjbhKahjzbubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjbh]hops}(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.hhKbhjbubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhKbhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhKbhjzbubj)}(h)``runtime`` pointer to runtime structure h](j)}(h ``runtime``h]j)}(hjbh]hruntime}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjbubj)}(hhh]jg)}(hpointer to runtime structureh]hpointer to runtime structure}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj chKchj cubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj chKchjzbubj)}(h``device`` device pointer h](j)}(h ``device``h]j)}(hj.ch]hdevice}(hj0chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,cubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKdhj(cubj)}(hhh]jg)}(hdevice pointerh]hdevice pointer}(hjGchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjCchKdhjDcubah}(h]h ]h"]h$]h&]uh1jhj(cubeh}(h]h ]h"]h$]h&]uh1jhjCchKdhjzbubj)}(hI``error_work`` delayed work used when closing the stream due to an error h](j)}(h``error_work``h]j)}(hjgch]h error_work}(hjichhhNhNubah}(h]h ]h"]h$]h&]uh1jhjecubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKehjacubj)}(hhh]jg)}(h9delayed work used when closing the stream due to an errorh]h9delayed work used when closing the stream due to an error}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj|chKehj}cubah}(h]h ]h"]h$]h&]uh1jhjacubeh}(h]h ]h"]h$]h&]uh1jhj|chKehjzbubj)}(h3``direction`` stream direction, playback/recording h](j)}(h ``direction``h]j)}(hjch]h direction}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKfhjcubj)}(hhh]jg)}(h$stream direction, playback/recordingh]h$stream direction, playback/recording}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKfhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKfhjzbubj)}(h2``metadata_set`` metadata set flag, true when set h](j)}(h``metadata_set``h]j)}(hjch]h metadata_set}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKghjcubj)}(hhh]jg)}(h metadata set flag, true when seth]h metadata set flag, true when set}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjchKghjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchKghjzbubj)}(hI``next_track`` has userspace signal next track transition, true when set h](j)}(h``next_track``h]j)}(hjdh]h next_track}(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.hhKhhj dubj)}(hhh]jg)}(h9has userspace signal next track transition, true when seth]h9has userspace signal next track transition, true when set}(hj+dhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'dhKhhj(dubah}(h]h ]h"]h$]h&]uh1jhj dubeh}(h]h ]h"]h$]h&]uh1jhj'dhKhhjzbubj)}(hE``partial_drain`` undergoing partial_drain for stream, true when set h](j)}(h``partial_drain``h]j)}(hjKdh]h partial_drain}(hjMdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIdubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKihjEdubj)}(hhh]jg)}(h2undergoing partial_drain for stream, true when seth]h2undergoing partial_drain for stream, true when set}(hjddhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`dhKihjadubah}(h]h ]h"]h$]h&]uh1jhjEdubeh}(h]h ]h"]h$]h&]uh1jhj`dhKihjzbubj)}(hB``pause_in_draining`` paused during draining state, true when set h](j)}(h``pause_in_draining``h]j)}(hjdh]hpause_in_draining}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKjhj~dubj)}(hhh]jg)}(h+paused during draining state, true when seth]h+paused during draining state, true when set}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKjhjdubah}(h]h ]h"]h$]h&]uh1jhj~dubeh}(h]h ]h"]h$]h&]uh1jhjdhKjhjzbubj)}(h-``private_data`` pointer to DSP private 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.hhKkhjdubj)}(hhh]jg)}(hpointer to DSP private datah]hpointer to DSP private data}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjdhKkhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKkhjzbubj)}(h&``dma_buffer`` allocated buffer if anyh](j)}(h``dma_buffer``h]j)}(hjdh]h dma_buffer}(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.hhKkhjdubj)}(hhh]jg)}(hallocated buffer if anyh]hallocated buffer if any}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKlhj eubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhj ehKkhjzbubeh}(h]h ]h"]h$]h&]uh1jhj2bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_ops (C struct)c.snd_compr_opshNtauh1hhj4hhhNhNubh)}(hhh](h)}(h snd_compr_opsh]h)}(hstruct snd_compr_opsh](jL)}(hjOh]hstruct}(hjPehhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjLehhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKrubj)}(h h]h }(hj^ehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjLehhhj]ehKrubj)}(h snd_compr_opsh]j%)}(hjJeh]h snd_compr_ops}(hjpehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjleubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLehhhj]ehKrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHehhhj]ehKrubah}(h]jCeah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]ehKrhjEehhubjb)}(hhh]jg)}(hcompressed path DSP operationsh]hcompressed path DSP operations}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK}hjehhubah}(h]h ]h"]h$]h&]uh1jahjEehhhj]ehKrubeh}(h]h ](jstructeh"]h$]h&]jjjjejjejjjuh1hhhhj4hNhNubj)}(hXV **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_tstamp64 *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}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh:}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(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_tstamp64 *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_tstamp64 *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; };}hjesbah}(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.hhKhjeubjg)}(h **Members**h]j)}(hjeh]hMembers}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh](j)}(hx``open`` Open the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameter h](j)}(h``open``h]j)}(hjeh]hopen}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjeubj)}(hhh]jg)}(hnOpen the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameterh]hnOpen the compressed stream This callback is mandatory and shall keep dsp ready to receive the stream parameter}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(h0``free`` Close the compressed stream, mandatory h](j)}(h``free``h]j)}(hj9fh]hfree}(hj;fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7fubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj3fubj)}(hhh]jg)}(h&Close the compressed stream, mandatoryh]h&Close the compressed stream, mandatory}(hjRfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNfhKhjOfubah}(h]h ]h"]h$]h&]uh1jhj3fubeh}(h]h ]h"]h$]h&]uh1jhjNfhKhjeubj)}(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)}(hjrfh]h set_params}(hjtfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjlfubj)}(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[}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubah}(h]h ]h"]h$]h&]uh1jhjlfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(h8``get_params`` retrieve the codec parameters, mandatory h](j)}(h``get_params``h]j)}(hjfh]h get_params}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(h(retrieve the codec parameters, mandatoryh]h(retrieve the codec parameters, mandatory}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhKhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(h6``set_metadata`` Set the metadata values for a stream h](j)}(h``set_metadata``h]j)}(hjfh]h set_metadata}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjfubj)}(hhh]jg)}(h$Set the metadata values for a streamh]h$Set the metadata values for a stream}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhKhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKhjeubj)}(hE``get_metadata`` retrieves the requested metadata values from stream h](j)}(h``get_metadata``h]j)}(hjgh]h get_metadata}(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)}(h3retrieves the requested metadata values from streamh]h3retrieves the requested metadata values from stream}(hj7ghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3ghKhj4gubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhj3ghKhjeubj)}(hb``trigger`` Trigger operations like start, pause, resume, drain, stop. This callback is mandatory h](j)}(h ``trigger``h]j)}(hjWgh]htrigger}(hjYghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjQgubj)}(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}(hjpghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmgubah}(h]h ]h"]h$]h&]uh1jhjQgubeh}(h]h ]h"]h$]h&]uh1jhjlghKhjeubj)}(h@``pointer`` Retrieve current h/w pointer information. Mandatory h](j)}(h ``pointer``h]j)}(hjgh]hpointer}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(h3Retrieve current h/w pointer information. Mandatoryh]h3Retrieve current h/w pointer information. Mandatory}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjghKhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(hh``copy`` Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmap h](j)}(h``copy``h]j)}(hjgh]hcopy}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(h^Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmaph]h`Copy the compressed data to/from userspace, Optional Can’t be implemented if DSP supports mmap}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKhjeubj)}(h,``mmap`` DSP mmap method to mmap DSP memory h](j)}(h``mmap``h]j)}(hjhh]hmmap}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjgubj)}(hhh]jg)}(h"DSP mmap method to mmap DSP memoryh]h"DSP mmap method to mmap DSP memory}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(hd``ack`` Ack for DSP when data is written to audio buffer, Optional Not valid if copy is implemented h](j)}(h``ack``h]j)}(hj=hh]hack}(hj?hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;hubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj7hubj)}(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}(hjVhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjShubah}(h]h ]h"]h$]h&]uh1jhj7hubeh}(h]h ]h"]h$]h&]uh1jhjRhhKhjeubj)}(h2``get_caps`` Retrieve DSP capabilities, mandatory h](j)}(h ``get_caps``h]j)}(hjwhh]hget_caps}(hjyhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjqhubj)}(hhh]jg)}(h$Retrieve DSP capabilities, mandatoryh]h$Retrieve DSP capabilities, mandatory}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjqhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(hI``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory h](j)}(h``get_codec_caps``h]j)}(hjhh]hget_codec_caps}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h5Retrieve capabilities for a specific codec, mandatoryh]h5Retrieve capabilities for a specific codec, mandatory}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(hJ``task_create`` Create a set of input/output buffers for accel operations h](j)}(h``task_create``h]j)}(hjhh]h task_create}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjhubj)}(hhh]jg)}(h9Create a set of input/output buffers for accel operationsh]h9Create a set of input/output buffers for accel operations}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjeubj)}(h9``task_start`` Start (queue) a task for accel operations h](j)}(h``task_start``h]j)}(hj"ih]h task_start}(hj$ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj iubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjiubj)}(hhh]jg)}(h)Start (queue) a task for accel operationsh]h)Start (queue) a task for accel operations}(hj;ihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7ihKhj8iubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhj7ihKhjeubj)}(h9``task_stop`` Stop (dequeue) a task for accel operations h](j)}(h ``task_stop``h]j)}(hj[ih]h task_stop}(hj]ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYiubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjUiubj)}(hhh]jg)}(h*Stop (dequeue) a task for accel operationsh]h*Stop (dequeue) a task for accel operations}(hjtihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjpihKhjqiubah}(h]h ]h"]h$]h&]uh1jhjUiubeh}(h]h ]h"]h$]h&]uh1jhjpihKhjeubj)}(hE``task_free`` Free a set of input/output buffers for accel operationsh](j)}(h ``task_free``h]j)}(hjih]h task_free}(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.hhKhjiubj)}(hhh]jg)}(h7Free a set of input/output buffers for accel operationsh]h7Free a set of input/output buffers for accel operations}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihKhjeubeh}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr (C struct) c.snd_comprhNtauh1hhj4hhhNhNubh)}(hhh](h)}(h snd_comprh]h)}(hstruct snd_comprh](jL)}(hjOh]hstruct}(hjihhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjihhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihKubj)}(h snd_comprh]j%)}(hjih]h snd_compr}(hjjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj jubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjihhhjihKubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihKhjihhubjb)}(hhh]jg)}(hCompressed deviceh]hCompressed device}(hj0jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj-jhhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihKubeh}(h]h ](jstructeh"]h$]h&]jjjjHjjjHjjjjuh1hhhhj4hNhNubj)}(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}(hjTjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPjubh:}(hjPjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjLjubj)}(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; };}hjmjsbah}(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.hhKhjLjubjg)}(h **Members**h]j)}(hj~jh]hMembers}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|jubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjLjubj)}(hhh](j)}(h``name`` DSP device name h](j)}(h``name``h]j)}(hjjh]hname}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjubj)}(hhh]jg)}(hDSP device nameh]hDSP device name}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjjubj)}(h#``dev`` associated device instance h](j)}(h``dev``h]j)}(hjjh]hdev}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjubj)}(hhh]jg)}(hassociated device instanceh]hassociated device instance}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjjubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjkh]hops}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj kubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj kubj)}(hhh]jg)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hj(khhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj$khKhj%kubah}(h]h ]h"]h$]h&]uh1jhj kubeh}(h]h ]h"]h$]h&]uh1jhj$khKhjjubj)}(h)``private_data`` pointer to DSP pvt data h](j)}(h``private_data``h]j)}(hjHkh]h private_data}(hjJkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFkubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjBkubj)}(hhh]jg)}(hpointer to DSP pvt datah]hpointer to DSP pvt data}(hjakhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]khKhj^kubah}(h]h ]h"]h$]h&]uh1jhjBkubeh}(h]h ]h"]h$]h&]uh1jhj]khKhjjubj)}(h``card`` sound card pointer h](j)}(h``card``h]j)}(hjkh]hcard}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj{kubj)}(hhh]jg)}(hsound card pointerh]hsound card pointer}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhKhjkubah}(h]h ]h"]h$]h&]uh1jhj{kubeh}(h]h ]h"]h$]h&]uh1jhjkhKhjjubj)}(h,``direction`` Playback or capture direction h](j)}(h ``direction``h]j)}(hjkh]h direction}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubj)}(hhh]jg)}(hPlayback or capture directionh]hPlayback or capture direction}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhKhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKhjjubj)}(h``lock`` device lock h](j)}(h``lock``h]j)}(hjkh]hlock}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubj)}(hhh]jg)}(h device lockh]h device lock}(hj lhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhKhj lubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhKhjjubj)}(h``device`` device id h](j)}(h ``device``h]j)}(hj,lh]hdevice}(hj.lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*lubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj&lubj)}(hhh]jg)}(h device idh]h device id}(hjElhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAlhKhjBlubah}(h]h ]h"]h$]h&]uh1jhj&lubeh}(h]h ]h"]h$]h&]uh1jhjAlhKhjjubj)}(h@``use_pause_in_draining`` allow pause in draining, true when seth](j)}(h``use_pause_in_draining``h]j)}(hjelh]huse_pause_in_draining}(hjglhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjclubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj_lubj)}(hhh]jg)}(h&allow pause in draining, true when seth]h&allow pause in draining, true when set}(hj~lhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj{lubah}(h]h ]h"]h$]h&]uh1jhj_lubeh}(h]h ]h"]h$]h&]uh1jhjzlhKhjjubeh}(h]h ]h"]h$]h&]uh1jhjLjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_compr_use_pause_in_draining (C function)!c.snd_compr_use_pause_in_draininghNtauh1hhj4hhhNhNubh)}(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}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhKubj)}(hsnd_compr_use_pause_in_drainingh]j%)}(hsnd_compr_use_pause_in_drainingh]hsnd_compr_use_pause_in_draining}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhKubj@)}(h$(struct snd_compr_stream *substream)h]jF)}(h"struct snd_compr_stream *substreamh](jL)}(hjOh]hstruct}(hjlhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjlubj)}(h h]h }(hj mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjlsb!c.snd_compr_use_pause_in_drainingasbuh1hhjlubj)}(h h]h }(hj:mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlubj)}(hjh]h*}(hjHmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj%)}(h substreamh]h substream}(hjUmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubah}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhKubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhKhjlhhubjb)}(hhh]jg)}(h(Allow pause and resume in draining stateh]h(Allow pause and resume in draining state}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj|mhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhj4hNhNubj)}(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)}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmubj)}(hhh]j)}(hA``struct snd_compr_stream *substream`` compress substream to set h](j)}(h&``struct snd_compr_stream *substream``h]j)}(hjmh]h"struct snd_compr_stream *substream}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmubj)}(hhh]jg)}(hcompress substream to seth]hcompress substream to set}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjmubjg)}(h**Description**h]j)}(hjmh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmubjg)}(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.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjmubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_compr_set_runtime_buffer (C function)c.snd_compr_set_runtime_bufferhNtauh1hhj4hhhNhNubh)}(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}(hj@nhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjuh1jhj(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](jF)}(hstruct snd_compr_stream *streamh](jL)}(hjOh]hstruct}(hj}nhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjynubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjynubh)}(hhh]j%)}(hsnd_compr_streamh]hsnd_compr_stream}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jjcnsbc.snd_compr_set_runtime_bufferasbuh1hhjynubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjynubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjynubj%)}(hstreamh]hstream}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjynubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjunubjF)}(hstruct snd_dma_buffer *bufph](jL)}(hjOh]hstruct}(hjnhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjnubj)}(h h]h }(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubh)}(hhh]j%)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj ohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj oubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]jnc.snd_compr_set_runtime_bufferasbuh1hhjnubj)}(h h]h }(hj+ohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj)}(hjh]h*}(hj9ohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj%)}(hbufph]hbufp}(hjFohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjunubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjjSuh1hjTjUhj8nhhhjNnhMubah}(h]j3nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjNnhMhj5nhhubjb)}(hhh]jg)}(hSet the Compress runtime bufferh]hSet the Compress runtime buffer}(hjpohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjmohhubah}(h]h ]h"]h$]h&]uh1jahj5nhhhjNnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjojjojjjuh1hhhhj4hNhNubj)}(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)}(hjoh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubj)}(hhh](j)}(h;``struct snd_compr_stream *stream`` compress stream to set h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjoh]hstruct snd_compr_stream *stream}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubj)}(hhh]jg)}(hcompress stream to seth]hcompress stream to set}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjoubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohMhjoubj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hjoh]hstruct snd_dma_buffer *bufp}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubj)}(hhh]jg)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohMhjpubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjohMhjoubeh}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h**Description**h]j)}(hj%ph]h Description}(hj'phhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#pubah}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubjg)}(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 }(hj;phhhNhNubj)}(h**bufp**h]hbufp}(hjCphhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;pubhA is non-NULL. Otherwise it clears the current buffer information.}(hj;phhhNhNubeh}(h]h ]h"]h$]h&]uh1jfhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhNhNubeh}(h]compress-offload-apiah ]h"]compress offload apiah$]h&]uh1hhj3hhhhhKXubeh}(h]compress-offloadah ]h"]compress offloadah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hASoCh]hASoC}(hjvphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsphhhhhK_ubh)}(hhh](h)}(h ASoC Core APIh]h ASoC Core API}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphhhhhKbubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_kcontrol_component (C function)c.snd_soc_kcontrol_componenthNtauh1hhjphhhNhNubh)}(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}(hjphhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjphhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjphhhjphMubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jsnd_soc_kcontrol_componentsbc.snd_soc_kcontrol_componentasbuh1hhjphhhjphMubj)}(h h]h }(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjphhhjphMubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjphMubj)}(hsnd_soc_kcontrol_componenth]j%)}(hjph]hsnd_soc_kcontrol_component}(hj qhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj qubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjphhhjphMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj(qhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$qubj)}(h h]h }(hj5qhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$qubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjFqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHqmodnameN classnameNjj)}j]jpc.snd_soc_kcontrol_componentasbuh1hhj$qubj)}(h h]h }(hjdqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$qubj)}(hjh]h*}(hjrqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$qubj%)}(hkcontrolh]hkcontrol}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$qubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj qubah}(h]h ]h"]h$]h&]j=j>uh1j?hjphhhjphMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjphhhjphMubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjphMhjphhubjb)}(hhh]jg)}(h1Returns the component that registered the controlh]h1Returns the component that registered the control}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjqhhubah}(h]h ]h"]h$]h&]uh1jahjphhhjphMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjphNhNubj)}(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)}(hjqh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM!hjqubj)}(hhh]j)}(hM``struct snd_kcontrol *kcontrol`` The control for which to get the component h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjqh]hstruct snd_kcontrol *kcontrol}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhMhjqubj)}(hhh]jg)}(h*The control for which to get the componenth]h*The control for which to get the component}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjqhMhjrubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubjg)}(h**Note**h]j)}(hj%rh]hNote}(hj'rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#rubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM!hjqubjg)}(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.}(hj;rhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:99: ./include/sound/soc.hhM!hjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_find_dai (C function)c.snd_soc_find_daihNtauh1hhjphhhNhNubh)}(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}(hjjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjfrhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjxrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfrhhhjwrhMubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jsnd_soc_find_daisbc.snd_soc_find_daiasbuh1hhjfrhhhjwrhMubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfrhhhjwrhMubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfrhhhjwrhMubj)}(hsnd_soc_find_daih]j%)}(hjrh]hsnd_soc_find_dai}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfrhhhjwrhMubj@)}(h.(const struct snd_soc_dai_link_component *dlc)h]jF)}(h,const struct snd_soc_dai_link_component *dlch](jL)}(hj\h]hconst}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubjL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hj shhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_soc_dai_link_componenth]hsnd_soc_dai_link_component}(hjshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]jrc.snd_soc_find_daiasbuh1hhjrubj)}(h h]h }(hj;shhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjIshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hdlch]hdlc}(hjVshhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubah}(h]h ]h"]h$]h&]j=j>uh1j?hjfrhhhjwrhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjbrhhhjwrhMubah}(h]j]rah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjwrhMhj_rhhubjb)}(hhh]jg)}(hFind a registered DAIh]hFind a registered DAI}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj}shhubah}(h]h ]h"]h$]h&]uh1jahj_rhhhjwrhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhjphNhNubj)}(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)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsubj)}(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)}(hjsh]h,const struct snd_soc_dai_link_component *dlc}(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:100: ./sound/soc/soc-core.chMhjsubj)}(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}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjsubjg)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsubjg)}(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.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsubjg)}(h **Return**h]j)}(hj#th]hReturn}(hj%thhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!tubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsubjg)}(h%pointer of DAI, or NULL if not found.h]h%pointer of DAI, or NULL if not found.}(hj9thhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_remove_pcm_runtime (C function)c.snd_soc_remove_pcm_runtimehNtauh1hhjphhhNhNubh)}(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}(hjhthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdthhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMrubj)}(h h]h }(hjwthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdthhhjvthMrubj)}(hsnd_soc_remove_pcm_runtimeh]j%)}(hsnd_soc_remove_pcm_runtimeh]hsnd_soc_remove_pcm_runtime}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjdthhhjvthMrubj@)}(h<(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)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_remove_pcm_runtimeasbuh1hhjtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj%)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjuhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hj$uhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj5uhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7umodnameN classnameNjj)}j]jtc.snd_soc_remove_pcm_runtimeasbuh1hhjuubj)}(h h]h }(hjSuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjauhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(hrtdh]hrtd}(hjnuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjdthhhjvthMrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`thhhjvthMrubah}(h]j[tah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvthMrhj]thhubjb)}(hhh]jg)}(hRemove a pcm_runtime from cardh]hRemove a pcm_runtime from 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.chMrhjuhhubah}(h]h ]h"]h$]h&]uh1jahj]thhhjvthMrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjphNhNubj)}(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)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMvhjuubj)}(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)}(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.chMshjuubj)}(hhh]jg)}(h*The ASoC card to which the pcm_runtime hash]h*The ASoC card to which the pcm_runtime has}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjuhMshjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMshjuubj)}(h>``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjvh]hstruct snd_soc_pcm_runtime *rtd}(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:100: ./sound/soc/soc-core.chMthj vubj)}(hhh]jg)}(hThe pcm_runtime to removeh]hThe pcm_runtime to remove}(hj+vhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj'vhMthj(vubah}(h]h ]h"]h$]h&]uh1jhj vubeh}(h]h ]h"]h$]h&]uh1jhj'vhMthjuubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjMvh]h Description}(hjOvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMvhjuubjg)}(h7This function removes a pcm_runtime from the ASoC card.h]h7This function removes a pcm_runtime from the ASoC card.}(hjcvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMuhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_add_pcm_runtime (C function)c.snd_soc_add_pcm_runtimehNtauh1hhjphhhNhNubh)}(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}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjvhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvhhhjvhMubj)}(hsnd_soc_add_pcm_runtimeh]j%)}(hsnd_soc_add_pcm_runtimeh]hsnd_soc_add_pcm_runtime}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjvhhhjvhMubj@)}(h>(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](jF)}(hstruct snd_soc_card *cardh](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_soc_cardh]h snd_soc_card}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jjvsbc.snd_soc_add_pcm_runtimeasbuh1hhjvubj)}(h h]h }(hj whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hcardh]hcard}(hj(whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubjF)}(h!struct snd_soc_dai_link *dai_linkh](jL)}(hjOh]hstruct}(hjAwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=wubj)}(h h]h }(hjNwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=wubh)}(hhh]j%)}(hsnd_soc_dai_linkh]hsnd_soc_dai_link}(hj_whhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjawmodnameN classnameNjj)}j]j wc.snd_soc_add_pcm_runtimeasbuh1hhj=wubj)}(h h]h }(hj}whhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=wubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=wubj%)}(hdai_linkh]hdai_link}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=wubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjvubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjvhhhjvhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjvhhhjvhMubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjvhMhjvhhubjb)}(hhh]jg)}(h*Add a pcm_runtime dynamically via dai_linkh]h*Add a pcm_runtime dynamically via dai_link}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwhhubah}(h]h ]h"]h$]h&]uh1jahjvhhhjvhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime is added ``struct snd_soc_dai_link *dai_link`` The DAI link to find pcm_runtime **Description** This function adds a pcm_runtime ASoC card by using dai_link. **Note** Topology can use this API to add pcm_runtime when probing the topology component. And machine drivers can still define static DAI links in dai_link array.h](jg)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubj)}(hhh](j)}(hN``struct snd_soc_card *card`` The ASoC card to which the pcm_runtime is added h](j)}(h``struct snd_soc_card *card``h]j)}(hjxh]hstruct snd_soc_card *card}(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.chMhjwubj)}(hhh]jg)}(h/The ASoC card to which the pcm_runtime is addedh]h/The ASoC card to which the pcm_runtime is added}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjxhMhjxubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjxhMhjwubj)}(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)}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:xubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj6xubj)}(hhh]jg)}(h The DAI link to find pcm_runtimeh]h The DAI link to find pcm_runtime}(hjUxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQxhMhjRxubah}(h]h ]h"]h$]h&]uh1jhj6xubeh}(h]h ]h"]h$]h&]uh1jhjQxhMhjwubeh}(h]h ]h"]h$]h&]uh1jhjwubjg)}(h**Description**h]j)}(hjwxh]h Description}(hjyxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuxubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(h=This function adds a pcm_runtime ASoC card by using dai_link.h]h=This function adds a pcm_runtime ASoC card by using dai_link.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(h**Note**h]j)}(hjxh]hNote}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubjg)}(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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_runtime_set_dai_fmt (C function)c.snd_soc_runtime_set_dai_fmthNtauh1hhjphhhNhNubh)}(hhh](h)}(hWint snd_soc_runtime_set_dai_fmt (struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h]h)}(hVint snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjxhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxhhhjxhMubj)}(hsnd_soc_runtime_set_dai_fmth]j%)}(hsnd_soc_runtime_set_dai_fmth]hsnd_soc_runtime_set_dai_fmt}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjxhhhjxhMubj@)}(h7(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hj yhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjyubj)}(h h]h }(hj-yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj>yhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj;yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@ymodnameN classnameNjj)}j]j)}jjysbc.snd_soc_runtime_set_dai_fmtasbuh1hhjyubj)}(h h]h }(hj^yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjlyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hrtdh]hrtd}(hjyyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubjF)}(hunsigned int dai_fmth](h)}(hunsignedh]hunsigned}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(hinth]hint}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj%)}(hdai_fmth]hdai_fmt}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjyubeh}(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)}(h)Change DAI link format for a ASoC runtimeh]h)Change DAI link format for a ASoC runtime}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhjxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj zjj zjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The runtime for which the DAI link format should be changed ``unsigned int dai_fmt`` The new DAI link format **Description** This function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime. **Note** For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function. Returns 0 on success, otherwise a negative error code.h](jg)}(h**Parameters**h]j)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubj)}(hhh](j)}(h```struct snd_soc_pcm_runtime *rtd`` The runtime for which the DAI link format should be changed h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hj5zh]hstruct snd_soc_pcm_runtime *rtd}(hj7zhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3zubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj/zubj)}(hhh]jg)}(h;The runtime for which the DAI link format should be changedh]h;The runtime for which the DAI link format should be changed}(hjNzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjJzhMhjKzubah}(h]h ]h"]h$]h&]uh1jhj/zubeh}(h]h ]h"]h$]h&]uh1jhjJzhMhj,zubj)}(h1``unsigned int dai_fmt`` The new DAI link format h](j)}(h``unsigned int dai_fmt``h]j)}(hjnzh]hunsigned int dai_fmt}(hjpzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjhzubj)}(hhh]jg)}(hThe new DAI link formath]hThe new DAI link format}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjzhMhjzubah}(h]h ]h"]h$]h&]uh1jhjhzubeh}(h]h ]h"]h$]h&]uh1jhjzhMhj,zubeh}(h]h ]h"]h$]h&]uh1jhjzubjg)}(h**Description**h]j)}(hjzh]h Description}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubjg)}(hkThis function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime.h]hkThis function updates the DAI link format for all DAIs connected to the DAI link for the specified runtime.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubjg)}(h**Note**h]j)}(hjzh]hNote}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubjg)}(h~For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function.h]h~For setups with a static format set the dai_fmt field in the corresponding snd_dai_link struct instead of using this function.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_set_dmi_name (C function)c.snd_soc_set_dmi_namehNtauh1hhjphhhNhNubh)}(hhh](h)}(h4int snd_soc_set_dmi_name (struct snd_soc_card *card)h]h)}(h3int snd_soc_set_dmi_name(struct snd_soc_card *card)h](h)}(hinth]hint}(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.chMiubj)}(h h]h }(hj3{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj {hhhj2{hMiubj)}(hsnd_soc_set_dmi_nameh]j%)}(hsnd_soc_set_dmi_nameh]hsnd_soc_set_dmi_name}(hjE{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjA{ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj {hhhj2{hMiubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hja{hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj]{ubj)}(h h]h }(hjn{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]{ubh)}(hhh]j%)}(h snd_soc_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)}jjG{sbc.snd_soc_set_dmi_nameasbuh1hhj]{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>uh1jEhjY{ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj {hhhj2{hMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{hhhj2{hMiubah}(h]j{ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj2{hMihj{hhubjb)}(hhh]jg)}(hRegister DMI names to cardh]hRegister DMI names to card}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMihj{hhubah}(h]h ]h"]h$]h&]uh1jahj{hhhj2{hMiubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_card *card`` The card to register DMI names **Description** An Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of "vendor-product-version-board" (Character '-' is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card. Possible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAX This function also supports flavoring the card longname to provide the extra differentiation, like "vendor-product-version-board-flavor". We only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE. Returns 0 on success, otherwise a negative error code.h](jg)}(h**Parameters**h]j)}(hj|h]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmhj|ubj)}(hhh]j)}(h=``struct snd_soc_card *card`` The card to register DMI names h](j)}(h``struct snd_soc_card *card``h]j)}(hj%|h]hstruct snd_soc_card *card}(hj'|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#|ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMjhj|ubj)}(hhh]jg)}(hThe card to register DMI namesh]hThe card to register DMI names}(hj>|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:|hMjhj;|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj:|hMjhj|ubah}(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:100: ./sound/soc/soc-core.chMlhj|ubjg)}(hXXAn Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of "vendor-product-version-board" (Character '-' is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card.h]hX`An Intel machine driver may be used by many different devices but are difficult for userspace to differentiate, since machine drivers usually use their own name as the card short name and leave the card long name blank. To differentiate such devices and fix bugs due to lack of device-specific configurations, this function allows DMI info to be used as the sound card long name, in the format of “vendor-product-version-board” (Character ‘-’ is used to separate different DMI fields here). This will help the user space to load the device-specific Use Case Manager (UCM) configurations for the card.}(hjv|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMkhj|ubjg)}(hPossible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAXh]hPossible card long names may be: DellInc.-XPS139343-01-0310JH ASUSTeKCOMPUTERINC.-T100TA-1.0-T100TA Circuitco-MinnowboardMaxD0PLATFORM-D0-MinnowBoardMAX}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMvhj|ubjg)}(hThis function also supports flavoring the card longname to provide the extra differentiation, like "vendor-product-version-board-flavor".h]hThis function also supports flavoring the card longname to provide the extra differentiation, like “vendor-product-version-board-flavor”.}(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|ubjg)}(hWe only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE.h]hWe only keep number and alphabet characters and a few separator characters in the card long name since UCM in the user space uses the card long names as card configuration directory names and AudoConf cannot support special characters like SPACE.}(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|ubjg)}(h6Returns 0 on success, otherwise a negative error code.h]h6Returns 0 on success, otherwise a negative error code.}(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.chMhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_cnew (C function)c.snd_soc_cnewhNtauh1hhjphhhNhNubh)}(hhh](h)}(hstruct snd_kcontrol * snd_soc_cnew (const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h]h)}(hstruct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](jL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hMu ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}j snd_soc_cnewsbc.snd_soc_cnewasbuh1hhj|hhhj|hMu ubj)}(h h]h }(hj!}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|hhhj|hMu ubj)}(hjh]h*}(hj/}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|hhhj|hMu ubj)}(h snd_soc_cnewh]j%)}(hj}h]h snd_soc_cnew}(hj@}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<}ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj|hhhj|hMu ubj@)}(ha(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](jF)}(h(const struct snd_kcontrol_new *_templateh](jL)}(hj\h]hconst}(hj[}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjW}ubj)}(h h]h }(hjh}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjW}ubjL)}(hjOh]hstruct}(hjv}hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjW}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjW}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_cnewasbuh1hhjW}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjW}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjW}ubj%)}(h _templateh]h _template}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjW}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjS}ubjF)}(h void *datah](h)}(hvoidh]hvoid}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj}ubj)}(h h]h }(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj}ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj%)}(hdatah]hdata}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjS}ubjF)}(hconst char *long_nameh](jL)}(hj\h]hconst}(hj(~hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$~ubj)}(h h]h }(hj5~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$~ubh)}(hcharh]hchar}(hjC~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$~ubj)}(h h]h }(hjQ~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$~ubj)}(hjh]h*}(hj_~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$~ubj%)}(h long_nameh]h long_name}(hjl~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjS}ubjF)}(hconst char *prefixh](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%)}(hprefixh]hprefix}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjS}ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj|hhhj|hMu ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhj|hMu ubah}(h]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hMu hj|hhubjb)}(hhh]jg)}(hcreate new controlh]hcreate new control}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu hj~hhubah}(h]h ]h"]h$]h&]uh1jahj|hhhj|hMu ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjphNhNubj)}(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)}(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.chMy hjubj)}(hhh](j)}(h>``const struct snd_kcontrol_new *_template`` control template h](j)}(h,``const struct snd_kcontrol_new *_template``h]j)}(hj4h]h(const struct snd_kcontrol_new *_template}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMv hj.ubj)}(hhh]jg)}(hcontrol templateh]hcontrol template}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjIhMv hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhMv hj+ubj)}(h$``void *data`` control private data h](j)}(h``void *data``h]j)}(hjmh]h void *data}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMw hjgubj)}(hhh]jg)}(hcontrol private datah]hcontrol private data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMw hjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhMw hj+ubj)}(h,``const char *long_name`` control long name h](j)}(h``const char *long_name``h]j)}(hjh]hconst char *long_name}(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.chMx hjubj)}(hhh]jg)}(hcontrol long nameh]hcontrol long name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMx hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMx hj+ubj)}(h+``const char *prefix`` control name prefix h](j)}(h``const char *prefix``h]j)}(hjh]hconst char *prefix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hjubj)}(hhh]jg)}(hcontrol name prefixh]hcontrol name prefix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMy hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMy hj+ubeh}(h]h ]h"]h$]h&]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)}(h3Create a new mixer control from a template control.h]h3Create a new mixer control from a template control.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMz hjubjg)}(h"Returns 0 for success, else error.h]h"Returns 0 for success, else error.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM| hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_add_component_controls (C function) c.snd_soc_add_component_controlshNtauh1hhjphhhNhNubh)}(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}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhf/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 hjjhhhj|hM ubj)}(hsnd_soc_add_component_controlsh]j%)}(hsnd_soc_add_component_controlsh]hsnd_soc_add_component_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjjhhhj|hM 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}(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)}jjsb c.snd_soc_add_component_controlsasbuh1hhjubj)}(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)}(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}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjVhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j c.snd_soc_add_component_controlsasbuh1hhjubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int num_controlsh](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%)}(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?hjjhhhj|hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhj|hM ubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hM hjchhubjb)}(hhh]jg)}(h(Add an array of controls to a component.h]h(Add an array of controls to a component.}(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&]uh1jahjchhhj|hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1hhhhjphNhNubj)}(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)}(hjKh]h#struct snd_soc_component *component}(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)}(hComponent to add controls toh]hComponent to add controls to}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj`hM hjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hM hjBubj)}(hE``const struct snd_kcontrol_new *controls`` Array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjh]h'const struct snd_kcontrol_new *controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj~ubj)}(hhh]jg)}(hArray of controls to addh]hArray of controls to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhjhM hjBubj)}(h>``unsigned int num_controls`` Number of elements in the array h](j)}(h``unsigned int num_controls``h]j)}(hjh]hunsigned int num_controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hNumber of elements in the arrayh]hNumber of elements in the array}(hjւhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj҂hM hjӂubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj҂hM hjBubeh}(h]h ]h"]h$]h&]uh1jhj&ubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj&ubjg)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_add_card_controls (C function)c.snd_soc_add_card_controlshNtauh1hhjphhhNhNubh)}(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&]uh1hhj9hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9hhhjKhM 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$hjZubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9hhhjKhM 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}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj`sbc.snd_soc_add_card_controlsasbuh1hhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjƃhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hsoc_cardh]hsoc_card}(hjӃhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]jc.snd_soc_add_card_controlsasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcontrolsh]hcontrols}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubjF)}(hint num_controlsh](h)}(hinth]hint}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj%)}(h num_controlsh]h num_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj9hhhjKhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj5hhhjKhM ubah}(h]j0ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjKhM hj2hhubjb)}(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.}(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&]uh1jahj2hhhjKhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjՄjjՄjjjuh1hhhhjphNhNubj)}(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}(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لubj)}(hhh](j)}(h>``struct snd_soc_card *soc_card`` SoC card to add controls to h](j)}(h!``struct snd_soc_card *soc_card``h]j)}(hjh]hstruct snd_soc_card *soc_card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hSoC card to add controls toh]hSoC card to add controls to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hj7h]h'const struct snd_kcontrol_new *controls}(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)}(harray of controls to addh]harray of controls to add}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhM hjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhM hjubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hjph]hint num_controls}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjjubj)}(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&]uh1jhjjubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjلubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjلubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_add_dai_controls (C function)c.snd_soc_add_dai_controlshNtauh1hhjphhhNhNubh)}(hhh](h)}(hqint snd_soc_add_dai_controls (struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h]h)}(hpint snd_soc_add_dai_controls(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_add_dai_controlsh]j%)}(hsnd_soc_add_dai_controlsh]hsnd_soc_add_dai_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hT(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](jF)}(hstruct snd_soc_dai *daih](jL)}(hjOh]hstruct}(hj-hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(h h]h }(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_add_dai_controlsasbuh1hhj)ubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(h'const struct snd_kcontrol_new *controlsh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjdžhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hj؆hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjՆubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjچmodnameN classnameNjj)}j]jgc.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%)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubjF)}(hint num_controlsh](h)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj%)}(h num_controlsh]h num_controls}(hjFhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj%ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(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.}(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 hjmhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(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 hjubj)}(hhh]jg)}(hDAI to add controls toh]hDAI to add controls to}(hjʇhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjƇhM hjLJubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjƇhM hjubj)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjh]h'const struct snd_kcontrol_new *controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(harray of controls to addh]harray of controls to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(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 hjubj)}(hhh]jg)}(hnumber of elements in the arrayh]hnumber of elements in the array}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj8hM hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM 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&]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.}(hjthhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_card (C function)c.snd_soc_register_cardhNtauh1hhjphhhNhNubh)}(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$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&]uh1jKhj܈ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj܈ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjƈsbc.snd_soc_register_cardasbuh1hhj܈ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj܈ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj܈ubj%)}(hcardh]hcard}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj܈ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj؈ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h"Register a card with the ASoC coreh]h"Register a card with the ASoC core}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj`hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjphNhNubj)}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_card (C function)c.snd_soc_unregister_cardhNtauh1hhjphhhNhNubh)}(hhh](h)}(h8void snd_soc_unregister_card (struct snd_soc_card *card)h]h)}(h7void snd_soc_unregister_card(struct snd_soc_card *card)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM ubj)}(hsnd_soc_unregister_cardh]j%)}(hsnd_soc_unregister_cardh]hsnd_soc_unregister_card}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.snd_soc_unregister_cardasbuh1hhj7ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM hjhhubjb)}(hhh]jg)}(h$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&]uh1jahjhhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj֊jj֊jjjuh1hhhhjphNhNubj)}(hB**Parameters** ``struct snd_soc_card *card`` Card to unregisterh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjފubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM# hjڊubj)}(hhh]j)}(h0``struct snd_soc_card *card`` Card to unregisterh](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM% hjubj)}(hhh]jg)}(hCard to unregisterh]hCard to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM! hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM% hjubah}(h]h ]h"]h$]h&]uh1jhjڊubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_register_dai (C function)c.snd_soc_register_daihNtauh1hhjphhhNhNubh)}(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}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjUhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjfhMx ubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jsnd_soc_register_daisbc.snd_soc_register_daiasbuh1hhjUhhhjfhMx ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhjfhMx ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhjfhMx 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>uh1jhjUhhhjfhMx 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}(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]jc.snd_soc_register_daiasbuh1hhjϋ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}(hj*hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjϋubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjˋubjF)}(h"struct snd_soc_dai_driver *dai_drvh](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_dai_driverh]hsnd_soc_dai_driver}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jc.snd_soc_register_daiasbuh1hhj?ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj%)}(hdai_drvh]hdai_drv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjˋubjF)}(hbool legacy_dai_namingh](h)}(hj̖h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(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?hjUhhhjfhMx ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjQhhhjfhMx ubah}(h]jLah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhMx hjNhhubjb)}(hhh]jg)}(h/Register a DAI dynamically & create its widgetsh]h/Register a DAI dynamically & create its widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx hjhhubah}(h]h ]h"]h$]h&]uh1jahjNhhhjfhMx ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` The component the DAIs are registered for ``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAI ``bool legacy_dai_naming`` if ``true``, use legacy single-name format; if ``false``, use multiple-name format; **Description** Topology can use this API to register DAIs when probing a component. These DAIs's widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM| hjubj)}(hhh](j)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hj9h]h#struct snd_soc_component *component}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMz hj3ubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNhMz hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhMz hj0ubj)}(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)}(hjrh]h"struct snd_soc_dai_driver *dai_drv}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM{ hjlubj)}(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&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhM{ hj0ubj)}(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)}(hjh]hbool legacy_dai_naming}(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)}(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| hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM} hj0ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubjg)}(hTopology can use this API to register DAIs when probing a component. These DAIs's widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.h]hTopology can use this API to register DAIs when probing a component. These DAIs’s widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM~ hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_dais (C function)c.snd_soc_unregister_daishNtauh1hhjphhhNhNubh)}(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}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjLhhhf/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 hjLhhhj^hM ubj)}(hsnd_soc_unregister_daish]j%)}(hsnd_soc_unregister_daish]hsnd_soc_unregister_dais}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjLhhhj^hM ubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjssbc.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}(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^hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjHhhhj^hM ubah}(h]jCah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^hM hjEhhubjb)}(hhh]jg)}(h"Unregister DAIs from the ASoC coreh]h"Unregister DAIs from the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj hhubah}(h]h ]h"]h$]h&]uh1jahjEhhhj^hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhjphNhNubj)}(hq**Parameters** ``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](jg)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj,ubj)}(hhh]j)}(h_``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](j)}(h'``struct snd_soc_component *component``h]j)}(hjQh]h#struct snd_soc_component *component}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjKubj)}(hhh]jg)}(h7The component for which the DAIs should be unregisteredh]h7The component for which the DAIs should be unregistered}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM hjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_dais (C function)c.snd_soc_register_daishNtauh1hhjphhhNhNubh)}(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}(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_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}(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_register_daisasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_soc_dai_driver *dai_drvh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j"c.snd_soc_register_daisasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hdai_drvh]hdai_drv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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"c.snd_soc_register_daisasbuh1hhjƐubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjƐubj%)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjƐubeh}(h]h ]h"]h$]h&]noemphj=j>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!Register a DAI with the ASoC coreh]h!Register a DAI with the ASoC core}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1hhhhjphNhNubj)}(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)}(hjEh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(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)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hjdh]h#struct snd_soc_component *component}(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:100: ./sound/soc/soc-core.chM hj^ubj)}(hhh]jg)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjyhM hjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhM hj[ubj)}(hF``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAIs h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjh]h"struct snd_soc_dai_driver *dai_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]jg)}(hDAI driver to use for the DAIsh]hDAI driver to use for the DAIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj[ubj)}(h``size_t count`` Number of DAIsh](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&]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 DAIsh]hNumber of DAIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubah}(h]h ]h"]h$]h&]uh1jhjБubeh}(h]h ]h"]h$]h&]uh1jhjhM hj[ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_unregister_component_by_driver (C function)(c.snd_soc_unregister_component_by_driverhNtauh1hhjphhhNhNubh)}(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}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMu ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,hhhj>hMu ubj)}(h&snd_soc_unregister_component_by_driverh]j%)}(h&snd_soc_unregister_component_by_driverh]h&snd_soc_unregister_component_by_driver}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj,hhhj>hMu ubj@)}(hM(struct device *dev, const struct snd_soc_component_driver *component_driver)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjiubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjSsb(c.snd_soc_unregister_component_by_driverasbuh1hhjiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj%)}(hdevh]hdev}(hjƒhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubjF)}(h7const struct snd_soc_component_driver *component_driverh](jL)}(hj\h]hconst}(hjߒhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjےubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjےubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjےubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjےubh)}(hhh]j%)}(hsnd_soc_component_driverh]hsnd_soc_component_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_soc_unregister_component_by_driverasbuh1hhjےubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjےubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjےubj%)}(hcomponent_driverh]hcomponent_driver}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjےubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjeubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj,hhhj>hMu ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(hhhj>hMu ubah}(h]j#ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj>hMu hj%hhubjb)}(hhh]jg)}(hhMu ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct device *dev`` The device to unregister ``const struct snd_soc_component_driver *component_driver`` The component driver to unregisterh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hjubj)}(hhh](j)}(h0``struct device *dev`` The device to unregister h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMx hjubj)}(hhh]jg)}(hThe device to unregisterh]hThe device to unregister}(hjՓhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjѓhMx hjғubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѓhMx hjubj)}(h^``const struct snd_soc_component_driver *component_driver`` The component driver to unregisterh](j)}(h;``const struct snd_soc_component_driver *component_driver``h]j)}(hjh]h7const struct snd_soc_component_driver *component_driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMz hjubj)}(hhh]jg)}(h"The component driver to unregisterh]h"The component driver to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMy hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMz hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_soc_register_component (C function)!c.devm_snd_soc_register_componenthNtauh1hhjphhhNhNubh)}(hhh](h)}(hint devm_snd_soc_register_component (struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h]h)}(hint devm_snd_soc_register_component(struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h](h)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjKhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKhhhj]hKubj)}(hdevm_snd_soc_register_componenth]j%)}(hdevm_snd_soc_register_componenth]hdevm_snd_soc_register_component}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjlubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjKhhhj]hKubj@)}(hw(struct device *dev, const struct snd_soc_component_driver *cmpnt_drv, struct snd_soc_dai_driver *dai_drv, int num_dai)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjrsb!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjʔhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjؔhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h0const struct snd_soc_component_driver *cmpnt_drvh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(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_soc_component_driverh]hsnd_soc_component_driver}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jƔ!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h cmpnt_drvh]h cmpnt_drv}(hjphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h"struct snd_soc_dai_driver *dai_drvh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jƔ!c.devm_snd_soc_register_componentasbuh1hhjubj)}(h h]h }(hjŕhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjӕhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdai_drvh]hdai_drv}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int num_daih](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hnum_daih]hnum_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjKhhhj]hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjGhhhj]hKubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj]hKhjDhhubjb)}(hhh]jg)}(h'resource managed component registrationh]h'resource managed component registration}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj<hhubah}(h]h ]h"]h$]h&]uh1jahjDhhhj]hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1hhhhjphNhNubj)}(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)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj[ubj)}(hhh](j)}(h7``struct device *dev`` Device used to manage component h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.chKhjzubj)}(hhh]jg)}(hDevice used to manage componenth]hDevice used to manage component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhKhjwubj)}(hF``const struct snd_soc_component_driver *cmpnt_drv`` Component driver h](j)}(h4``const struct snd_soc_component_driver *cmpnt_drv``h]j)}(hjh]h0const struct snd_soc_component_driver *cmpnt_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(hhh]jg)}(hComponent driverh]hComponent driver}(hjҖhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjΖhKhjϖubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjΖhKhjwubj)}(h2``struct snd_soc_dai_driver *dai_drv`` DAI driver h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjh]h"struct snd_soc_dai_driver *dai_drv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubj)}(hhh]jg)}(h DAI driverh]h DAI driver}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjwubj)}(h+``int num_dai`` Number of DAIs to register h](j)}(h``int num_dai``h]j)}(hj+h]h int num_dai}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj%ubj)}(hhh]jg)}(hNumber of DAIs to registerh]hNumber of DAIs to register}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hKhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjwubeh}(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&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhj[ubjg)}(hSRegister a component with automatic unregistration when the device is unregistered.h]hSRegister a component with automatic unregistration when the device is unregistered.}(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.chKhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'devm_snd_soc_register_card (C function)c.devm_snd_soc_register_cardhNtauh1hhjphhhNhNubh)}(hhh](h)}(hNint devm_snd_soc_register_card (struct device *dev, struct snd_soc_card *card)h]h)}(hMint devm_snd_soc_register_card(struct device *dev, struct snd_soc_card *card)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjΗsbc.devm_snd_soc_register_cardasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjAhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjVubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j"c.devm_snd_soc_register_cardasbuh1hhjVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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:hjؘhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct device *dev`` Device used to manage card ``struct snd_soc_card *card`` Card to register **Description** Register a card with automatic unregistration when the device is unregistered.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK>hjubj)}(hhh](j)}(h2``struct device *dev`` Device used to manage card h](j)}(h``struct device *dev``h]j)}(hjh]hstruct device *dev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK;hjubj)}(hhh]jg)}(hDevice used to manage cardh]hDevice used to manage card}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hK;hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hK;hjubj)}(h/``struct snd_soc_card *card`` Card to register h](j)}(h``struct snd_soc_card *card``h]j)}(hjUh]hstruct snd_soc_card *card}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjubjg)}(hNRegister a card with automatic unregistration when the device is unregistered.h]hNRegister a card with automatic unregistration when the device is unregistered.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK=hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_dmaengine_pcm_register (C function)!c.devm_snd_dmaengine_pcm_registerhNtauh1hhjphhhNhNubh)}(hhh](h)}(h{int devm_snd_dmaengine_pcm_register (struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h]h)}(hzint devm_snd_dmaengine_pcm_register(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](h)}(hinth]hint}(hjՙhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjљhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKeubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjљhhhjhKeubj)}(hdevm_snd_dmaengine_pcm_registerh]j%)}(hdevm_snd_dmaengine_pcm_registerh]hdevm_snd_dmaengine_pcm_register}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjљhhhjhKeubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hdeviceh]hdevice}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjsb!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdevh]hdev}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(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 }(hjhhhNhNubah}(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 reftargetjmodnameN classnameNjj)}j]jL!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj)}(h h]h }(hjۚhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hconfigh]hconfig}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hflagsh]hflags}(hjGhhhNhNubah}(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љhhhjhKeubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj͙hhhjhKeubah}(h]jșah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKehjʙhhubjb)}(hhh]jg)}(h+resource managed dmaengine PCM registrationh]h+resource managed dmaengine PCM registration}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKehjnhhubah}(h]h ]h"]h$]h&]uh1jahjʙhhhjhKeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(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.chKfhjubj)}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjǛhKfhjubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjh]h-const struct snd_dmaengine_pcm_config *config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKghjubj)}(hhh]jg)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKghjubj)}(h0``unsigned int flags`` Platform specific quirks h](j)}(h``unsigned int flags``h]j)}(hj$h]hunsigned int flags}(hj&hhhNhNubah}(h]h ]h"]h$]h&]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.chKhhjubj)}(hhh]jg)}(hPlatform specific quirksh]hPlatform specific quirks}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj9hKhhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKhhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj_h]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api: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.}(hjuhhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_set_sysclk (C function)c.snd_soc_component_set_sysclkhNtauh1hhjphhhNhNubh)}(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$hjubah}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjݜubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjݜubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjǜsbc.snd_soc_component_set_sysclkasbuh1hhjݜubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjݜubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjݜubj%)}(h componenth]h component}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjݜubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjٜubjF)}(h int clk_idh](h)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjOubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj%)}(hclk_idh]hclk_id}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjٜubjF)}(h int sourceh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsourceh]hsource}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjٜubjF)}(hunsigned int freqh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj˝hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjٝhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hfreqh]hfreq}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjٜubjF)}(hint dirh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj%)}(hdirh]hdir}(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?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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKEhjQhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjphNhNubj)}(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)}(hjvh]h Parameters}(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.chKIhjpubj)}(hhh](j)}(h2``struct snd_soc_component *component`` COMPONENT h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKFhjubj)}(hhh]jg)}(h COMPONENTh]h COMPONENT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjubj)}(h%``int clk_id`` DAI specific clock ID h](j)}(h``int clk_id``h]j)}(hjΞh]h int clk_id}(hjОhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̞ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKGhjȞubj)}(hhh]jg)}(hDAI specific clock IDh]hDAI specific clock ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKGhjubah}(h]h ]h"]h$]h&]uh1jhjȞubeh}(h]h ]h"]h$]h&]uh1jhjhKGhjubj)}(h$``int source`` Source for the clock h](j)}(h``int source``h]j)}(hjh]h int source}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKHhjubj)}(hhh]jg)}(hSource for the clockh]hSource for the clock}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjubj)}(h0``unsigned int freq`` new clock frequency in Hz h](j)}(h``unsigned int freq``h]j)}(hj@h]hunsigned int freq}(hjBhhhNhNubah}(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.chKIhj:ubj)}(hhh]jg)}(hnew clock frequency in Hzh]hnew clock frequency in Hz}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjUhKIhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKIhjubj)}(h0``int dir`` new clock direction - input/output. h](j)}(h ``int dir``h]j)}(hjyh]hint dir}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKJhjsubj)}(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&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubeh}(h]h ]h"]h$]h&]uh1jhjpubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjpubjg)}(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.chKKhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_component_set_jack (C function)c.snd_soc_component_set_jackhNtauh1hhjphhhNhNubh)}(hhh](h)}(hkint snd_soc_component_set_jack (struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h]h)}(hjint snd_soc_component_set_jack(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_component_set_jackh]j%)}(hsnd_soc_component_set_jackh]hsnd_soc_component_set_jack}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM 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}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjThhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_set_jackasbuh1hhj2ubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjƠhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjàubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjȠmodnameN classnameNjj)}j]jpc.snd_soc_component_set_jackasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjackh]hjack}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj.ubjF)}(h void *datah](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdatah]hdata}(hjAhhhNhNubah}(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)}(hconfigure component jack.h]hconfigure component jack.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjhhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` COMPONENTs ``struct snd_soc_jack *jack`` structure to use for the jack ``void *data`` can be used if codec driver need extra data for configuring jack **Description** Configures and enables jack detection function.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh](j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hjšhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hj¡ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h<``struct snd_soc_jack *jack`` structure to use for the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjh]hstruct snd_soc_jack *jack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjߡubj)}(hhh]jg)}(hstructure to use for the jackh]hstructure to use for the jack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjߡubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hP``void *data`` can be used if codec driver need extra data for configuring jack h](j)}(h``void *data``h]j)}(hjh]h void *data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjubj)}(hhh]jg)}(h@can be used if codec driver need extra data for configuring jackh]h@can be used if codec driver need extra data for configuring jack}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj3hM hj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hM hjubeh}(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&]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.}(hjohhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_component_get_jack_type (C function)!c.snd_soc_component_get_jack_typehNtauh1hhjphhhNhNubh)}(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 hjhhhjhMubj)}(hsnd_soc_component_get_jack_typeh]j%)}(hsnd_soc_component_get_jack_typeh]hsnd_soc_component_get_jack_type}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>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)}jjsb!c.snd_soc_component_get_jack_typeasbuh1hhjעubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjעubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjעubj%)}(h componenth]h component}(hj4hhhNhNubah}(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]h}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhjphNhNubj)}(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)}(hjqh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM!hjkubj)}(hhh]j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h COMPONENTsh]h COMPONENTs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubjg)}(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 hjkubjg)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_init_regmap (C function)c.snd_soc_component_init_regmaphNtauh1hhjphhhNhNubh)}(hhh](h)}(h_void snd_soc_component_init_regmap (struct snd_soc_component *component, struct regmap *regmap)h]h)}(h^void snd_soc_component_init_regmap(struct snd_soc_component *component, struct regmap *regmap)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhMubj)}(hsnd_soc_component_init_regmaph]j%)}(hsnd_soc_component_init_regmaph]hsnd_soc_component_init_regmap}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhjhMubj@)}(h<(struct snd_soc_component *component, struct regmap *regmap)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjMhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjIubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sbc.snd_soc_component_init_regmapasbuh1hhjIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubjF)}(hstruct regmap *regmaph](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj̤hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hregmaph]hregmap}(hjݤhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjڤubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjߤmodnameN classnameNjj)}j]jc.snd_soc_component_init_regmapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjEubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj hhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h,Initialize regmap instance for the componenth]h,Initialize regmap instance for the component}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj=hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhjphNhNubj)}(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)}(hjbh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj\ubj)}(hhh](j)}(hb``struct snd_soc_component *component`` The component for which to initialize the regmap instance h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.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&]uh1jhjhMhjxubj)}(hS``struct regmap *regmap`` The regmap instance that should be used by the component h](j)}(h``struct regmap *regmap``h]j)}(hjh]hstruct regmap *regmap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h8The regmap instance that should be used by the componenth]h8The regmap instance that should be used by the component}(hjӥhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjϥhMhjХubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϥhMhjxubeh}(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.chMhj\ubjg)}(hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.h]hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.}(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\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_exit_regmap (C function)c.snd_soc_component_exit_regmaphNtauh1hhjphhhNhNubh)}(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}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj6hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6hhhjHhMubj)}(hsnd_soc_component_exit_regmaph]j%)}(hsnd_soc_component_exit_regmaph]hsnd_soc_component_exit_regmap}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj6hhhjHhMubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubh)}(hhh]j%)}(hsnd_soc_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_exit_regmapasbuh1hhjsubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjsubj)}(hjh]h*}(hjæhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj%)}(h componenth]h component}(hjЦhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubah}(h]h ]h"]h$]h&]j=j>uh1j?hj6hhhjHhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj2hhhjHhMubah}(h]j-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjHhMhj/hhubjb)}(hhh]jg)}(h/De-initialize regmap instance for the componenth]h/De-initialize regmap instance for the component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj/hhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hXu**Parameters** ``struct snd_soc_component *component`` The component for which to de-initialize the regmap instance **Description** Calls regmap_exit() on the regmap instance associated to the component and removes the regmap instance from the component. This function should only be used if snd_soc_component_init_regmap() was used to initialize the regmap instance.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(he``struct snd_soc_component *component`` The component for which to de-initialize the regmap instance h](j)}(h'``struct snd_soc_component *component``h]j)}(hj;h]h#struct snd_soc_component *component}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj5ubj)}(hhh]jg)}(huh1jhjƧhhhjاhMubj@)}(h7(struct snd_soc_component *component, unsigned int reg)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj#hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(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 sbc.snd_soc_component_readasbuh1hhjubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjohhhNhNubah}(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>uh1jEhjubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjͨhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjƧhhhjاhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj§hhhjاhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjاhMhjhhubjb)}(hhh]jg)}(hRead register valueh]hRead register value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjاhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component to read from ``unsigned int reg`` Register to read **Return** read valueh](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh](j)}(h?``struct snd_soc_component *component`` Component to read from h](j)}(h'``struct snd_soc_component *component``h]j)}(hj8h]h#struct snd_soc_component *component}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj2ubj)}(hhh]jg)}(hComponent to read fromh]hComponent to read from}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMhj/ubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hjqh]hunsigned int reg}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjkubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhj/ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(h read valueh]h read value}(hj©hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_component_write (C function)c.snd_soc_component_writehNtauh1hhjphhhNhNubh)}(hhh](h)}(heint snd_soc_component_write (struct snd_soc_component *component, unsigned int reg, unsigned int val)h]h)}(hdint snd_soc_component_write(struct snd_soc_component *component, unsigned int reg, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_component_writeh]j%)}(hsnd_soc_component_writeh]hsnd_soc_component_write}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hI(struct snd_soc_component *component, unsigned int reg, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj*ubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_writeasbuh1hhj*ubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjʪhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjتhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hWrite register valueh]hWrite register value}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhjphNhNubj)}(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)}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjoubj)}(hhh](j)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``unsigned int reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjͫh]hunsigned int reg}(hjϫhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj˫ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjǫubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjǫubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``unsigned int val`` Value to write to the register h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hValue to write to the registerh]hValue to write to the register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjoubjg)}(h **Return**h]j)}(hjAh]hReturn}(hjChhhNhNubah}(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.chMhjoubjg)}(h.0 on success, a negative error code otherwise.h]h.0 on success, a negative error code otherwise.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_update_bits (C function)c.snd_soc_component_update_bitshNtauh1hhjphhhNhNubh)}(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&]uh1jKhjubj)}(h h]h }(hjЬhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjެubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_update_bitsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(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}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubh)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj%)}(hregh]hreg}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hj׭hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjӭubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjӭubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjӭubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjӭubj%)}(hvalh]hval}(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?hjhhhjhM7ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhjhM7ubah}(h]jyah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM7hj{hhubjb)}(hhh]jg)}(hPerform read/modify/write cycleh]hPerform read/modify/write cycle}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM7hj6hhubah}(h]h ]h"]h$]h&]uh1jahj{hhhjhM7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQjjQjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_component *component`` Component to update ``unsigned int reg`` Register to update ``unsigned int mask`` Mask that specifies which bits to update ``unsigned int val`` New value for the bits specified by mask **Return** 1 if the operation was successful and the value of the register changed, 0 if the operation was successful, but the value did not change. Returns a negative error code otherwise.h](jg)}(h**Parameters**h]j)}(hj[h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM;hjUubj)}(hhh](j)}(h<``struct snd_soc_component *component`` Component to update h](j)}(h'``struct snd_soc_component *component``h]j)}(hjzh]h#struct snd_soc_component *component}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM8hjtubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjqubj)}(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ȮhM9hjqubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM:hjubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM:hjqubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hj%h]hunsigned int val}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM;hjubj)}(hhh]jg)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj:hM;hj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hM;hjqubeh}(h]h ]h"]h$]h&]uh1jhjUubjg)}(h **Return**h]j)}(hj`h]hReturn}(hjbhhhNhNubah}(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=hjUubjg)}(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.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM=hjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_soc_component_update_bits_async (C function)%c.snd_soc_component_update_bits_asynchNtauh1hhjphhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjޯubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjޯubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjȯsb%c.snd_soc_component_update_bits_asyncasbuh1hhjޯubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjޯubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjޯubj%)}(h componenth]h component}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjޯubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjگubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubh)}(hinth]hint}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjگubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjϰhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjݰhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjگubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj.hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjگubeh}(h]h ]h"]h$]h&]j=j>uh1j?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}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMUhjUhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMUubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjphNhNubj)}(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)}(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.chMYhjtubj)}(hhh](j)}(h<``struct snd_soc_component *component`` Component to update h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMWhjubj)}(hhh]jg)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjubj)}(h(``unsigned int reg`` Register to update h](j)}(h``unsigned int reg``h]j)}(hjұh]hunsigned int reg}(hjԱhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjбubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMXhj̱ubj)}(hhh]jg)}(hRegister to updateh]hRegister to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhj̱ubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubj)}(h?``unsigned int mask`` Mask that specifies which bits to update h](j)}(h``unsigned int mask``h]j)}(hj h]hunsigned int mask}(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.chMYhjubj)}(hhh]jg)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMYhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMYhjubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hjDh]hunsigned int val}(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.chMZhj>ubj)}(hhh]jg)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhMZhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMZhjubeh}(h]h ]h"]h$]h&]uh1jhjtubjg)}(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\hjtubjg)}(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[hjtubjg)}(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`hjtubjg)}(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.chMahjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_read_field (C function)c.snd_soc_component_read_fieldhNtauh1hhjphhhNhNubh)}(hhh](h)}(htunsigned int snd_soc_component_read_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask)h]h)}(hsunsigned int snd_soc_component_read_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMyubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhjhMyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMyubj)}(hsnd_soc_component_read_fieldh]j%)}(hsnd_soc_component_read_fieldh]hsnd_soc_component_read_field}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMyubj@)}(hJ(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hsnd_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_read_fieldasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(h componenth]h component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjijhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjҳhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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 }(hj1hhhNhNubah}(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?hjhhhjhMyubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMyubah}(h]j޲ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMyhjhhubjb)}(hhh]jg)}(hRead register field valueh]hRead register field value}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMyhjfhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component to read from ``unsigned int reg`` Register to read ``unsigned int mask`` mask of the register field **Return** read value of register field.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM}hjubj)}(hhh](j)}(h?``struct snd_soc_component *component`` Component to read from h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMzhjubj)}(hhh]jg)}(hComponent to read fromh]hComponent to read from}(hjôhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMzhjubj)}(h&``unsigned int reg`` Register to read h](j)}(h``unsigned int reg``h]j)}(hjh]hunsigned int reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM{hjݴubj)}(hhh]jg)}(hRegister to readh]hRegister to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjݴubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjubj)}(h1``unsigned int mask`` mask of the register field h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM|hjubj)}(hhh]jg)}(hmask of the register fieldh]hmask of the register field}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hM|hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hM|hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjWh]hReturn}(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.chM~hjubjg)}(hread value of register field.h]hread value of register field.}(hjmhhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_write_field (C function)c.snd_soc_component_write_fieldhNtauh1hhjphhhNhNubh)}(hhh](h)}(h~int snd_soc_component_write_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]h)}(h}int snd_soc_component_write_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_component_write_fieldh]j%)}(hsnd_soc_component_write_fieldh]hsnd_soc_component_write_field}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjٵhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjյubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjյubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_write_fieldasbuh1hhjյubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjյubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjյubj%)}(h componenth]h component}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjյubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjѵubjF)}(hunsigned int regh](h)}(hunsignedh]hunsigned}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj%)}(hregh]hreg}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjѵubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjƶhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaskh]hmask}(hjԶhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjѵubjF)}(hunsigned int valh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalh]hval}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjѵubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hwrite to register fieldh]hwrite to register field}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjLhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjgjjgjjjuh1hhhhjphNhNubj)}(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)}(hjqh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjkubj)}(hhh](j)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``unsigned int reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjɷh]hunsigned int reg}(hj˷hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjǷubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj÷ubj)}(hhh]jg)}(hRegister to writeh]hRegister to write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj޷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)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h$mask of the register field to updateh]h$mask of the register field to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h1``unsigned int val`` value of the field to write h](j)}(h``unsigned int val``h]j)}(hj;h]hunsigned int val}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj5ubj)}(hhh]jg)}(hvalue of the field to writeh]hvalue of the field to write}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhjubeh}(h]h ]h"]h$]h&]uh1jhjkubjg)}(h **Return**h]j)}(hjvh]hReturn}(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.chMhjkubjg)}(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.chMhjkubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_component_async_complete (C function)"c.snd_soc_component_async_completehNtauh1hhjphhhNhNubh)}(hhh](h)}(hKvoid snd_soc_component_async_complete (struct snd_soc_component *component)h]h)}(hJvoid snd_soc_component_async_complete(struct snd_soc_component *component)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjʸhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjɸhMubj)}(h snd_soc_component_async_completeh]j%)}(h snd_soc_component_async_completeh]h snd_soc_component_async_complete}(hjܸhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjظubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjɸhMubj@)}(h%(struct snd_soc_component *component)h]jF)}(h#struct snd_soc_component *componenth](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj޸sb"c.snd_soc_component_async_completeasbuh1hhjubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(h componenth]h component}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjɸhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjɸhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjɸhMhjhhubjb)}(hhh]jg)}(h%Ensure asynchronous I/O has completedh]h%Ensure asynchronous I/O has completed}(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&]uh1jahjhhhjɸhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_soc_component *component`` Component for which to wait **Description** This function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(hD``struct snd_soc_component *component`` Component for which to wait h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(hComponent for which to waith]hComponent for which to wait}(hjչhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjѹhMhjҹubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѹhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubjg)}(hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h]hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_component_test_bits (C function)c.snd_soc_component_test_bitshNtauh1hhjphhhNhNubh)}(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}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8hhhjJhMubj)}(hsnd_soc_component_test_bitsh]j%)}(hsnd_soc_component_test_bitsh]hsnd_soc_component_test_bits}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj8hhhjJhMubj@)}(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}(hjyhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubh)}(hhh]j%)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_soc_component_test_bitsasbuh1hhjuubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuubj)}(hjh]h*}(hjźhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj%)}(h componenth]h component}(hjҺhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(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>uh1jEhjqubjF)}(hunsigned int maskh](h)}(hunsignedh]hunsigned}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj%)}(hmaskh]hmask}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqubjF)}(hunsigned int valueh](h)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hvalueh]hvalue}(hjŻhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>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)}(hTest register for changeh]hTest register for change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahj1hhhjJhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hXu**Parameters** ``struct snd_soc_component *component`` component ``unsigned int reg`` Register to test ``unsigned int mask`` Mask that specifies which bits to test ``unsigned int value`` Value to test against **Description** Tests a register with a new value and checks if the new value is different from the old value. **Return** 1 for change, otherwise 0.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj ubj)}(hhh](j)}(h2``struct snd_soc_component *component`` component h](j)}(h'``struct snd_soc_component *component``h]j)}(hj0h]h#struct snd_soc_component *component}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj*ubj)}(hhh]jg)}(h componenth]h component}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhMhj'ubj)}(h&``unsigned int reg`` Register to test h](j)}(h``unsigned int reg``h]j)}(hjih]hunsigned int reg}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjcubj)}(hhh]jg)}(hRegister to testh]hRegister to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hMhjubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj~hMhj'ubj)}(h=``unsigned int mask`` Mask that specifies which bits to test h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]jg)}(h&Mask that specifies which bits to testh]h&Mask that specifies which bits to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj'ubj)}(h-``unsigned int value`` Value to test against h](j)}(h``unsigned int value``h]j)}(hjۼh]hunsigned int value}(hjݼhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjټubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjռubj)}(hhh]jg)}(hValue to test againsth]hValue to test against}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjռubeh}(h]h ]h"]h$]h&]uh1jhjhMhj'ubeh}(h]h ]h"]h$]h&]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.chMhj ubjg)}(h^Tests a register with a new value and checks if the new value is different from the old value.h]h^Tests a register with a new value and checks if the new value is different from the old value.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj 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.}(hjShhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_runtime_action (C function)c.snd_soc_runtime_actionhNtauh1hhjphhhNhNubh)}(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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj̽hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjݽhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjڽubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj߽modnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_actionasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(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>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj%)}(hstreamh]hstream}(hjMhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int actionh](h)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbubj%)}(hactionh]haction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubeh}(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>jSuh1hjTjUhjzhhhjhMXubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMXhjwhhubjb)}(hhh]jg)}(h;Increment/Decrement active count for PCM runtime componentsh]h;Increment/Decrement active count for PCM runtime components}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXhjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjľjjľjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated ``int stream`` Direction of the PCM stream ``int action`` Activate stream if 1. Deactivate if -1. **Description** Increments/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened. Must be called with the rtd->card->pcm_mutex being heldh](jg)}(h**Parameters**h]j)}(hjξh]h Parameters}(hjоhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̾ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM\hjȾubj)}(hhh](j)}(hG``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime that is activated h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMZhjubj)}(hhh]jg)}(h"ASoC PCM runtime that is activatedh]h"ASoC PCM runtime that is activated}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjubj)}(h+``int stream`` Direction of the PCM stream h](j)}(h``int stream``h]j)}(hj&h]h int stream}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM[hj ubj)}(hhh]jg)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj;hM[hj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hM[hjubj)}(h7``int action`` Activate stream if 1. Deactivate if -1. h](j)}(h``int action``h]j)}(hj_h]h int action}(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:103: ./sound/soc/soc-pcm.chM\hjYubj)}(hhh]jg)}(h'Activate stream if 1. Deactivate if -1.h]h'Activate stream if 1. Deactivate if -1.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjthM\hjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthM\hjubeh}(h]h ]h"]h$]h&]uh1jhjȾubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM^hjȾubjg)}(hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.h]hIncrements/Decrements the active count for all the DAIs and components attached to a PCM runtime. Should typically be called when a stream is opened.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM]hjȾubjg)}(h7Must be called with the rtd->card->pcm_mutex being heldh]h7Must be called with the rtd->card->pcm_mutex being held}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMahjȾubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_runtime_ignore_pmdown_time (C function)$c.snd_soc_runtime_ignore_pmdown_timehNtauh1hhjphhhNhNubh)}(hhh](h)}(hIbool snd_soc_runtime_ignore_pmdown_time (struct snd_soc_pcm_runtime *rtd)h]h)}(hHbool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd)h](h)}(hj̖h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMzubj)}(h"snd_soc_runtime_ignore_pmdown_timeh]j%)}(h"snd_soc_runtime_ignore_pmdown_timeh]h"snd_soc_runtime_ignore_pmdown_time}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMzubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hj*hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjsb$c.snd_soc_runtime_ignore_pmdown_timeasbuh1hhj&ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj"ubah}(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,Check whether to ignore the power down delayh]h,Check whether to ignore the power down delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hXj**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The ASoC PCM runtime that should be checked. **Description** This function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM~hjubj)}(hhh]j)}(hQ``struct snd_soc_pcm_runtime *rtd`` The ASoC PCM runtime that should be checked. h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM{hjubj)}(hhh]jg)}(h,The ASoC PCM runtime that should be checked.h]h,The ASoC PCM runtime that should be checked.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj)h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM}hjubjg)}(hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.h]hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_runtime_calc_hw (C function)c.snd_soc_runtime_calc_hwhNtauh1hhjphhhNhNubh)}(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}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjjhhhe/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 hjjhhhj|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>uh1jhjjhhhj|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}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_pcm_hardware *hwh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jc.snd_soc_runtime_calc_hwasbuh1hhjubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hhwh]hhw}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjjhhhj|hMcubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhj|hMcubah}(h]jaah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj|hMchjchhubjb)}(hhh]jg)}(h$Calculate hw limits for a PCM streamh]h$Calculate hw limits for a PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMchjhhubah}(h]h ]h"]h$]h&]uh1jahjchhhj|hMcubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX+**Parameters** ``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime ``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) ``int stream`` Direction of the PCM stream **Description** Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMghjubj)}(hhh](j)}(h5``struct snd_soc_pcm_runtime *rtd`` ASoC PCM runtime h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMdhjubj)}(hhh]jg)}(hASoC PCM runtimeh]hASoC PCM runtime}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj)hMdhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hMdhj ubj)}(hA``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjMh]hstruct snd_pcm_hardware *hw}(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:103: ./sound/soc/soc-pcm.chMehjGubj)}(hhh]jg)}(h PCM hardware parameters (output)h]h PCM hardware parameters (output)}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMehjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMehj ubj)}(h+``int stream`` Direction of the PCM stream h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.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&]uh1jhjhMfhj 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:103: ./sound/soc/soc-pcm.chMhhjubjg)}(h`Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.h]h`Calculates the subset of stream parameters supported by all DAIs associated with the PCM stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMghjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_info_enum_double (C function)c.snd_soc_info_enum_doublehNtauh1hhjphhhNhNubh)}(hhh](h)}(h]int snd_soc_info_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h\int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhKubj)}(hsnd_soc_info_enum_doubleh]j%)}(hsnd_soc_info_enum_doubleh]hsnd_soc_info_enum_double}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhKubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)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_soc_info_enum_doubleasbuh1hhj?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)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j}c.snd_soc_info_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKhjhhubjb)}(hhh]jg)}(h%enumerated double mixer info callbackh]h%enumerated double mixer info callback}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKhj3hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjphNhNubj)}(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)}(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.chK"hjRubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjwh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chKhjqubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhKhjnubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjnubeh}(h]h ]h"]h$]h&]uh1jhjRubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hjRubjg)}(hHCallback to provide information about a double enumerated mixer control.h]hHCallback to provide information about a double enumerated mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK!hjRubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK$hjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_get_enum_double (C function)c.snd_soc_get_enum_doublehNtauh1hhjphhhNhNubh)}(hhh](h)}(h`int snd_soc_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h_int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj;hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2ubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhjMhK2ubj)}(hsnd_soc_get_enum_doubleh]j%)}(hsnd_soc_get_enum_doubleh]hsnd_soc_get_enum_double}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj;hhhjMhK2ubj@)}(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&]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]j)}jjbsbc.snd_soc_get_enum_doubleasbuh1hhjxubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_enum_doubleasbuh1hhjubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjtubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj;hhhjMhK2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj7hhhjMhK2ubah}(h]j2ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjMhK2hj4hhubjb)}(hhh]jg)}(h$enumerated double mixer get callbackh]h$enumerated double mixer get callback}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2hjlhhubah}(h]h ]h"]h$]h&]uh1jahj4hhhjMhK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a double enumerated mixer. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK3hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK3hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK4hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhK4hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj$h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]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.chK6hjubjg)}(h7Callback to get the value of a double enumerated mixer.h]h7Callback to get the value of a double enumerated mixer.}(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.chK5hjubjg)}(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.chK7hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_put_enum_double (C function)c.snd_soc_put_enum_doublehNtauh1hhjphhhNhNubh)}(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}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjthhhe/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 hjthhhjhKQubj)}(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>uh1jhjthhhjhKQubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_enum_doubleasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(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_put_enum_doubleasbuh1hhj#ubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjqhhhNhNubah}(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?hjthhhjhKQubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjphhhjhKQubah}(h]jkah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhKQhjmhhubjb)}(hhh]jg)}(h$enumerated double mixer put callbackh]h$enumerated double mixer put callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKQhjhhubah}(h]h ]h"]h$]h&]uh1jahjmhhhjhKQubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a double enumerated mixer. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKRhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj"h]h#struct snd_ctl_elem_value *ucontrol}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKShjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hKShj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hKShjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj]h]h Description}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubjg)}(h7Callback to set the value of a double enumerated mixer.h]h7Callback to set the value of a double enumerated mixer.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKThjubjg)}(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.chKVhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_volsw (C function)c.snd_soc_info_volswhNtauh1hhjphhhNhNubh)}(hhh](h)}(hWint snd_soc_info_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hVint snd_soc_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_info_volswh]j%)}(hsnd_soc_info_volswh]hsnd_soc_info_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_volswasbuh1hhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj\ubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_soc_info_volswasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h&single mixer info callback with range.h]h&single mixer info callback with range.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX-**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(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.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hMhjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj[h]hstruct snd_ctl_elem_info *uinfo}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]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}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphMhjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(h~Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers.h]h~Callback to provide information, with a range, about a single mixer control, or a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_info_volsw_sx (C function)c.snd_soc_info_volsw_sxhNtauh1hhjphhhNhNubh)}(hhh](h)}(hZint snd_soc_info_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(hYint snd_soc_info_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM'ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM'ubj)}(hsnd_soc_info_volsw_sxh]j%)}(hsnd_soc_info_volsw_sxh]hsnd_soc_info_volsw_sx}(hj hhhNhNubah}(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}(hj'hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj#ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_info_volsw_sxasbuh1hhj#ubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(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]jac.snd_soc_info_volsw_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM'ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM'ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM'hjhhubjb)}(hhh]jg)}(h'Mixer info callback for SX TLV controlsh]h'Mixer info callback for SX TLV controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM'hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM'ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjphNhNubj)}(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)}(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+hj6ubj)}(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&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM(hjUubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphM(hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphM(hjRubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM)hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM)hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM)hjRubeh}(h]h ]h"]h$]h&]uh1jhj6ubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM+hj6ubjg)}(hX<Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers of the SX TLV type. SX TLV controls have a range that represents both positive and negative values either side of zero but without a sign bit. min is the minimum register value, max is the number of steps.h]hX<Callback to provide information about a single mixer control, or a double mixer control that spans 2 registers of the SX TLV type. SX TLV controls have a range that represents both positive and negative values either side of zero but without a sign bit. min is the minimum register value, max is the number of steps.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM*hj6ubjg)}(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.chM0hj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_volsw (C function)c.snd_soc_get_volswhNtauh1hhjphhhNhNubh)}(hhh](h)}(hZint snd_soc_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM>ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj1hM>ubj)}(hsnd_soc_get_volswh]j%)}(hsnd_soc_get_volswh]hsnd_soc_get_volsw}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj1hM>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 }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_soc_get_volswasbuh1hhj\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjXubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_volswasbuh1hhjubj)}(h h]h }(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>uh1jEhjXubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj1hM>ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj1hM>ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hM>hjhhubjb)}(hhh]jg)}(h$single mixer get callback with rangeh]h$single mixer get callback with range}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM>hjPhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj1hM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjkjjkjjjuh1hhhhjphNhNubj)}(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)}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMBhjoubj)}(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&]uh1jhjoubjg)}(h**Description**h]j)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMBhjoubjg)}(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.chMAhjoubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMDhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_volsw (C function)c.snd_soc_put_volswhNtauh1hhjphhhNhNubh)}(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}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjXhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMSubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjXhhhjjhMSubj)}(hsnd_soc_put_volswh]j%)}(hsnd_soc_put_volswh]hsnd_soc_put_volsw}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjXhhhjjhMSubj@)}(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 }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]jc.snd_soc_put_volswasbuh1hhjubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjXhhhjjhMSubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjThhhjjhMSubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjjhMShjQhhubjb)}(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.chMShjhhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjjhMSubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX+**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value , within a range, of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMWhjubj)}(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.chMThjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubj)}(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.chMUhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMUhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMUhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjAh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMWhjubjg)}(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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMVhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMYhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_get_volsw_sx (C function)c.snd_soc_get_volsw_sxhNtauh1hhjphhhNhNubh)}(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.chMhubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMhubj)}(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>uh1jhjhhhjhMhubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_volsw_sxasbuh1hhjubj)}(h h]h }(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}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j c.snd_soc_get_volsw_sxasbuh1hhj@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?hjhhhjhMhubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMhubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhhjhhubjb)}(hhh]jg)}(hsingle mixer get callbackh]hsingle mixer get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMhubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a single mixer control, or a double mixer control that spans 2 registers. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjubj)}(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.chMihjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMihjubj)}(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}(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:104: ./sound/soc/soc-ops.chMjhj9ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThMjhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMjhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjzh]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMlhjubjg)}(hfCallback to get the value of a single mixer control, or a double mixer control that spans 2 registers.h]hfCallback to get the value of a single mixer control, or a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMkhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_put_volsw_sx (C function)c.snd_soc_put_volsw_sxhNtauh1hhjphhhNhNubh)}(hhh](h)}(h]int snd_soc_put_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h\int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM}ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM}ubj)}(hsnd_soc_put_volsw_sxh]j%)}(hsnd_soc_put_volsw_sxh]hsnd_soc_put_volsw_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM}ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_volsw_sxasbuh1hhjubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjdhhhNhNubah}(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&]uh1jKhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubh)}(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]jEc.snd_soc_put_volsw_sxasbuh1hhjyubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjyubeh}(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)}(hdouble mixer set callbackh]hdouble mixer set callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM}hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM}ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(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)}(hj h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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}(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:104: ./sound/soc/soc-ops.chM~hj9ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM~hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM~hj6ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjxh]h#struct snd_ctl_elem_value *ucontrol}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjrubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhj6ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hKCallback to set the value of a double mixer control that spans 2 registers.h]hKCallback to set the value of a double mixer control that spans 2 registers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_limit_volume (C function)c.snd_soc_limit_volumehNtauh1hhjphhhNhNubh)}(hhh](h)}(hOint snd_soc_limit_volume (struct snd_soc_card *card, const char *name, int max)h]h)}(hNint snd_soc_limit_volume(struct snd_soc_card *card, const char *name, int max)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_limit_volumeh]j%)}(hsnd_soc_limit_volumeh]hsnd_soc_limit_volume}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h6(struct snd_soc_card *card, const char *name, int max)h](jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(h snd_soc_cardh]h snd_soc_card}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jj*sbc.snd_soc_limit_volumeasbuh1hhj@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj%)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hnameh]hname}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hint maxh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hmaxh]hmax}(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,Set new limit to an existing volume control.h]h,Set new limit to an existing volume control.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjVhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1hhhhjphNhNubj)}(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)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjuubj)}(hhh](j)}(h<``struct snd_soc_card *card`` where to look for the control h](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hwhere to look for the controlh]hwhere to look for the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h)``const char *name`` Name of the control h](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hName of the controlh]hName of the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``int max`` new maximum limit h](j)}(h ``int max``h]j)}(hj h]hint max}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hnew maximum limith]hnew maximum limit}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hMhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj!hMhjubeh}(h]h ]h"]h$]h&]uh1jhjuubjg)}(h**Description**h]j)}(hjGh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjuubjg)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(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.chMhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_xr_sx (C function)c.snd_soc_info_xr_sxhNtauh1hhjphhhNhNubh)}(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.chMmubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMmubj)}(hsnd_soc_info_xr_sxh]j%)}(hsnd_soc_info_xr_sxh]hsnd_soc_info_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMmubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_xr_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]jc.snd_soc_info_xr_sxasbuh1hhj7ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMmubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMmubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMmhjhhubjb)}(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.chMmhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mreg control ``struct snd_ctl_elem_info *uinfo`` control element information **Description** Callback to provide information of a control that can span multiple codec registers which together forms a single signed value. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMqhjubj)}(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.chMnhjubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj6h]hstruct snd_ctl_elem_info *uinfo}(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:104: ./sound/soc/soc-ops.chMohj0ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMohjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMohjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjqh]h Description}(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:104: ./sound/soc/soc-ops.chMqhjubjg)}(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.chMphjubjg)}(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.chMuhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_xr_sx (C function)c.snd_soc_get_xr_sxhNtauh1hhjphhhNhNubh)}(hhh](h)}(hZint snd_soc_get_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_get_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_get_xr_sxh]j%)}(hsnd_soc_get_xr_sxh]hsnd_soc_get_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_xr_sxasbuh1hhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjNhhhNhNubah}(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}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j<c.snd_soc_get_xr_sxasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjphNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` mreg control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj6h]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhj0ubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjoh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chMhjiubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hXtCallback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.h]hXtCallback to get the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_xr_sx (C function)c.snd_soc_put_xr_sxhNtauh1hhjphhhNhNubh)}(hhh](h)}(hZint snd_soc_put_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hYint snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hsnd_soc_put_xr_sxh]j%)}(hsnd_soc_put_xr_sxh]hsnd_soc_put_xr_sx}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj7ubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.snd_soc_put_xr_sxasbuh1hhj7ubj)}(h h]h }(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubjF)}(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]juc.snd_soc_put_xr_sxasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(h"signed multi register get callbackh]h"signed multi register get callback}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj+hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1hhhhjphNhNubj)}(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)}(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:104: ./sound/soc/soc-ops.chMhjJubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjoh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhjiubj)}(hhh]jg)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhjfubj)}(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&]uh1jhjhMhjfubeh}(h]h ]h"]h$]h&]uh1jhjJubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjJubjg)}(hXtCallback to set the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.h]hXtCallback to set the value of a control that can span multiple codec registers which together forms a single signed value. The control supports specifying total no of bits used to allow for bitfields across the multiple codec registers. Note that unlike the non-xr variant of sx controls these may or may not include the sign bit, depending on nbits, and there is no shift.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjJubjg)}(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.chMhjJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_strobe (C function)c.snd_soc_get_strobehNtauh1hhjphhhNhNubh)}(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}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj3hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhjEhMubj)}(hsnd_soc_get_strobeh]j%)}(hsnd_soc_get_strobeh]hsnd_soc_get_strobe}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhjEhMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubh)}(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)}jjZsbc.snd_soc_get_strobeasbuh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjlubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_strobeasbuh1hhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(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)}(hstrobe get callbackh]hstrobe get callback}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjdhhubah}(h]h ]h"]h$]h&]uh1jahj,hhhjEhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback get the value of a strobe mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubjg)}(h1Callback get the value of a strobe mixer control.h]h1Callback get the value of a strobe mixer control.}(hj2hhhNhNubah}(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.}(hjAhhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_strobe (C function)c.snd_soc_put_strobehNtauh1hhjphhhNhNubh)}(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}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhe/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 hjlhhhj~hMubj)}(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>uh1jhjlhhhj~hMubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_strobeasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jc.snd_soc_put_strobeasbuh1hhjubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(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)}(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&]uh1jahjehhhj~hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(hX**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback strobe a register bit to high then low (or the inverse) in one pass of a single mixer enum control. Returns 1 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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.chMhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hM hj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjUh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]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.}(hjkhhhNhNubah}(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.}(hjzhhhNhNubah}(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&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_new_compress (C function)c.snd_soc_new_compresshNtauh1hhjphhhNhNubh)}(hhh](h)}(h:int snd_soc_new_compress (struct snd_soc_pcm_runtime *rtd)h]h)}(h9int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_new_compressh]j%)}(hsnd_soc_new_compressh]hsnd_soc_new_compress}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h!(struct snd_soc_pcm_runtime *rtd)h]jF)}(hstruct snd_soc_pcm_runtime *rtdh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_new_compressasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(hcreate a new compress.h]hcreate a new compress.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjfhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The runtime for which we will create compress **Return** 0 for success, else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubj)}(hhh]j)}(hR``struct snd_soc_pcm_runtime *rtd`` The runtime for which we will create compress h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjh]hstruct snd_soc_pcm_runtime *rtd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubj)}(hhh]jg)}(h-The runtime for which we will create compressh]h-The runtime for which we will create compress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubjg)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubeh}(h] asoc-core-apiah ]h"] asoc core apiah$]h&]uh1hhjsphhhhhKbubh)}(hhh](h)}(h ASoC DAPM APIh]h ASoC DAPM API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKlubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_dapm_kcontrol_to_widget (C function)!c.snd_soc_dapm_kcontrol_to_widgethNtauh1hhjhhhNhNubh)}(hhh](h)}(h\struct snd_soc_dapm_widget * snd_soc_dapm_kcontrol_to_widget (struct snd_kcontrol *kcontrol)h]h)}(hZstruct snd_soc_dapm_widget *snd_soc_dapm_kcontrol_to_widget(struct snd_kcontrol *kcontrol)h](jL)}(hjOh]hstruct}(hjChhhNhNubah}(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 }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhjPhMubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_to_widgetsb!c.snd_soc_dapm_kcontrol_to_widgetasbuh1hhj?hhhjPhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?hhhjPhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhjPhMubj)}(hsnd_soc_dapm_kcontrol_to_widgeth]j%)}(hjh]hsnd_soc_dapm_kcontrol_to_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj?hhhjPhMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~!c.snd_soc_dapm_kcontrol_to_widgetasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hj?hhhjPhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj;hhhjPhMubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhMhj8hhubjb)}(hhh]jg)}(h+Returns the widget associated to a kcontrolh]h+Returns the widget associated to a kcontrol}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj;hhubah}(h]h ]h"]h$]h&]uh1jahj8hhhjPhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhjhNhNubj)}(h@**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrolh](jg)}(h**Parameters**h]j)}(hj`h]h Parameters}(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.chMhjZubj)}(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&]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.chMhjyubj)}(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.chMhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_kcontrol_to_dapm (C function)c.snd_soc_dapm_kcontrol_to_dapmhNtauh1hhjhhhNhNubh)}(hhh](h)}(h[struct snd_soc_dapm_context * snd_soc_dapm_kcontrol_to_dapm (struct snd_kcontrol *kcontrol)h]h)}(hYstruct snd_soc_dapm_context *snd_soc_dapm_kcontrol_to_dapm(struct snd_kcontrol *kcontrol)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_to_dapmsbc.snd_soc_dapm_kcontrol_to_dapmasbuh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(hsnd_soc_dapm_kcontrol_to_dapmh]j%)}(hjh]hsnd_soc_dapm_kcontrol_to_dapm}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(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]jc.snd_soc_dapm_kcontrol_to_dapmasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjOubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjKubah}(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)}(h1Returns the dapm context associated to a kcontrolh]h1Returns the dapm context associated to a kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrol **Note** This function must only be used on kcontrols that are known to have been registered for a CODEC. Otherwise the behaviour is undefined.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]j)}(h/``struct snd_kcontrol *kcontrol`` The kcontrol h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Note**h]j)}(hjPh]hNote}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(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.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_dapm_kcontrol_to_component (C function)$c.snd_soc_dapm_kcontrol_to_componenthNtauh1hhjhhhNhNubh)}(hhh](h)}(h]struct snd_soc_component * snd_soc_dapm_kcontrol_to_component (struct snd_kcontrol *kcontrol)h]h)}(h[struct snd_soc_component *snd_soc_dapm_kcontrol_to_component(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.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubh)}(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)}j"snd_soc_dapm_kcontrol_to_componentsb$c.snd_soc_dapm_kcontrol_to_componentasbuh1hhjhhhjhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h"snd_soc_dapm_kcontrol_to_componenth]j%)}(hjh]h"snd_soc_dapm_kcontrol_to_component}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct snd_kcontrol *kcontrol)h]jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j$c.snd_soc_dapm_kcontrol_to_componentasbuh1hhj ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hkcontrolh]hkcontrol}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h.Returns the component associated to a kcontrolh]h.Returns the component 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrol **Description** This function must only be used on DAPM contexts that are known to be part of a COMPONENT (e.g. in a COMPONENT driver). Otherwise the behavior is undefinedh](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_kcontrol *kcontrol`` The kcontrol h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h The kcontrolh]h The kcontrol}(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}(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.chMhjubjg)}(hThis function must only be used on DAPM contexts that are known to be part of a COMPONENT (e.g. in a COMPONENT driver). Otherwise the behavior is undefinedh]hThis function must only be used on DAPM contexts that are known to be part of a COMPONENT (e.g. in a COMPONENT driver). Otherwise the behavior is undefined}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_bias_level (C function)c.snd_soc_dapm_force_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_force_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(hcint snd_soc_dapm_force_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjMhhhf/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 hjMhhhj_hMubj)}(hsnd_soc_dapm_force_bias_levelh]j%)}(hsnd_soc_dapm_force_bias_levelh]hsnd_soc_dapm_force_bias_level}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjMhhhj_hMubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjtsbc.snd_soc_dapm_force_bias_levelasbuh1hhjubj)}(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)}(henum snd_soc_bias_level levelh](jL)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(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 reftargetj modnameN classnameNjj)}j]jc.snd_soc_dapm_force_bias_levelasbuh1hhjubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hlevelh]hlevel}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjMhhhj_hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjIhhhj_hMubah}(h]jDah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj_hMhjFhhubjb)}(hhh]jg)}(hSets the DAPM bias levelh]hSets the DAPM bias level}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjqhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhj_hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXg**Parameters** ``struct snd_soc_dapm_context *dapm`` The DAPM context for which to set the level ``enum snd_soc_bias_level level`` The level to set **Description** Forces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered. Note that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(hR``struct snd_soc_dapm_context *dapm`` The DAPM context for which to set the level h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h+The DAPM context for which to set the levelh]h+The DAPM context for which to set the level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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&]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)}(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.}(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)}(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.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_init_bias_level (C function)c.snd_soc_dapm_init_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdvoid snd_soc_dapm_init_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(hcvoid snd_soc_dapm_init_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hvoidh]hvoid}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjyhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjyhhhjhM ubj)}(hsnd_soc_dapm_init_bias_levelh]j%)}(hsnd_soc_dapm_init_bias_levelh]hsnd_soc_dapm_init_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjyhhhjhM ubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_init_bias_levelasbuh1hhjubj)}(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)}(henum snd_soc_bias_level levelh](jL)}(hj(h]henum}(hj,hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj(ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubh)}(hhh]j%)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjJhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jc.snd_soc_dapm_init_bias_levelasbuh1hhj(ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj%)}(hlevelh]hlevel}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjyhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjhM ubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjrhhubjb)}(hhh]jg)}(hInitialize DAPM bias levelh]hInitialize 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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXS**Parameters** ``struct snd_soc_dapm_context *dapm`` The DAPM context to initialize ``enum snd_soc_bias_level level`` The DAPM level to initialize to **Description** This function only sets the driver internal state of the DAPM level and will not modify the state of the device. Hence it should not be used during normal operation, but only to synchronize the internal state to the device state. E.g. during driver probe to set the DAPM level to the one corresponding with the power-on reset state of the device. To change the DAPM state of the device use snd_soc_dapm_set_bias_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)}(hE``struct snd_soc_dapm_context *dapm`` The DAPM context to initialize h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hThe DAPM context to initializeh]hThe DAPM context to initialize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hB``enum snd_soc_bias_level level`` The DAPM level to initialize to 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.chM hjubj)}(hhh]jg)}(hThe DAPM level to initialize toh]hThe DAPM level to initialize to}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hM hj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjUh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hXZThis function only sets the driver internal state of the DAPM level and will not modify the state of the device. Hence it should not be used during normal operation, but only to synchronize the internal state to the device state. E.g. during driver probe to set the DAPM level to the one corresponding with the power-on reset state of the device.h]hXZThis function only sets the driver internal state of the DAPM level and will not modify the state of the device. Hence it should not be used during normal operation, but only to synchronize the internal state to the device state. E.g. during driver probe to set the DAPM level to the one corresponding with the power-on reset state of the device.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(hITo change the DAPM state of the device use snd_soc_dapm_set_bias_level().h]hITo change the DAPM state of the device use snd_soc_dapm_set_bias_level().}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_set_bias_level (C function)c.snd_soc_dapm_set_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hbint snd_soc_dapm_set_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]h)}(haint snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_set_bias_levelh]j%)}(hsnd_soc_dapm_set_bias_levelh]hsnd_soc_dapm_set_bias_level}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_set_bias_levelasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hj?hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(henum snd_soc_bias_level levelh](jL)}(hj(h]henum}(hjXhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTubj)}(h h]h }(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubh)}(hhh]j%)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j c.snd_soc_dapm_set_bias_levelasbuh1hhjTubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTubj%)}(hlevelh]hlevel}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjhhubjb)}(hhh]jg)}(h!set the bias level for the systemh]h!set the bias level for the system}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``enum snd_soc_bias_level level`` level to configure **Description** Configure the bias (power) levels for the SoC audio device. Returns 0 for success else error.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM"hjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj h]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubj)}(h5``enum snd_soc_bias_level level`` level to configure h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hjFh]henum snd_soc_bias_level level}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj@ubj)}(hhh]jg)}(hlevel to configureh]hlevel to configure}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj[hM hj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM"hjubjg)}(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.chM!hjubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM#hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_bias_level (C function)c.snd_soc_dapm_get_bias_levelhNtauh1hhjhhhNhNubh)}(hhh](h)}(hWenum snd_soc_bias_level snd_soc_dapm_get_bias_level (struct snd_soc_dapm_context *dapm)h]h)}(hVenum snd_soc_bias_level snd_soc_dapm_get_bias_level(struct snd_soc_dapm_context *dapm)h](jL)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMDubh)}(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]j)}jsnd_soc_dapm_get_bias_levelsbc.snd_soc_dapm_get_bias_levelasbuh1hhjhhhjhMDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMDubj)}(hsnd_soc_dapm_get_bias_levelh]j%)}(hjh]hsnd_soc_dapm_get_bias_level}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMDubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](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_dapm_contexth]hsnd_soc_dapm_context}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_bias_levelasbuh1hhj>ubj)}(h h]h }(hj~hhhNhNubah}(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:ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMDubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMDubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMDhjhhubjb)}(hhh]jg)}(hGet current DAPM bias levelh]hGet current 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.chMDhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` The context for which to get the bias level **Return** The current bias level of the passed DAPM context.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMHhjubj)}(hhh]j)}(hR``struct snd_soc_dapm_context *dapm`` The context for which to get the bias level h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMEhjubj)}(hhh]jg)}(h+The context for which to get the bias levelh]h+The context for which to get the bias level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMEhjubah}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGhjubjg)}(h2The current bias level of the passed DAPM context.h]h2The current bias level of the passed 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.chMGhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_dai_get_connected_widgets (C function)(c.snd_soc_dapm_dai_get_connected_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(hint snd_soc_dapm_dai_get_connected_widgets (struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction))h]h)}(hint snd_soc_dapm_dai_get_connected_widgets(struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction))h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h&snd_soc_dapm_dai_get_connected_widgetsh]j%)}(h&snd_soc_dapm_dai_get_connected_widgetsh]h&snd_soc_dapm_dai_get_connected_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(h(struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget_list **list, bool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction))h](jF)}(hstruct snd_soc_dai *daih](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_soc_daih]h snd_soc_dai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](h)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hstreamh]hstream}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h&struct snd_soc_dapm_widget_list **listh](jL)}(hjOh]hstruct}(hjhhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_soc_dapm_widget_listh]hsnd_soc_dapm_widget_list}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjdubj)}(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%)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(hWbool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction)h](h)}(hj̖h]hbool}(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*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcustom_stop_conditionh]hcustom_stop_condition}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubj)}(hjh]h)}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h(}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjL)}(hjOh]hstruct}(hjBhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjOhhhNhNubah}(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 reftargetjbmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjRh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_directionh]hsnd_soc_dapm_direction}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj|hhhjhMubah}(h]jwah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMhjyhhubjb)}(hhh]jg)}(h"query audio path and it's widgets.h]h$query audio path and it’s 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.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjyhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhjhNhNubj)}(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)}(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)}(h)``struct snd_soc_dai *dai`` the soc DAI. h](j)}(h``struct snd_soc_dai *dai``h]j)}(hjLh]hstruct snd_soc_dai *dai}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjFubj)}(hhh]jg)}(h the soc DAI.h]h the soc DAI.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjahMhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMhjCubj)}(h!``int stream`` stream direction. h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hstream direction.h]hstream direction.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjCubj)}(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.chM hjubj)}(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&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjCubj)}(h``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)`` (optional) a function meant to stop the widget graph walk based on custom logic. h](j)}(h\``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)``h]j)}(hjh]hXbool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hP(optional) a function meant to stop the widget graph walk based on custom logic.h]hP(optional) a function meant to stop the widget graph walk based on custom logic.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM hjCubeh}(h]h ]h"]h$]h&]uh1jhj'ubjg)}(h**Description**h]j)}(hj3h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj'ubjg)}(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.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj'ubjg)}(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.}(hjXhhhNhNubah}(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)}(h4Returns the number of valid paths or negative error.h]h4Returns the number of valid paths or negative error.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_free_widget (C function)c.snd_soc_dapm_free_widgethNtauh1hhjhhhNhNubh)}(hhh](h)}(h=void snd_soc_dapm_free_widget (struct snd_soc_dapm_widget *w)h]h)}(huh1jhjhhhjhM ubj@)}(h(struct snd_soc_dapm_widget *w)h]jF)}(hstruct snd_soc_dapm_widget *wh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_free_widgetasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hjh]hw}(hj,hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hFree specified widgeth]hFree specified widget}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjRhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhjhNhNubj)}(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)}(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.chM hjqubj)}(hhh]j)}(h1``struct snd_soc_dapm_widget *w`` widget to free h](j)}(h!``struct snd_soc_dapm_widget *w``h]j)}(hjh]hstruct snd_soc_dapm_widget *w}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hwidget to freeh]hwidget to free}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjqubjg)}(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 hjqubjg)}(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 hjqubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_dapm_sync_unlocked (C function)c.snd_soc_dapm_sync_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hBint snd_soc_dapm_sync_unlocked (struct snd_soc_dapm_context *dapm)h]h)}(hAint snd_soc_dapm_sync_unlocked(struct snd_soc_dapm_context *dapm)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMt ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj$hMt ubj)}(hsnd_soc_dapm_sync_unlockedh]j%)}(hsnd_soc_dapm_sync_unlockedh]hsnd_soc_dapm_sync_unlocked}(hj7hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj$hMt ubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjOubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jj9sbc.snd_soc_dapm_sync_unlockedasbuh1hhjOubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj%)}(hdapmh]hdapm}(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$hMt ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj$hMt ubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj$hMt hj hhubjb)}(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.chMt hjhhubah}(h]h ]h"]h$]h&]uh1jahj hhhj$hMt ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Walks all dapm audio paths and powers widgets according to their stream or path usage. Requires external locking. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMx 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.chMu hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMu hj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMu hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjRh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMw 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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMv hjubjg)}(hRequires external locking.h]hRequires external locking.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMy hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM{ hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_sync (C function)c.snd_soc_dapm_synchNtauh1hhjhhhNhNubh)}(hhh](h)}(h9int snd_soc_dapm_sync (struct snd_soc_dapm_context *dapm)h]h)}(h8int snd_soc_dapm_sync(struct snd_soc_dapm_context *dapm)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_synch]j%)}(hsnd_soc_dapm_synch]hsnd_soc_dapm_sync}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_syncasbuh1hhjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hscan and power dapm pathsh]hscan and power dapm paths}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjrhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Walks all dapm audio paths and powers widgets according to their stream or path usage. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hVWalks all dapm audio paths and powers widgets according to their stream or path usage.h]hVWalks all dapm audio paths and powers widgets according to their stream or path usage.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_add_routes (C function)c.snd_soc_dapm_add_routeshNtauh1hhjhhhNhNubh)}(hhh](h)}(hpint snd_soc_dapm_add_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hoint snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAhhhjShM ubj)}(hsnd_soc_dapm_add_routesh]j%)}(hsnd_soc_dapm_add_routesh]hsnd_soc_dapm_add_routes}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjAhhhjShM 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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_soc_dapm_add_routesasbuh1hhj~ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(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}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]jc.snd_soc_dapm_add_routesasbuh1hhjubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubjF)}(hint numh](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj{ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj%)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj{ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjzubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjAhhhjShM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj=hhhjShM ubah}(h]j8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjShM hj:hhubjb)}(hhh]jg)}(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.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahj:hhhjShM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** Connects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal. Returns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hj?h]h&const struct snd_soc_dapm_route *route}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj9ubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThM hjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThM hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjxh]hint num}(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.chM hjrubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hConnects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal.h]hConnects 2 dapm widgets together via a named audio path. The sink is the widget receiving the audio signal, whilst the source is the sender of the audio signal.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hiReturns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().h]hiReturns 0 for success else error. On error all resources can be freed with a call to snd_soc_card_free().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_del_routes (C function)c.snd_soc_dapm_del_routeshNtauh1hhjhhhNhNubh)}(hhh](h)}(hpint snd_soc_dapm_del_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]h)}(hoint snd_soc_dapm_del_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_del_routesh]j%)}(hsnd_soc_dapm_del_routesh]hsnd_soc_dapm_del_routes}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@ubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jj*sbc.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%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(h&const struct snd_soc_dapm_route *routeh](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~c.snd_soc_dapm_del_routesasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrouteh]hroute}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hint numh](h)}(hinth]hint}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=ubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hnumh]hnum}(hj]hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(h"Remove routes between DAPM widgetsh]h"Remove routes between DAPM widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** Removes routes from the DAPM context.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjh]h!struct snd_soc_dapm_context *dapm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h8``const struct snd_soc_dapm_route *route`` audio routes h](j)}(h*``const struct snd_soc_dapm_route *route``h]j)}(hjh]h&const struct snd_soc_dapm_route *route}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hj:h]hint num}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj4ubj)}(hhh]jg)}(hnumber of routesh]hnumber of routes}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhM hjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjuh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(h%Removes routes from the DAPM context.h]h%Removes routes from the DAPM context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_widgets (C function)c.snd_soc_dapm_new_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(h8int snd_soc_dapm_new_widgets (struct snd_soc_card *card)h]h)}(h7int snd_soc_dapm_new_widgets(struct snd_soc_card *card)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_new_widgetsh]j%)}(hsnd_soc_dapm_new_widgetsh]hsnd_soc_dapm_new_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(h(struct snd_soc_card *card)h]jF)}(hstruct snd_soc_card *cardh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(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 }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hcardh]hcard}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM hjhhubjb)}(hhh]jg)}(hadd new dapm widgetsh]hadd new dapm widgets}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjwhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_card *card`` card to be checked for new dapm widgets **Description** Checks the codec for any new dapm widgets and creates them if found. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]j)}(hF``struct snd_soc_card *card`` card to be checked for new dapm widgets h](j)}(h``struct snd_soc_card *card``h]j)}(hjh]hstruct snd_soc_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h'card to be checked for new dapm widgetsh]h'card to be checked for new dapm widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_get_volsw (C function)c.snd_soc_dapm_get_volswhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h^int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjXhM ubj)}(hsnd_soc_dapm_get_volswh]j%)}(hsnd_soc_dapm_get_volswh]hsnd_soc_dapm_get_volsw}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhjXhM 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)}jjmsbc.snd_soc_dapm_get_volswasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(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 }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjFhhhjXhM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjBhhhjXhM ubah}(h]j=ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjXhM hj?hhubjb)}(hhh]jg)}(hdapm mixer get callbackh]hdapm mixer get callback}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjwhhubah}(h]h ]h"]h$]h&]uh1jahj?hhhjXhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a dapm mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj/h]h Description}(hj1hhhNhNubah}(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)}(h2Callback to get the value of a dapm mixer control.h]h2Callback to get the value of a dapm mixer control.}(hjEhhhNhNubah}(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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_dapm_put_volsw (C function)c.snd_soc_dapm_put_volswhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(h^int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMI ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMI ubj)}(hsnd_soc_dapm_put_volswh]j%)}(hsnd_soc_dapm_put_volswh]hsnd_soc_dapm_put_volsw}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMI ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_volswasbuh1hhjubj)}(h h]h }(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}(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_valueh]hsnd_ctl_elem_value}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]jc.snd_soc_dapm_put_volswasbuh1hhj.ubj)}(h h]h }(hjnhhhNhNubah}(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?hjhhhjhMI ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj{hhhjhMI ubah}(h]jvah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMI hjxhhubjb)}(hhh]jg)}(hdapm mixer set callbackh]hdapm mixer set callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMI hjhhubah}(h]h ]h"]h$]h&]uh1jahjxhhhjhMI ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMM 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.chMJ hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hMJ hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMJ hjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj-h]h#struct snd_ctl_elem_value *ucontrol}(hj/hhhNhNubah}(h]h ]h"]h$]h&]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.chMK hj'ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhMK hjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMK hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjhh]h Description}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMM hjubjg)}(h2Callback to set the value of a dapm mixer control.h]h2Callback to set the value of a dapm mixer control.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chML 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.chMN hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_get_enum_double (C function)c.snd_soc_dapm_get_enum_doublehNtauh1hhjhhhNhNubh)}(hhh](h)}(heint snd_soc_dapm_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hdint snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM ubj)}(hsnd_soc_dapm_get_enum_doubleh]j%)}(hsnd_soc_dapm_get_enum_doubleh]hsnd_soc_dapm_get_enum_double}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_get_enum_doubleasbuh1hhjubj)}(h h]h }(hj7 hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjE hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjR 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}(hjk hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjg ubj)}(h h]h }(hjx hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg 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]j3 c.snd_soc_dapm_get_enum_doubleasbuh1hhjg ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg ubj%)}(hucontrolh]hucontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg 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)dapm enumerated double mixer get callbackh]h)dapm enumerated double mixer get 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 hj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to get the value of a dapm enumerated double mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(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}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjB hM hjC ubah}(h]h ]h"]h$]h&]uh1jhj' ubeh}(h]h ]h"]h$]h&]uh1jhjB hM hj$ ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjf h]h#struct snd_ctl_elem_value *ucontrol}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj` ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{ hM hj| ubah}(h]h ]h"]h$]h&]uh1jhj` ubeh}(h]h ]h"]h$]h&]uh1jhj{ hM hj$ ubeh}(h]h ]h"]h$]h&]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)}(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.}(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)}(hReturns 0 for success.h]hReturns 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_put_enum_double (C function)c.snd_soc_dapm_put_enum_doublehNtauh1hhjhhhNhNubh)}(hhh](h)}(heint snd_soc_dapm_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hdint snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hM ubj)}(hsnd_soc_dapm_put_enum_doubleh]j%)}(hsnd_soc_dapm_put_enum_doubleh]hsnd_soc_dapm_put_enum_double}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj hhhj hM ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hj2 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}(hjP hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjM ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjR modnameN classnameNjj)}j]j)}jj sbc.snd_soc_dapm_put_enum_doubleasbuh1hhj. ubj)}(h h]h }(hjp hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj. ubj)}(hjh]h*}(hj~ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj. ubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj. ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj* ubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jl c.snd_soc_dapm_put_enum_doubleasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(hucontrolh]hucontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubeh}(h]h ]h"]h$]h&]noemphj=j>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)dapm enumerated double mixer set callbackh]h)dapm enumerated double 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 hj" hhubah}(h]h ]h"]h$]h&]uh1jahj hhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj= jj= jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm enumerated double mixer control. Returns 0 for success.h](jg)}(h**Parameters**h]j)}(hjG h]h Parameters}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE 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 hjA ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjf h]hstruct snd_kcontrol *kcontrol}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj` ubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{ hM hj| ubah}(h]h ]h"]h$]h&]uh1jhj` ubeh}(h]h ]h"]h$]h&]uh1jhj{ hM hj] ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj h]h#struct snd_ctl_elem_value *ucontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj)}(hhh]jg)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM hj] ubeh}(h]h ]h"]h$]h&]uh1jhjA 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 hjA ubjg)}(hDCallback to set the value of a dapm enumerated double mixer control.h]hDCallback to set the value of a dapm enumerated double mixer control.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjA ubjg)}(hReturns 0 for success.h]hReturns 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjA ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_info_pin_switch (C function)c.snd_soc_dapm_info_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(haint snd_soc_dapm_info_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]h)}(h`int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](h)}(hinth]hint}(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_info_pin_switchh]j%)}(hsnd_soc_dapm_info_pin_switchh]hsnd_soc_dapm_info_pin_switch}(hjO hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjK ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj* hhhj< hMubj@)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjk hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjg ubj)}(h h]h }(hjx hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg 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)}jjQ sbc.snd_soc_dapm_info_pin_switchasbuh1hhjg ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjg ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg ubj%)}(hkcontrolh]hkcontrol}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjg ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjc ubjF)}(hstruct snd_ctl_elem_info *uinfoh](jL)}(hjOh]hstruct}(hj hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubh)}(hhh]j%)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j c.snd_soc_dapm_info_pin_switchasbuh1hhj ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj%)}(huinfoh]huinfo}(hj4hhhNhNubah}(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< 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)}(hInfo for a pin switchh]hInfo for a pin switch}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj[hhubah}(h]h ]h"]h$]h&]uh1jahj# hhhj< hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhjhNhNubj)}(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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjzubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.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&]uh1jhjzubjg)}(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.chMhjzubjg)}(h;Callback to provide information about a pin switch control.h]h;Callback to provide information about a pin switch control.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_switch (C function)c.snd_soc_dapm_get_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_get_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hcint snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjThhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM!ubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjThhhjfhM!ubj)}(hsnd_soc_dapm_get_pin_switchh]j%)}(hsnd_soc_dapm_get_pin_switchh]hsnd_soc_dapm_get_pin_switch}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjThhhjfhM!ubj@)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jF)}(hstruct snd_kcontrol *kcontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sbc.snd_soc_dapm_get_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}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]jc.snd_soc_dapm_get_pin_switchasbuh1hhjubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjThhhjfhM!ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjPhhhjfhM!ubah}(h]jKah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhM!hjMhhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM!hjhhubah}(h]h ]h"]h$]h&]uh1jahjMhhhjfhM!ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.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&]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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM&hjubjg)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM%hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_get_component_pin_switch (C function)'c.snd_soc_dapm_get_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hnint snd_soc_dapm_get_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hmint snd_soc_dapm_get_component_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(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.chM4ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhjhM4ubj)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhjhM4ubj@)}(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)}jjsb'c.snd_soc_dapm_get_component_pin_switchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hj1hhhNhNubah}(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}(hjOhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j'c.snd_soc_dapm_get_component_pin_switchasbuh1hhj-ubj)}(h h]h }(hjmhhhNhNubah}(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?hj~hhhjhM4ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjzhhhjhM4ubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM4hjwhhubjb)}(hhh]jg)}(h Get information for a pin switchh]h Get information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM4hjhhubah}(h]h ]h"]h$]h&]uh1jahjwhhhjhM4ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.chM8hjubj)}(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.chM6hjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM6hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(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.chM7hj&ubj)}(hhh]jg)}(hValueh]hValue}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhM7hjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhM7hjubeh}(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&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hjubjg)}(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.chM8hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_put_pin_switch (C function)c.snd_soc_dapm_put_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hdint snd_soc_dapm_put_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hcint snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMVubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMVubj)}(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>uh1jhjhhhjhMVubj@)}(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 reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_pin_switchasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjBhhhNhNubah}(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&]uh1jKhjWubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjyhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j#c.snd_soc_dapm_put_pin_switchasbuh1hhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhjhMVubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMVubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMVhjhhubjb)}(hhh]jg)}(h 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.chMVhjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMVubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.chMZhjubj)}(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.chMXhjubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2hMXhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMXhjubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjVh]h#struct snd_ctl_elem_value *ucontrol}(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.chMYhjPubj)}(hhh]jg)}(hValueh]hValue}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkhMYhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhMYhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM[hjubjg)}(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.chMZhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_soc_dapm_put_component_pin_switch (C function)'c.snd_soc_dapm_put_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](h)}(hnint snd_soc_dapm_put_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]h)}(hmint snd_soc_dapm_put_component_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMiubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMiubj)}(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}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMiubj@)}(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}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jjsb'c.snd_soc_dapm_put_component_pin_switchasbuh1hhjubj)}(h h]h }(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hkcontrolh]hkcontrol}(hjlhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj ubjF)}(h#struct snd_ctl_elem_value *ucontrolh](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jM'c.snd_soc_dapm_put_component_pin_switchasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hucontrolh]hucontrol}(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?hjhhhjhMiubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhMiubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhMihjhhubjb)}(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.chMihjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMiubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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.chMmhj"ubj)}(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&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMkhjAubj)}(hhh]jg)}(h mixer controlh]h mixer control}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj\hMkhj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hMkhj>ubj)}(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&]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.chMlhjzubj)}(hhh]jg)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMlhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMlhj>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.chMnhj"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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMmhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_new_control (C function)c.snd_soc_dapm_new_controlhNtauh1hhjhhhNhNubh)}(hhh](h)}(hstruct snd_soc_dapm_widget * snd_soc_dapm_new_control (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h]h)}(hstruct snd_soc_dapm_widget *snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](jL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjhhhf/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 hjhhhj hM ubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jsnd_soc_dapm_new_controlsbc.snd_soc_dapm_new_controlasbuh1hhjhhhj hM ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hM ubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hM ubj)}(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>uh1jhjhhhj hM ubj@)}(hM(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubh)}(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;c.snd_soc_dapm_new_controlasbuh1hhjvubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjvubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj%)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjvubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubjF)}(h(const struct snd_soc_dapm_widget *widgeth](jL)}(hj\h]hconst}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubjL)}(hjOh]hstruct}(hjhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(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_controlasbuh1hhjubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hwidgeth]hwidget}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hM ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hM hjhhubjb)}(hhh]jg)}(hcreate new dapm controlh]hcreate new dapm control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX **Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_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)}(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.chM hjubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h=``const struct snd_soc_dapm_widget *widget`` widget template h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hjh]h(const struct snd_soc_dapm_widget *widget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj)}(hhh]jg)}(hwidget templateh]hwidget template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hj;h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h/Creates new DAPM control based upon a template.h]h/Creates new DAPM control based upon a template.}(hjQhhhNhNubah}(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)}(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.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_new_controls (C function)c.snd_soc_dapm_new_controlshNtauh1hhjhhhNhNubh)}(hhh](h)}(h}int snd_soc_dapm_new_controls (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h]h)}(h|int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM!ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhM!ubj)}(hsnd_soc_dapm_new_controlsh]j%)}(hsnd_soc_dapm_new_controlsh]hsnd_soc_dapm_new_controls}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhM!ubj@)}(h_(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(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_new_controlsasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdapmh]hdapm}(hj%hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h(const struct snd_soc_dapm_widget *widgeth](jL)}(hj\h]hconst}(hj>hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:ubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubjL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj:ubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubh)}(hhh]j%)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlsasbuh1hhj:ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj%)}(hwidgeth]hwidget}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:ubeh}(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?hjhhhjhM!ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhjhM!ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjhM!hjhhubjb)}(hhh]jg)}(hcreate new dapm controlsh]hcreate new dapm controls}(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&]jjjjCjjCjjjuh1hhhhjhNhNubj)}(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)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM%hjGubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjlh]h!struct snd_soc_dapm_context *dapm}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM"hjfubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM"hjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhM"hjcubj)}(h:``const struct snd_soc_dapm_widget *widget`` widget array h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hjh]h(const struct snd_soc_dapm_widget *widget}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM#hjubj)}(hhh]jg)}(h widget arrayh]h widget array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjcubj)}(h'``unsigned int num`` number of widgets h](j)}(h``unsigned int num``h]j)}(hjh]hunsigned int num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM$hjubj)}(hhh]jg)}(hnumber of widgetsh]hnumber of widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhM$hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM$hjcubeh}(h]h ]h"]h$]h&]uh1jhjGubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM&hjGubjg)}(h3Creates new DAPM controls based upon the templates.h]h3Creates new DAPM controls based upon the templates.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM%hjGubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM'hjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_dapm_new_dai_widgets (C function)c.snd_soc_dapm_new_dai_widgetshNtauh1hhjhhhNhNubh)}(hhh](h)}(h]int snd_soc_dapm_new_dai_widgets (struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h]h)}(h\int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhf/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 hjihhhj{hMubj)}(hsnd_soc_dapm_new_dai_widgetsh]j%)}(hsnd_soc_dapm_new_dai_widgetsh]hsnd_soc_dapm_new_dai_widgets}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhj{hMubj@)}(h<(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)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_new_dai_widgetsasbuh1hhjubj)}(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)}(hstruct snd_soc_dai *daih](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_daih]h snd_soc_dai}(hj:hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]jc.snd_soc_dapm_new_dai_widgetsasbuh1hhjubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hdaih]hdai}(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{hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjehhhj{hMubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj{hMhjbhhubjb)}(hhh]jg)}(hCreate new DAPM widgetsh]hCreate new DAPM widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1jahjbhhhj{hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjRh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubjg)}(h+Returns 0 on success, error code otherwise.h]h+Returns 0 on success, error code otherwise.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_stream_event (C function)c.snd_soc_dapm_stream_eventhNtauh1hhjhhhNhNubh)}(hhh](h)}(hWvoid snd_soc_dapm_stream_event (struct snd_soc_pcm_runtime *rtd, int stream, int event)h]h)}(hVvoid snd_soc_dapm_stream_event(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hsnd_soc_dapm_stream_eventh]j%)}(hsnd_soc_dapm_stream_eventh]hsnd_soc_dapm_stream_event}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhjhMubj@)}(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 }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(hrtdh]hrtd}(hj- hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int streamh](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%)}(hstreamh]hstream}(hjb hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjB ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubjF)}(h int eventh](h)}(hinth]hint}(hj{ hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjw ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw ubj%)}(heventh]hevent}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjw 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$send a stream event to the dapm coreh]h$send a stream event to the dapm core}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(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)}(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)}(h5``struct snd_soc_pcm_runtime *rtd`` PCM runtime data 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&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh]jg)}(hPCM runtime datah]hPCM runtime 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``int stream`` stream name h](j)}(h``int stream``h]j)}(hj;!h]h int stream}(hj=!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9!ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj5!ubj)}(hhh]jg)}(h stream nameh]h stream name}(hjT!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjP!hMhjQ!ubah}(h]h ]h"]h$]h&]uh1jhj5!ubeh}(h]h ]h"]h$]h&]uh1jhjP!hMhj ubj)}(h``int event`` stream event h](j)}(h ``int event``h]j)}(hjt!h]h int event}(hjv!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr!ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjn!ubj)}(hhh]jg)}(h stream eventh]h stream event}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjn!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjg)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubjg)}(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.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubjg)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_dapm_enable_pin_unlocked (C function)"c.snd_soc_dapm_enable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hYint snd_soc_dapm_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hXint snd_soc_dapm_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!hhhj"hMubj)}(h snd_soc_dapm_enable_pin_unlockedh]j%)}(h snd_soc_dapm_enable_pin_unlockedh]h snd_soc_dapm_enable_pin_unlocked}(hj$"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj "ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj!hhhj"hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj@"hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<"ubj)}(h h]h }(hjM"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<"ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj^"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj["ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`"modnameN classnameNjj)}j]j)}jj&"sb"c.snd_soc_dapm_enable_pin_unlockedasbuh1hhj<"ubj)}(h h]h }(hj~"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<"ubj%)}(hdapmh]hdapm}(hj"hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<"ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8"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>uh1jEhj8"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 enable pin.h]h enable pin.}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj#hhubah}(h]h ]h"]h$]h&]uh1jahj!hhhj"hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8#jj8#jjjuh1hhhhjhNhNubj)}(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)}(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: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)}(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.chMhj[#ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjz#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjv#hMhjw#ubah}(h]h ]h"]h$]h&]uh1jhj[#ubeh}(h]h ]h"]h$]h&]uh1jhjv#hMhjX#ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj#h]hconst char *pin}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj#ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#hMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhjX#ubeh}(h]h ]h"]h$]h&]uh1jhj<#ubjg)}(h**Description**h]j)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj<#ubjg)}(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.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj<#ubjg)}(hRequires external locking.h]hRequires external locking.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj<#ubjg)}(h**NOTE**h]j)}(hj $h]hNOTE}(hj $hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj $ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj<#ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj!$hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj<#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_dapm_enable_pin (C function)c.snd_soc_dapm_enable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hPint snd_soc_dapm_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hOint snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjP$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjL$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 hjL$hhhj^$hMubj)}(hsnd_soc_dapm_enable_pinh]j%)}(hsnd_soc_dapm_enable_pinh]hsnd_soc_dapm_enable_pin}(hjq$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjm$ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjL$hhhj^$hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjs$sbc.snd_soc_dapm_enable_pinasbuh1hhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hdapmh]hdapm}(hj$hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj$ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj$hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$ubj)}(h h]h }(hj %hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubh)}(hcharh]hchar}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$ubj)}(h h]h }(hj(%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hj6%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hpinh]hpin}(hjC%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?hjL$hhhj^$hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjH$hhhj^$hMubah}(h]jC$ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj^$hMhjE$hhubjb)}(hhh]jg)}(h enable pin.h]h enable 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.chMhjj%hhubah}(h]h ]h"]h$]h&]uh1jahjE$hhhj^$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhjhNhNubj)}(hXU**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin and its parents or children widgets iff there is a valid audio route and active audio stream. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj%h]h!struct snd_soc_dapm_context *dapm}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj%h]hconst char *pin}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubjg)}(h**Description**h]j)}(hj"&h]h Description}(hj$&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj &ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubjg)}(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.}(hj8&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubjg)}(h**NOTE**h]j)}(hjI&h]hNOTE}(hjK&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG&ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hj_&hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_force_enable_pin_unlocked (C function)(c.snd_soc_dapm_force_enable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(h_int snd_soc_dapm_force_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(h^int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM(ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&hhhj&hM(ubj)}(h&snd_soc_dapm_force_enable_pin_unlockedh]j%)}(h&snd_soc_dapm_force_enable_pin_unlockedh]h&snd_soc_dapm_force_enable_pin_unlocked}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&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}(hj&hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj&hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jj&sb(c.snd_soc_dapm_force_enable_pin_unlockedasbuh1hhj&ubj)}(h h]h }(hj 'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(hdapmh]hdapm}(hj$'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj&ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj='hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj9'ubj)}(h h]h }(hjJ'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9'ubh)}(hcharh]hchar}(hjX'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9'ubj)}(h h]h }(hjf'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9'ubj)}(hjh]h*}(hjt'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9'ubj%)}(hpinh]hpin}(hj'hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9'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)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM(hj'hhubah}(h]h ]h"]h$]h&]uh1jahj&hhhj&hM(ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'jj'jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(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)}(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&]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.chM,hj'ubjg)}(hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.h]hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.}(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.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.chM1hj'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.chM2hj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_dapm_force_enable_pin (C function)c.snd_soc_dapm_force_enable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hVint snd_soc_dapm_force_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hUint snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(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.chMQubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhj(hMQubj)}(hsnd_soc_dapm_force_enable_pinh]j%)}(hsnd_soc_dapm_force_enable_pinh]hsnd_soc_dapm_force_enable_pin}(hj(hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj(ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj(hhhj(hMQubj@)}(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}(hj6)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8)modnameN classnameNjj)}j]j)}jj(sbc.snd_soc_dapm_force_enable_pinasbuh1hhj)ubj)}(h h]h }(hjV)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hjd)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hdapmh]hdapm}(hjq)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj)hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubh)}(hcharh]hchar}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hpinh]hpin}(hj)hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj)ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj(hhhj(hMQubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj(hhhj(hMQubah}(h]j(ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj(hMQhj(hhubjb)}(hhh]jg)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMQhj)hhubah}(h]h ]h"]h$]h&]uh1jahj(hhhj(hMQubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhjhNhNubj)}(hXq**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Enables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMUhj*ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj9*h]h!struct snd_soc_dapm_context *dapm}(hj;*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7*ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMRhj3*ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjR*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjN*hMRhjO*ubah}(h]h ]h"]h$]h&]uh1jhj3*ubeh}(h]h ]h"]h$]h&]uh1jhjN*hMRhj0*ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjr*h]hconst char *pin}(hjt*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp*ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMShjl*ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*hMShj*ubah}(h]h ]h"]h$]h&]uh1jhjl*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMShj0*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.chMUhj*ubjg)}(hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.h]hEnables input/output pin regardless of any other state. This is intended for use with microphone bias supplies used in microphone jack detection.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMThj*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.chMXhj*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.chMYhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_soc_dapm_disable_pin_unlocked (C function)#c.snd_soc_dapm_disable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](h)}(hZint snd_soc_dapm_disable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hYint snd_soc_dapm_disable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj+hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlubj)}(h h]h }(hj(+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+hhhj'+hMlubj)}(h!snd_soc_dapm_disable_pin_unlockedh]j%)}(h!snd_soc_dapm_disable_pin_unlockedh]h!snd_soc_dapm_disable_pin_unlocked}(hj:+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6+ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj+hhhj'+hMlubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hjV+hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjR+ubj)}(h h]h }(hjc+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjR+ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjt+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjq+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv+modnameN classnameNjj)}j]j)}jj<+sb#c.snd_soc_dapm_disable_pin_unlockedasbuh1hhjR+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjR+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR+ubj%)}(hdapmh]hdapm}(hj+hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjR+ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjN+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>uh1jEhjN+ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj+hhhj'+hMlubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj+hhhj'+hMlubah}(h]j +ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj'+hMlhj+hhubjb)}(hhh]jg)}(h disable pin.h]h disable pin.}(hj6,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlhj3,hhubah}(h]h ]h"]h$]h&]uh1jahj+hhhj'+hMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjjN,jjN,jjjuh1hhhhjhNhNubj)}(hX9**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Disables input/output pin and its parents or children widgets. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hjX,h]h Parameters}(hjZ,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV,ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMphjR,ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjw,h]h!struct snd_soc_dapm_context *dapm}(hjy,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju,ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMmhjq,ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMmhj,ubah}(h]h ]h"]h$]h&]uh1jhjq,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMmhjn,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.chMnhj,ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj,hMnhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hMnhjn,ubeh}(h]h ]h"]h$]h&]uh1jhjR,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.chMphjR,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.chMohjR,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.chMqhjR,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.chMshjR,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.}(hj7-hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMthjR,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_disable_pin (C function)c.snd_soc_dapm_disable_pinhNtauh1hhjhhhNhNubh)}(hhh](h)}(hQint snd_soc_dapm_disable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hPint snd_soc_dapm_disable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hjf-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjb-hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hju-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb-hhhjt-hMubj)}(hsnd_soc_dapm_disable_pinh]j%)}(hsnd_soc_dapm_disable_pinh]hsnd_soc_dapm_disable_pin}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjb-hhhjt-hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj-hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jj-sbc.snd_soc_dapm_disable_pinasbuh1hhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(hdapmh]hdapm}(hj-hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj-ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hj.hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj.ubj)}(h h]h }(hj".hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubh)}(hcharh]hchar}(hj0.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj.ubj)}(h h]h }(hj>.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hjh]h*}(hjL.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj%)}(hpinh]hpin}(hjY.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?hjb-hhhjt-hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^-hhhjt-hMubah}(h]jY-ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjt-hMhj[-hhubjb)}(hhh]jg)}(h disable pin.h]h disable pin.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.hhubah}(h]h ]h"]h$]h&]uh1jahj[-hhhjt-hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj.jj.jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Disables input/output pin and its parents or children widgets. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](jg)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj.h]h!struct snd_soc_dapm_context *dapm}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.hMhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMhj.ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj.h]hconst char *pin}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubj)}(hhh]jg)}(hpin nameh]hpin name}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.ubjg)}(h**Description**h]j)}(hj8/h]h Description}(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:109: ./sound/soc/soc-dapm.chMhj.ubjg)}(h>Disables input/output pin and its parents or children widgets.h]h>Disables input/output pin and its parents or children widgets.}(hjN/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubjg)}(h**NOTE**h]j)}(hj_/h]hNOTE}(hja/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]/ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubjg)}(h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h]h\snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.}(hju/hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_get_pin_status (C function)c.snd_soc_dapm_get_pin_statushNtauh1hhjhhhNhNubh)}(hhh](h)}(hTint snd_soc_dapm_get_pin_status (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hSint snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj/hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/hhhj/hMubj)}(hsnd_soc_dapm_get_pin_statush]j%)}(hsnd_soc_dapm_get_pin_statush]hsnd_soc_dapm_get_pin_status}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj/hhhj/hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj/hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj/hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj/sbc.snd_soc_dapm_get_pin_statusasbuh1hhj/ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hjh]h*}(hj-0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj%)}(hdapmh]hdapm}(hj:0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hjS0hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjO0ubj)}(h h]h }(hj`0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO0ubh)}(hcharh]hchar}(hjn0hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjO0ubj)}(h h]h }(hj|0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjO0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO0ubj%)}(hpinh]hpin}(hj0hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO0ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj/ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj/hhhj/hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj/hhhj/hMubah}(h]j/ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj/hMhj/hhubjb)}(hhh]jg)}(hget audio pin statush]hget audio pin status}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0hhubah}(h]h ]h"]h$]h&]uh1jahj/hhhj/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhjhNhNubj)}(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)}(hj0h]h Parameters}(hj0hhhNhNubah}(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.chMhj0ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj1h]h!struct snd_soc_dapm_context *dapm}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj1hMhj1ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj1hMhj0ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hj;1h]hconst char *pin}(hj=1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj91ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj51ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hjT1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjP1hMhjQ1ubah}(h]h ]h"]h$]h&]uh1jhj51ubeh}(h]h ]h"]h$]h&]uh1jhjP1hMhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0ubjg)}(h**Description**h]j)}(hjv1h]h Description}(hjx1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt1ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0ubjg)}(h1Get audio pin status - connected or disconnected.h]h1Get audio pin status - connected or disconnected.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0ubjg)}(h$Returns 1 for connected otherwise 0.h]h$Returns 1 for connected otherwise 0.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_dapm_ignore_suspend (C function)c.snd_soc_dapm_ignore_suspendhNtauh1hhjhhhNhNubh)}(hhh](h)}(hTint snd_soc_dapm_ignore_suspend (struct snd_soc_dapm_context *dapm, const char *pin)h]h)}(hSint snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm, const char *pin)h](h)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj1hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1hhhj1hMubj)}(hsnd_soc_dapm_ignore_suspendh]j%)}(hsnd_soc_dapm_ignore_suspendh]hsnd_soc_dapm_ignore_suspend}(hj1hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj1ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj1hhhj1hMubj@)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj%2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'2modnameN classnameNjj)}j]j)}jj1sbc.snd_soc_dapm_ignore_suspendasbuh1hhj2ubj)}(h h]h }(hjE2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(hjh]h*}(hjS2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj%)}(hdapmh]hdapm}(hj`2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubjF)}(hconst char *pinh](jL)}(hj\h]hconst}(hjy2hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhju2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hju2ubh)}(hcharh]hchar}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhju2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hju2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju2ubj%)}(hpinh]hpin}(hj2hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hju2ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj1ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj1hhhj1hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj1hhhj1hMubah}(h]j1ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj1hMhj1hhubjb)}(hhh]jg)}(h'ignore suspend status for DAPM endpointh]h'ignore suspend status for DAPM endpoint}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2hhubah}(h]h ]h"]h$]h&]uh1jahj1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjhNhNubj)}(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 3h]h Parameters}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj3ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj(3h]h!struct snd_soc_dapm_context *dapm}(hj*3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&3ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj"3ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hjA3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj=3hMhj>3ubah}(h]h ]h"]h$]h&]uh1jhj"3ubeh}(h]h ]h"]h$]h&]uh1jhj=3hMhj3ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hja3h]hconst char *pin}(hjc3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_3ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj[3ubj)}(hhh]jg)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hjz3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjv3hMhjw3ubah}(h]h ]h"]h$]h&]uh1jhj[3ubeh}(h]h ]h"]h$]h&]uh1jhjv3hMhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3ubjg)}(h**Description**h]j)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj3ubjg)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_dapm_free (C function)c.snd_soc_dapm_freehNtauh1hhjhhhNhNubh)}(hhh](h)}(h:void snd_soc_dapm_free (struct snd_soc_dapm_context *dapm)h]h)}(h9void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm)h](h)}(hvoidh]hvoid}(hj3hhhNhNubah}(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 }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj3hhhj3hMubj)}(hsnd_soc_dapm_freeh]j%)}(hsnd_soc_dapm_freeh]hsnd_soc_dapm_free}(hj4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj3ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj3hhhj3hMubj@)}(h#(struct snd_soc_dapm_context *dapm)h]jF)}(h!struct snd_soc_dapm_context *dapmh](jL)}(hjOh]hstruct}(hj4hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj4ubj)}(h h]h }(hj+4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubh)}(hhh]j%)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj<4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj94ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj>4modnameN classnameNjj)}j]j)}jj4sbc.snd_soc_dapm_freeasbuh1hhj4ubj)}(h h]h }(hj\4hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj4ubj)}(hjh]h*}(hjj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj%)}(hdapmh]hdapm}(hjw4hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj4ubah}(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)}(hfree dapm resourcesh]hfree dapm resources}(hj4hhhNhNubah}(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&]uh1jahj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhjhNhNubj)}(h{**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Free all dapm widgets and resources.h](jg)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4ubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj4h]h!struct snd_soc_dapm_context *dapm}(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:109: ./sound/soc/soc-dapm.chMhj4ubj)}(hhh]jg)}(h DAPM contexth]h DAPM context}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubjg)}(h**Description**h]j)}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4ubjg)}(h$Free all dapm widgets and resources.h]h$Free all dapm widgets and resources.}(hj35hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] asoc-dapm-apiah ]h"] asoc dapm apiah$]h&]uh1hhjsphhhhhKlubh)}(hhh](h)}(hASoC DMA Engine APIh]hASoC DMA Engine API}(hjT5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ5hhhhhKpubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_dmaengine_pcm_prepare_slave_config (C function)(c.snd_dmaengine_pcm_prepare_slave_confighNtauh1hhjQ5hhhNhNubh)}(hhh](h)}(hint snd_dmaengine_pcm_prepare_slave_config (struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h]h)}(hint snd_dmaengine_pcm_prepare_slave_config(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](h)}(hinth]hint}(hj{5hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjw5hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw5hhhj5hK&ubj)}(h&snd_dmaengine_pcm_prepare_slave_configh]j%)}(h&snd_dmaengine_pcm_prepare_slave_configh]h&snd_dmaengine_pcm_prepare_slave_config}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjw5hhhj5hK&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}(hj5hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubh)}(hhh]j%)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj5hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jj5sb(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj5ubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj%)}(h substreamh]h substream}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(h struct snd_pcm_hw_params *paramsh](jL)}(hjOh]hstruct}(hj*6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&6ubj)}(h h]h }(hj76hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&6ubh)}(hhh]j%)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjH6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjE6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJ6modnameN classnameNjj)}j]j5(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj&6ubj)}(h h]h }(hjf6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&6ubj)}(hjh]h*}(hjt6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&6ubj%)}(hparamsh]hparams}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubjF)}(h%struct dma_slave_config *slave_configh](jL)}(hjOh]hstruct}(hj6hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubh)}(hhh]j%)}(hdma_slave_configh]hdma_slave_config}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j5(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj%)}(h slave_configh]h slave_config}(hj6hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj5ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjw5hhhj5hK&ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjs5hhhj5hK&ubah}(h]jn5ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj5hK&hjp5hhubjb)}(hhh]jg)}(h%Generic prepare_slave_config callbackh]h%Generic prepare_slave_config callback}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&hj7hhubah}(h]h ]h"]h$]h&]uh1jahjp5hhhj5hK&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj37jj37jjjuh1hhhhjQ5hNhNubj)}(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=7h]h Parameters}(hj?7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;7ubah}(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*hj77ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj\7h]h#struct snd_pcm_substream *substream}(hj^7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ7ubah}(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'hjV7ubj)}(hhh]jg)}(h PCM substreamh]h PCM substream}(hju7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjq7hK'hjr7ubah}(h]h ]h"]h$]h&]uh1jhjV7ubeh}(h]h ]h"]h$]h&]uh1jhjq7hK'hjS7ubj)}(h/``struct snd_pcm_hw_params *params`` hw_params h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hj7h]h struct snd_pcm_hw_params *params}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(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(hj7ubj)}(hhh]jg)}(h hw_paramsh]h hw_params}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hK(hj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hK(hjS7ubj)}(hF``struct dma_slave_config *slave_config`` DMA slave config to prepare h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj7h]h%struct dma_slave_config *slave_config}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(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)hj7ubj)}(hhh]jg)}(hDMA slave config to prepareh]hDMA slave config to prepare}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj7hK)hj7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7hK)hjS7ubeh}(h]h ]h"]h$]h&]uh1jhj77ubjg)}(h**Description**h]j)}(hj 8h]h Description}(hj 8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK+hj77ubjg)}(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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hj77ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ5hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_dmaengine_pcm_register (C function)c.snd_dmaengine_pcm_registerhNtauh1hhjQ5hhhNhNubh)}(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}(hjN8hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjJ8hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj)}(h h]h }(hj]8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJ8hhhj\8hMubj)}(hsnd_dmaengine_pcm_registerh]j%)}(hsnd_dmaengine_pcm_registerh]hsnd_dmaengine_pcm_register}(hjo8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjk8ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjJ8hhhj\8hMubj@)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jjq8sbc.snd_dmaengine_pcm_registerasbuh1hhj8ubj)}(h h]h }(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hdevh]hdev}(hj8hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(h-const struct snd_dmaengine_pcm_config *configh](jL)}(hj\h]hconst}(hj8hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj 9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubjL)}(hjOh]hstruct}(hj9hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj8ubj)}(h h]h }(hj%9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubh)}(hhh]j%)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hj69hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj39ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj89modnameN classnameNjj)}j]j8c.snd_dmaengine_pcm_registerasbuh1hhj8ubj)}(h h]h }(hjT9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8ubj)}(hjh]h*}(hjb9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj%)}(hconfigh]hconfig}(hjo9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj8ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubjF)}(hunsigned int flagsh](h)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubh)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj9ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9ubj%)}(hflagsh]hflags}(hj9hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj9ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj8ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjJ8hhhj\8hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjF8hhhj\8hMubah}(h]jA8ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj\8hMhjC8hhubjb)}(hhh]jg)}(h%Register a dmaengine based PCM deviceh]h%Register a dmaengine based PCM device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj9hhubah}(h]h ]h"]h$]h&]uh1jahjC8hhhj\8hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1hhhhjQ5hNhNubj)}(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}(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)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjd:h]h-const struct snd_dmaengine_pcm_config *config}(hjf:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb: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}(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)}(h/``unsigned int flags`` Platform specific quirksh](j)}(h``unsigned int flags``h]j)}(hj:h]hunsigned int flags}(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)}(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&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj":ubeh}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ5hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_dmaengine_pcm_unregister (C function)c.snd_dmaengine_pcm_unregisterhNtauh1hhjQ5hhhNhNubh)}(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}(hj4;hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj0;ubj)}(h h]h }(hjA;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0;ubh)}(hhh]j%)}(hdeviceh]hdevice}(hjR;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjO;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjT;modnameN classnameNjj)}j]j)}jj;sbc.snd_dmaengine_pcm_unregisterasbuh1hhj0;ubj)}(h h]h }(hjr;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj0;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0;ubj%)}(hdevh]hdev}(hj;hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj0;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$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;jjjuh1hhhhjQ5hNhNubj)}(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)}(hj3<h]h Description}(hj5<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1<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.}(hjI<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;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ5hhhNhNubeh}(h]asoc-dma-engine-apiah ]h"]asoc dma engine apiah$]h&]uh1hhjsphhhhhKpubeh}(h]asocah ]h"]asocah$]h&]uh1hhhhhhhhK_ubh)}(hhh](h)}(hMiscellaneous Functionsh]hMiscellaneous Functions}(hjr<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo<hhhhhKtubh)}(hhh](h)}(hHardware-Dependent Devices APIh]hHardware-Dependent Devices API}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hhhhhKwubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_hwdep_new (C function)c.snd_hwdep_newhNtauh1hhj<hhhNhNubh)}(hhh](h)}(hZint snd_hwdep_new (struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h]h)}(hYint snd_hwdep_new(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](h)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj<hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<hhhj<hM_ubj)}(h snd_hwdep_newh]j%)}(h snd_hwdep_newh]h snd_hwdep_new}(hj<hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj<ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj<hhhj<hM_ubj@)}(hH(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hj<hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jj<sbc.snd_hwdep_newasbuh1hhj<ubj)}(h h]h }(hj%=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<ubj)}(hjh]h*}(hj3=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)}(hchar *idh](h)}(hcharh]hchar}(hjY=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjU=ubj)}(h h]h }(hjg=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjU=ubj)}(hjh]h*}(hju=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU=ubj%)}(hidh]hid}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjU=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(h int deviceh](h)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj%)}(hdeviceh]hdevice}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj<ubjF)}(hstruct snd_hwdep **rhwdeph](jL)}(hjOh]hstruct}(hj=hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubh)}(hhh]j%)}(h snd_hwdeph]h snd_hwdep}(hj=hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j!=c.snd_hwdep_newasbuh1hhj=ubj)}(h h]h }(hj >hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj)}(hjh]h*}(hj'>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj%)}(hrhwdeph]hrhwdep}(hj4>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)}(hcreate a new hwdep instanceh]hcreate a new hwdep instance}(hj^>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_hj[>hhubah}(h]h ]h"]h$]h&]uh1jahj<hhhj<hM_ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjv>jjv>jjjuh1hhhhj<hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``char *id`` the id string ``int device`` the device index (zero-based) ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance **Description** Creates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~>ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjz>ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj>h]hstruct snd_card *card}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM`hj>ubj)}(hhh]jg)}(hthe card instanceh]hthe card instance}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hM`hj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hM`hj>ubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hj>h]hchar *id}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMahj>ubj)}(hhh]jg)}(h the id stringh]h the id string}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>hMahj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMahj>ubj)}(h-``int device`` the device index (zero-based) h](j)}(h``int device``h]j)}(hj?h]h int device}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMbhj ?ubj)}(hhh]jg)}(hthe device index (zero-based)h]hthe device index (zero-based)}(hj*?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj&?hMbhj'?ubah}(h]h ]h"]h$]h&]uh1jhj ?ubeh}(h]h ]h"]h$]h&]uh1jhj&?hMbhj>ubj)}(hJ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance h](j)}(h``struct snd_hwdep **rhwdep``h]j)}(hjJ?h]hstruct snd_hwdep **rhwdep}(hjL?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH?ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjD?ubj)}(hhh]jg)}(h+the pointer to store the new hwdep instanceh]h+the pointer to store the new hwdep instance}(hjc?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_?hMchj`?ubah}(h]h ]h"]h$]h&]uh1jhjD?ubeh}(h]h ]h"]h$]h&]uh1jhj_?hMchj>ubeh}(h]h ]h"]h$]h&]uh1jhjz>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:120: ./sound/core/hwdep.chMehjz>ubjg)}(hCreates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller.h]hCreates a new hwdep instance with the given index on the card. The callbacks (hwdep->ops) must be set on the returned instance after this call manually by the caller.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMdhjz>ubjg)}(h **Return**h]j)}(hj?h]hReturn}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMhhjz>ubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihjz>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj<hhhNhNubeh}(h]hardware-dependent-devices-apiah ]h"]hardware-dependent devices apiah$]h&]uh1hhjo<hhhhhKwubh)}(hhh](h)}(hJack Abstraction Layer APIh]hJack Abstraction Layer API}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhK{ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_types (C enum)c.snd_jack_typeshNtauh1hhj?hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhNubh)}(hhh](h)}(hsnd_jack_typesh]h)}(henum snd_jack_typesh](jL)}(hj(h]henum}(hj @hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@hhhj@hKubj)}(hsnd_jack_typesh]j%)}(hj@h]hsnd_jack_types}(hj+@hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj'@ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj@hhhj@hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj@hhhj@hKubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj@hKhj@hhubjb)}(hhh]jg)}(h Jack types which can be reportedh]h Jack types which can be reported}(hjM@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhjJ@hhubah}(h]h ]h"]h$]h&]uh1jahj@hhhj@hKubeh}(h]h ](jenumeh"]h$]h&]jjjje@jje@jjjuh1hhhhj?hj?hNubj)}(hX**Constants** ``SND_JACK_HEADPHONE`` Headphone ``SND_JACK_MICROPHONE`` Microphone ``SND_JACK_HEADSET`` Headset ``SND_JACK_LINEOUT`` Line out ``SND_JACK_MECHANICAL`` Mechanical switch ``SND_JACK_VIDEOOUT`` Video out ``SND_JACK_AVOUT`` AV (Audio Video) out ``SND_JACK_LINEIN`` Line in ``SND_JACK_USB`` USB audio device ``SND_JACK_BTN_0`` Button 0 ``SND_JACK_BTN_1`` Button 1 ``SND_JACK_BTN_2`` Button 2 ``SND_JACK_BTN_3`` Button 3 ``SND_JACK_BTN_4`` Button 4 ``SND_JACK_BTN_5`` Button 5h](jg)}(h **Constants**h]j)}(hjo@h]h Constants}(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:124: ./include/sound/jack.hhKhji@ubj)}(hhh](j)}(h!``SND_JACK_HEADPHONE`` Headphone h](j)}(h``SND_JACK_HEADPHONE``h]j)}(hj@h]hSND_JACK_HEADPHONE}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj@ubj)}(hhh]jg)}(h Headphoneh]h Headphone}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhj@ubj)}(h#``SND_JACK_MICROPHONE`` Microphone h](j)}(h``SND_JACK_MICROPHONE``h]j)}(hj@h]hSND_JACK_MICROPHONE}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj@ubj)}(hhh]jg)}(h Microphoneh]h Microphone}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhj@ubj)}(h``SND_JACK_HEADSET`` Headset h](j)}(h``SND_JACK_HEADSET``h]j)}(hjAh]hSND_JACK_HEADSET}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj@ubj)}(hhh]jg)}(hHeadseth]hHeadset}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhKhjAubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhj@ubj)}(h``SND_JACK_LINEOUT`` Line out h](j)}(h``SND_JACK_LINEOUT``h]j)}(hj9Ah]hSND_JACK_LINEOUT}(hj;AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Aubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hj3Aubj)}(hhh]jg)}(hLine outh]hLine out}(hjRAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNAhK hjOAubah}(h]h ]h"]h$]h&]uh1jhj3Aubeh}(h]h ]h"]h$]h&]uh1jhjNAhK hj@ubj)}(h*``SND_JACK_MECHANICAL`` Mechanical switch h](j)}(h``SND_JACK_MECHANICAL``h]j)}(hjrAh]hSND_JACK_MECHANICAL}(hjtAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK#hjlAubj)}(hhh]jg)}(hMechanical switchh]hMechanical switch}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK#hjAubah}(h]h ]h"]h$]h&]uh1jhjlAubeh}(h]h ]h"]h$]h&]uh1jhjAhK#hj@ubj)}(h ``SND_JACK_VIDEOOUT`` Video out h](j)}(h``SND_JACK_VIDEOOUT``h]j)}(hjAh]hSND_JACK_VIDEOOUT}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK&hjAubj)}(hhh]jg)}(h Video outh]h Video out}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK&hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK&hj@ubj)}(h(``SND_JACK_AVOUT`` AV (Audio Video) out h](j)}(h``SND_JACK_AVOUT``h]j)}(hjAh]hSND_JACK_AVOUT}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK)hjAubj)}(hhh]jg)}(hAV (Audio Video) outh]hAV (Audio Video) out}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjAhK)hjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhK)hj@ubj)}(h``SND_JACK_LINEIN`` Line in h](j)}(h``SND_JACK_LINEIN``h]j)}(hjBh]hSND_JACK_LINEIN}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK,hjBubj)}(hhh]jg)}(hLine inh]hLine in}(hj6BhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2BhK,hj3Bubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj2BhK,hj@ubj)}(h"``SND_JACK_USB`` USB audio device h](j)}(h``SND_JACK_USB``h]j)}(hjVBh]h SND_JACK_USB}(hjXBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTBubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK/hjPBubj)}(hhh]jg)}(hUSB audio deviceh]hUSB audio device}(hjoBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkBhK/hjlBubah}(h]h ]h"]h$]h&]uh1jhjPBubeh}(h]h ]h"]h$]h&]uh1jhjkBhK/hj@ubj)}(h``SND_JACK_BTN_0`` Button 0 h](j)}(h``SND_JACK_BTN_0``h]j)}(hjBh]hSND_JACK_BTN_0}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK2hjBubj)}(hhh]jg)}(hButton 0h]hButton 0}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhK2hjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhK2hj@ubj)}(h``SND_JACK_BTN_1`` Button 1 h](j)}(h``SND_JACK_BTN_1``h]j)}(hjBh]hSND_JACK_BTN_1}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK5hjBubj)}(hhh]jg)}(hButton 1h]hButton 1}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjBhK5hjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhK5hj@ubj)}(h``SND_JACK_BTN_2`` Button 2 h](j)}(h``SND_JACK_BTN_2``h]j)}(hjCh]hSND_JACK_BTN_2}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK8hjBubj)}(hhh]jg)}(hButton 2h]hButton 2}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChK8hjCubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjChK8hj@ubj)}(h``SND_JACK_BTN_3`` Button 3 h](j)}(h``SND_JACK_BTN_3``h]j)}(hj:Ch]hSND_JACK_BTN_3}(hjhjmCubj)}(hhh]jg)}(hButton 4h]hButton 4}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjChK>hjCubah}(h]h ]h"]h$]h&]uh1jhjmCubeh}(h]h ]h"]h$]h&]uh1jhjChK>hj@ubj)}(h``SND_JACK_BTN_5`` Button 5h](j)}(h``SND_JACK_BTN_5``h]j)}(hjCh]hSND_JACK_BTN_5}(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:124: ./include/sound/jack.hhK@hjCubj)}(hhh]jg)}(hButton 5h]hButton 5}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKAhjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChK@hj@ubeh}(h]h ]h"]h$]h&]uh1jhji@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhj?hNubjg)}(h**Description**h]j)}(hjCh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKChj?hhubjg)}(h#These values are used as a bitmask.h]h#These values are used as a bitmask.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hj?hhubjg)}(hONote that this must be kept in sync with the lookup table in sound/core/jack.c.h]hONote that this must be kept in sync with the lookup table in sound/core/jack.c.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK"hj?hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_jack_add_new_kctl (C function)c.snd_jack_add_new_kctlhNtauh1hhj?hhhNhNubh)}(hhh](h)}(hNint snd_jack_add_new_kctl (struct snd_jack *jack, const char * name, int mask)h]h)}(hLint snd_jack_add_new_kctl(struct snd_jack *jack, const char *name, int mask)h](h)}(hinth]hint}(hjuh1jhj8DhhhjJDhMubj@)}(h3(struct snd_jack *jack, const char *name, int mask)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjyDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjuDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuDubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jj_Dsbc.snd_jack_add_new_kctlasbuh1hhjuDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjuDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuDubj%)}(hjackh]hjack}(hjDhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqDubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjDhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubh)}(hcharh]hchar}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDubj)}(h h]h }(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(hjh]h*}(hj"EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj%)}(hnameh]hname}(hj/EhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqDubjF)}(hint maskh](h)}(hinth]hint}(hjHEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjDEubj)}(h h]h }(hjVEhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDEubj%)}(hmaskh]hmask}(hjdEhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjDEubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjqDubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj8DhhhjJDhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj4DhhhjJDhMubah}(h]j/Dah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjJDhMhj1Dhhubjb)}(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}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEhhubah}(h]h ]h"]h$]h&]uh1jahj1DhhhjJDhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_jack *jack`` the jack instance which the kctl will attaching to ``const char * name`` the name for the snd_kcontrol object ``int mask`` a bitmask of enum snd_jack_type values that can be detected by this snd_jack_kctl object. **Description** Creates a new snd_kcontrol object and adds it to the jack kctl_list. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubj)}(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)}(hjEh]hstruct snd_jack *jack}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubj)}(hhh]jg)}(h2the jack instance which the kctl will attaching toh]h2the jack instance which the kctl will attaching to}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEhMhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjEubj)}(h;``const char * name`` the name for the snd_kcontrol object h](j)}(h``const char * name``h]j)}(hjFh]hconst char * name}(hj FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjFubj)}(hhh]jg)}(h$the name for the snd_kcontrol objecth]h$the name for the snd_kcontrol object}(hj!FhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjFhMhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjEubj)}(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)}(hjAFh]hint mask}(hjCFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?Fubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj;Fubj)}(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.}(hjZFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjWFubah}(h]h ]h"]h$]h&]uh1jhj;Fubeh}(h]h ]h"]h$]h&]uh1jhjVFhMhjEubeh}(h]h ]h"]h$]h&]uh1jhjEubjg)}(h**Description**h]j)}(hj}Fh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Fubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubjg)}(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.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubjg)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_new (C function)c.snd_jack_newhNtauh1hhj?hhhNhNubh)}(hhh](h)}(hint snd_jack_new (struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h]h)}(hint snd_jack_new(struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h](h)}(hinth]hint}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj)}(h h]h }(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFhhhjFhMubj)}(h snd_jack_newh]j%)}(h snd_jack_newh]h snd_jack_new}(hj GhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjFhhhjFhMubj@)}(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&GhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj"Gubj)}(h h]h }(hj3GhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"Gubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjDGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjAGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFGmodnameN classnameNjj)}j]j)}jj Gsbc.snd_jack_newasbuh1hhj"Gubj)}(h h]h }(hjdGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"Gubj)}(hjh]h*}(hjrGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"Gubj%)}(hcardh]hcard}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj"Gubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hconst char *idh](jL)}(hj\h]hconst}(hjGhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjGubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubh)}(hcharh]hchar}(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%)}(hidh]hid}(hjGhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hint typeh](h)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjGubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjGubj%)}(htypeh]htype}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjGubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hstruct snd_jack **jjackh](jL)}(hjOh]hstruct}(hj*HhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj&Hubj)}(h h]h }(hj7HhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&Hubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjHHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjEHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJHmodnameN classnameNjj)}j]j`Gc.snd_jack_newasbuh1hhj&Hubj)}(h h]h }(hjfHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&Hubj)}(hjh]h*}(hjtHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&Hubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&Hubj%)}(hjjackh]hjjack}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj&Hubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hbool initial_kctlh](h)}(hj̖h]hbool}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(h initial_kctlh]h initial_kctl}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubjF)}(hbool phantom_jackh](h)}(hj̖h]hbool}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHubj)}(h h]h }(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHubj%)}(h phantom_jackh]h phantom_jack}(hjHhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjHubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjGubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjFhhhjFhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjFhhhjFhMubah}(h]jFah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFhMhjFhhubjb)}(hhh]jg)}(hCreate a new jackh]hCreate a new jack}(hj IhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjIhhubah}(h]h ]h"]h$]h&]uh1jahjFhhhjFhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8Ijj8Ijjjuh1hhhhj?hNhNubj)}(hX`**Parameters** ``struct snd_card *card`` the card instance ``const char *id`` an identifying string for this jack ``int type`` a bitmask of enum snd_jack_type values that can be detected by this jack ``struct snd_jack **jjack`` Used to provide the allocated jack object to the caller. ``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. ``bool phantom_jack`` Don't create a input device for phantom jacks. **Description** Creates a new jack object. **Return** Zero if successful, or a negative error code on failure. On success **jjack** will be initialised.h](jg)}(h**Parameters**h]j)}(hjBIh]h Parameters}(hjDIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Iubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjuh1jhj4KhhhjFKhMDubj@)}(h>(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjuKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjqKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqKubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jj[Ksbc.snd_jack_set_keyasbuh1hhjqKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqKubj%)}(hjackh]hjack}(hjKhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmKubjF)}(henum snd_jack_types typeh](jL)}(hj(h]henum}(hjKhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubh)}(hhh]j%)}(hsnd_jack_typesh]hsnd_jack_types}(hjLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]jKc.snd_jack_set_keyasbuh1hhjKubj)}(h h]h }(hj#LhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjKubj%)}(htypeh]htype}(hj1LhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjKubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmKubjF)}(h int keytypeh](h)}(hinth]hint}(hjJLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjFLubj)}(h h]h }(hjXLhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFLubj%)}(hkeytypeh]hkeytype}(hjfLhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFLubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjmKubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj4KhhhjFKhMDubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj0KhhhjFKhMDubah}(h]j+Kah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjFKhMDhj-Khhubjb)}(hhh]jg)}(hSet a key mapping on a jackh]hSet a key mapping on a jack}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDhjLhhubah}(h]h ]h"]h$]h&]uh1jahj-KhhhjFKhMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_jack *jack`` The jack to configure ``enum snd_jack_types type`` Jack report type for this key ``int keytype`` Input layer key type to be reported **Description** Map a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported. If jacks are not reporting via the input API this call will have no effect. Note that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction. This function may only be called prior to registration of the jack. **Return** Zero if successful, or a negative error code on failure.h](jg)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjLubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure h](j)}(h``struct snd_jack *jack``h]j)}(hjLh]hstruct snd_jack *jack}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMFhjLubj)}(hhh]jg)}(hThe jack to configureh]hThe jack to configure}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjLhMFhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMFhjLubj)}(h;``enum snd_jack_types type`` Jack report type for this key h](j)}(h``enum snd_jack_types type``h]j)}(hj Mh]henum snd_jack_types type}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMGhjMubj)}(hhh]jg)}(hJack report type for this keyh]hJack report type for this key}(hj#MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjMhMGhj Mubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMGhjLubj)}(h4``int keytype`` Input layer key type to be reported h](j)}(h``int keytype``h]j)}(hjCMh]h int keytype}(hjEMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAMubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhj=Mubj)}(hhh]jg)}(h#Input layer key type to be reportedh]h#Input layer key type to be reported}(hj\MhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXMhMHhjYMubah}(h]h ]h"]h$]h&]uh1jhj=Mubeh}(h]h ]h"]h$]h&]uh1jhjXMhMHhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubjg)}(h**Description**h]j)}(hj~Mh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Mubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMJhjLubjg)}(hMap a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported.h]hMap a SND_JACK_BTN_* button type to an input layer key, allowing reporting of keys on accessories via the jack abstraction. If no mapping is provided but keys are enabled in the jack type then BTN_n numeric buttons will be reported.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMIhjLubjg)}(hKIf jacks are not reporting via the input API this call will have no effect.h]hKIf jacks are not reporting via the input API this call will have no effect.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMNhjLubjg)}(hXNote that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction.h]hXNote that this is intended to be use by simple devices with small numbers of keys that can be reported. It is also possible to access the input device directly - devices with complex input capabilities on accessories should consider doing this rather than using this abstraction.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMQhjLubjg)}(hCThis function may only be called prior to registration of the jack.h]hCThis function may only be called prior to registration of the jack.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMWhjLubjg)}(h **Return**h]j)}(hjMh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMYhjLubjg)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMZhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_report (C function)c.snd_jack_reporthNtauh1hhj?hhhNhNubh)}(hhh](h)}(h8void snd_jack_report (struct snd_jack *jack, int status)h]h)}(h7void snd_jack_report(struct snd_jack *jack, int status)h](h)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnubj)}(h h]h }(hj&NhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNhhhj%NhMnubj)}(hsnd_jack_reporth]j%)}(hsnd_jack_reporth]hsnd_jack_report}(hj8NhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj4Nubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjNhhhj%NhMnubj@)}(h#(struct snd_jack *jack, int status)h](jF)}(hstruct snd_jack *jackh](jL)}(hjOh]hstruct}(hjTNhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjPNubj)}(h h]h }(hjaNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPNubh)}(hhh]j%)}(hsnd_jackh]hsnd_jack}(hjrNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtNmodnameN classnameNjj)}j]j)}jj:Nsbc.snd_jack_reportasbuh1hhjPNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPNubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPNubj%)}(hjackh]hjack}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLNubjF)}(h int statush](h)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjNubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj%)}(hstatush]hstatus}(hjNhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjLNubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjNhhhj%NhMnubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjNhhhj%NhMnubah}(h]j Nah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj%NhMnhj Nhhubjb)}(hhh]jg)}(h#Report the current status of a jackh]h#Report the current status of a jack}(hj OhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnhj Ohhubah}(h]h ]h"]h$]h&]uh1jahj Nhhhj%NhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$Ojj$Ojjjuh1hhhhj?hNhNubj)}(h**Parameters** ``struct snd_jack *jack`` The jack to report status for ``int status`` The current status of the jack **Note** This function uses mutexes and should be called from a context which can sleep (such as a workqueue).h](jg)}(h**Parameters**h]j)}(hj.Oh]h Parameters}(hj0OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Oubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhj(Oubj)}(hhh](j)}(h8``struct snd_jack *jack`` The jack to report status for h](j)}(h``struct snd_jack *jack``h]j)}(hjMOh]hstruct snd_jack *jack}(hjOOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKOubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjGOubj)}(hhh]jg)}(hThe jack to report status forh]hThe jack to report status for}(hjfOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbOhMrhjcOubah}(h]h ]h"]h$]h&]uh1jhjGOubeh}(h]h ]h"]h$]h&]uh1jhjbOhMrhjDOubj)}(h.``int status`` The current status of the jack h](j)}(h``int status``h]j)}(hjOh]h int status}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMshjOubj)}(hhh]jg)}(hThe current status of the jackh]hThe current status of the jack}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjOhMshjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMshjDOubeh}(h]h ]h"]h$]h&]uh1jhj(Oubjg)}(h**Note**h]j)}(hjOh]hNote}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMuhj(Oubjg)}(heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).h]heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMohj(Oubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_soc_jack_report (C function)c.snd_soc_jack_reporthNtauh1hhj?hhhNhNubh)}(hhh](h)}(hJvoid snd_soc_jack_report (struct snd_soc_jack *jack, int status, int mask)h]h)}(hIvoid snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)h](h)}(hvoidh]hvoid}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPhhhjPhKubj)}(hsnd_soc_jack_reporth]j%)}(hsnd_soc_jack_reporth]hsnd_soc_jack_report}(hj'PhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj#Pubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjPhhhjPhKubj@)}(h1(struct snd_soc_jack *jack, int status, int mask)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjCPhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj?Pubj)}(h h]h }(hjPPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?Pubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjaPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^Pubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcPmodnameN classnameNjj)}j]j)}jj)Psbc.snd_soc_jack_reportasbuh1hhj?Pubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj?Pubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?Pubj%)}(hjackh]hjack}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?Pubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;PubjF)}(h int statush](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hstatush]hstatus}(hjPhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;PubjF)}(hint maskh](h)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj%)}(hmaskh]hmask}(hjQhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjPubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj;Pubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjPhhhjPhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjOhhhjPhKubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjPhKhjOhhubjb)}(hhh]jg)}(h$Report the current status for a jackh]h$Report the current status for a jack}(hj0QhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj-Qhhubah}(h]h ]h"]h$]h&]uh1jahjOhhhjPhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHQjjHQjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` the jack ``int status`` a bitmask of enum snd_jack_type values that are currently detected. ``int mask`` a bitmask of enum snd_jack_type values that being reported. **Description** If configured using snd_soc_jack_add_pins() then the associated DAPM pins will be enabled or disabled as appropriate and DAPM synchronised. **Note** This function uses mutexes and should be called from a context which can sleep (such as a workqueue).h](jg)}(h**Parameters**h]j)}(hjRQh]h Parameters}(hjTQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPQubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjLQubj)}(hhh](j)}(h'``struct snd_soc_jack *jack`` the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjqQh]hstruct snd_soc_jack *jack}(hjsQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjkQubj)}(hhh]jg)}(hthe jackh]hthe jack}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjkQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjhQubj)}(hS``int status`` a bitmask of enum snd_jack_type values that are currently detected. h](j)}(h``int status``h]j)}(hjQh]h int status}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQubj)}(hhh]jg)}(hCa bitmask of enum snd_jack_type values that are currently detected.h]hCa bitmask of enum snd_jack_type values that are currently detected.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjhQubj)}(hI``int mask`` a bitmask of enum snd_jack_type values that being reported. h](j)}(h ``int mask``h]j)}(hjQh]hint mask}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjQubj)}(hhh]jg)}(h;a bitmask of enum snd_jack_type values that being reported.h]h;a bitmask of enum snd_jack_type values that being reported.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjhQubeh}(h]h ]h"]h$]h&]uh1jhjLQubjg)}(h**Description**h]j)}(hjRh]h Description}(hj RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjLQubjg)}(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.}(hj4RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjLQubjg)}(h**Note**h]j)}(hjERh]hNote}(hjGRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCRubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjLQubjg)}(heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).h]heThis function uses mutexes and should be called from a context which can sleep (such as a workqueue).}(hj[RhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjLQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_zones (C function)c.snd_soc_jack_add_zoneshNtauh1hhj?hhhNhNubh)}(hhh](h)}(hbint snd_soc_jack_add_zones (struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h]h)}(haint snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](h)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjRhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRhhhjRhKPubj)}(hsnd_soc_jack_add_zonesh]j%)}(hsnd_soc_jack_add_zonesh]hsnd_soc_jack_add_zones}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjRhhhjRhKPubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjRhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjRhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]j)}jjRsbc.snd_soc_jack_add_zonesasbuh1hhjRubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjRubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj%)}(hjackh]hjack}(hj ShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjRubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(h int counth](h)}(hinth]hint}(hj9ShhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj5Subj)}(h h]h }(hjGShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj5Subj%)}(hcounth]hcount}(hjUShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj5Subeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubjF)}(hstruct snd_soc_jack_zone *zonesh](jL)}(hjOh]hstruct}(hjnShhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjSubj)}(h h]h }(hj{ShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjSubh)}(hhh]j%)}(hsnd_soc_jack_zoneh]hsnd_soc_jack_zone}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jSc.snd_soc_jack_add_zonesasbuh1hhjjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjSubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjSubj%)}(hzonesh]hzones}(hjShhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjSubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjRubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjRhhhjRhKPubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjRhhhjRhKPubah}(h]j}Rah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjRhKPhjRhhubjb)}(hhh]jg)}(h!Associate voltage zones with jackh]h!Associate voltage zones with jack}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPhjShhubah}(h]h ]h"]h$]h&]uh1jahjRhhhjRhKPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhj?hNhNubj)}(hX **Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` Number of zones ``struct snd_soc_jack_zone *zones`` Array of zones **Description** After this function has been called the zones specified in the array will be associated with the jack.h](jg)}(h**Parameters**h]j)}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThj Tubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj0Th]hstruct snd_soc_jack *jack}(hj2ThhhNhNubah}(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:126: ./sound/soc/soc-jack.chKRhj*Tubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjIThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjEThKRhjFTubah}(h]h ]h"]h$]h&]uh1jhj*Tubeh}(h]h ]h"]h$]h&]uh1jhjEThKRhj'Tubj)}(h``int count`` Number of zones h](j)}(h ``int count``h]j)}(hjiTh]h int count}(hjkThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKShjcTubj)}(hhh]jg)}(hNumber of zonesh]hNumber of zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~ThKShjTubah}(h]h ]h"]h$]h&]uh1jhjcTubeh}(h]h ]h"]h$]h&]uh1jhj~ThKShj'Tubj)}(h3``struct snd_soc_jack_zone *zones`` Array of zones h](j)}(h#``struct snd_soc_jack_zone *zones``h]j)}(hjTh]hstruct snd_soc_jack_zone *zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjTubj)}(hhh]jg)}(hArray of zonesh]hArray of zones}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjThKThjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKThj'Tubeh}(h]h ]h"]h$]h&]uh1jhj Tubjg)}(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.chKVhj Tubjg)}(hfAfter this function has been called the zones specified in the array will be associated with the jack.h]hfAfter this function has been called the zones specified in the array will be associated with the jack.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKUhj Tubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_get_type (C function)c.snd_soc_jack_get_typehNtauh1hhj?hhhNhNubh)}(hhh](h)}(hJint snd_soc_jack_get_type (struct snd_soc_jack *jack, int micbias_voltage)h]h)}(hIint snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage)h](h)}(hinth]hint}(hj"UhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKgubj)}(h h]h }(hj1UhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUhhhj0UhKgubj)}(hsnd_soc_jack_get_typeh]j%)}(hsnd_soc_jack_get_typeh]hsnd_soc_jack_get_type}(hjCUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj?Uubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjUhhhj0UhKgubj@)}(h0(struct snd_soc_jack *jack, int micbias_voltage)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj_UhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj[Uubj)}(h h]h }(hjlUhhhNhNubah}(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$hjzUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjEUsbc.snd_soc_jack_get_typeasbuh1hhj[Uubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[Uubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[Uubj%)}(hjackh]hjack}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[Uubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWUubjF)}(hint micbias_voltageh](h)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjUubj%)}(hmicbias_voltageh]hmicbias_voltage}(hjUhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjUubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjWUubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjUhhhj0UhKgubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjUhhhj0UhKgubah}(h]jUah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj0UhKghjUhhubjb)}(hhh]jg)}(hlBased on the mic bias value, this function returns the type of jack from the zones declared in the jack typeh]hlBased on the mic bias value, this function returns the type of jack from the zones declared in the jack type}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKghjVhhubah}(h]h ]h"]h$]h&]uh1jahjUhhhj0UhKgubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/Vjj/Vjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in **Description** Based on the mic bias value passed, this function helps identify the type of jack from the already declared jack zonesh](jg)}(h**Parameters**h]j)}(hj9Vh]h Parameters}(hj;VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Vubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhj3Vubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjXVh]hstruct snd_soc_jack *jack}(hjZVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKjhjRVubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjqVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmVhKjhjnVubah}(h]h ]h"]h$]h&]uh1jhjRVubeh}(h]h ]h"]h$]h&]uh1jhjmVhKjhjOVubj)}(hP``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in h](j)}(h``int micbias_voltage``h]j)}(hjVh]hint micbias_voltage}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhjVubj)}(hhh]jg)}(h7mic bias voltage at adc channel when jack is plugged inh]h7mic bias voltage at adc channel when jack is plugged in}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjVhKkhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKkhjOVubeh}(h]h ]h"]h$]h&]uh1jhj3Vubjg)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhj3Vubjg)}(hvBased on the mic bias value passed, this function helps identify the type of jack from the already declared jack zonesh]hvBased on the mic bias value passed, this function helps identify the type of jack from the already declared jack zones}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKlhj3Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_add_pins (C function)c.snd_soc_jack_add_pinshNtauh1hhj?hhhNhNubh)}(hhh](h)}(h_int snd_soc_jack_add_pins (struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h]h)}(h^int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj Whhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~ubj)}(h h]h }(hj WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj WhhhjWhK~ubj)}(hsnd_soc_jack_add_pinsh]j%)}(hsnd_soc_jack_add_pinsh]hsnd_soc_jack_add_pins}(hj2WhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.Wubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj WhhhjWhK~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}(hjNWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjJWubj)}(h h]h }(hj[WhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJWubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjlWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnWmodnameN classnameNjj)}j]j)}jj4Wsbc.snd_soc_jack_add_pinsasbuh1hhjJWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJWubj%)}(hjackh]hjack}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjJWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFWubjF)}(h int counth](h)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj%)}(hcounth]hcount}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFWubjF)}(hstruct snd_soc_jack_pin *pinsh](jL)}(hjOh]hstruct}(hjWhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjWubj)}(h h]h }(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubh)}(hhh]j%)}(hsnd_soc_jack_pinh]hsnd_soc_jack_pin}(hjXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_soc_jack_add_pinsasbuh1hhjWubj)}(h h]h }(hj1XhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hj?XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hpinsh]hpins}(hjLXhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjFWubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj WhhhjWhK~ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj WhhhjWhK~ubah}(h]jWah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjWhK~hjWhhubjb)}(hhh]jg)}(h%Associate DAPM pins with an ASoC jackh]h%Associate DAPM pins with an ASoC jack}(hjvXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~hjsXhhubah}(h]h ]h"]h$]h&]uh1jahjWhhhjWhK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack created with snd_soc_card_jack_new_pins() ``int count`` Number of pins ``struct snd_soc_jack_pin *pins`` Array of pins **Description** After this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.h](jg)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh](j)}(hR``struct snd_soc_jack *jack`` ASoC jack created with snd_soc_card_jack_new_pins() h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjXh]hstruct snd_soc_jack *jack}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh]jg)}(h3ASoC jack created with snd_soc_card_jack_new_pins()h]h3ASoC jack created with snd_soc_card_jack_new_pins()}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjXhKhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjXubj)}(h``int count`` Number of pins h](j)}(h ``int count``h]j)}(hjXh]h int count}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubj)}(hhh]jg)}(hNumber of pinsh]hNumber of pins}(hj YhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjXubj)}(h0``struct snd_soc_jack_pin *pins`` Array of pins h](j)}(h!``struct snd_soc_jack_pin *pins``h]j)}(hj)Yh]hstruct snd_soc_jack_pin *pins}(hj+YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Yubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Yubj)}(hhh]jg)}(h Array of pinsh]h Array of pins}(hjBYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj>YhKhj?Yubah}(h]h ]h"]h$]h&]uh1jhj#Yubeh}(h]h ]h"]h$]h&]uh1jhj>YhKhjXubeh}(h]h ]h"]h$]h&]uh1jhjXubjg)}(h**Description**h]j)}(hjdYh]h Description}(hjfYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbYubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubjg)}(hAfter this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.h]hAfter this function has been called the DAPM pins specified in the pins array will have their status updated to reflect the current state of the jack whenever the jack status is updated.}(hjzYhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_jack_notifier_register (C function) c.snd_soc_jack_notifier_registerhNtauh1hhj?hhhNhNubh)}(hhh](h)}(hZvoid snd_soc_jack_notifier_register (struct snd_soc_jack *jack, struct notifier_block *nb)h]h)}(hYvoid snd_soc_jack_notifier_register(struct snd_soc_jack *jack, struct notifier_block *nb)h](h)}(hvoidh]hvoid}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjYhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYhhhjYhKubj)}(hsnd_soc_jack_notifier_registerh]j%)}(hsnd_soc_jack_notifier_registerh]hsnd_soc_jack_notifier_register}(hjYhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjYhhhjYhKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjYhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjYubj)}(h h]h }(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j)}jjYsb c.snd_soc_jack_notifier_registerasbuh1hhjYubj)}(h h]h }(hj$ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjYubj)}(hjh]h*}(hj2ZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj%)}(hjackh]hjack}(hj?ZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjYubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hjXZhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjTZubj)}(h h]h }(hjeZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTZubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hjvZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjsZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxZmodnameN classnameNjj)}j]j Z c.snd_soc_jack_notifier_registerasbuh1hhjTZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjTZubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTZubj%)}(hnbh]hnb}(hjZhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjTZubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjYubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjYhhhjYhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjYhhhjYhKubah}(h]jYah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjYhKhjYhhubjb)}(hhh]jg)}(h#Register a notifier for jack statush]h#Register a notifier for jack status}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZhhubah}(h]h ]h"]h$]h&]uh1jahjYhhhjYhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``struct notifier_block *nb`` Notifier block to register **Description** Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.h](jg)}(h**Parameters**h]j)}(hjZh]h Parameters}(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:126: ./sound/soc/soc-jack.chKhjZubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj[h]hstruct snd_soc_jack *jack}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj[ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj3[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj/[hKhj0[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj/[hKhj[ubj)}(h9``struct notifier_block *nb`` Notifier block to register h](j)}(h``struct notifier_block *nb``h]j)}(hjS[h]hstruct notifier_block *nb}(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:126: ./sound/soc/soc-jack.chKhjM[ubj)}(hhh]jg)}(hNotifier block to registerh]hNotifier block to register}(hjl[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjh[hKhji[ubah}(h]h ]h"]h$]h&]uh1jhjM[ubeh}(h]h ]h"]h$]h&]uh1jhjh[hKhj[ubeh}(h]h ]h"]h$]h&]uh1jhjZubjg)}(h**Description**h]j)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubjg)}(hX"Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.h]hX"Register for notification of the current status of the jack. Note that it is not possible to report additional jack events in the callback from the notifier, this is intended to support applications such as enabling electrical detection only when a mechanical detection event has occurred.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_jack_notifier_unregister (C function)"c.snd_soc_jack_notifier_unregisterhNtauh1hhj?hhhNhNubh)}(hhh](h)}(h\void snd_soc_jack_notifier_unregister (struct snd_soc_jack *jack, struct notifier_block *nb)h]h)}(h[void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack, struct notifier_block *nb)h](h)}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj[hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[hhhj[hKubj)}(h snd_soc_jack_notifier_unregisterh]j%)}(h snd_soc_jack_notifier_unregisterh]h snd_soc_jack_notifier_unregister}(hj[hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj[ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj[hhhj[hKubj@)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj \ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj \ubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj.\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj+\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0\modnameN classnameNjj)}j]j)}jj[sb"c.snd_soc_jack_notifier_unregisterasbuh1hhj \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%)}(hjackh]hjack}(hji\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj \ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj\ubjF)}(hstruct notifier_block *nbh](jL)}(hjOh]hstruct}(hj\hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj~\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~\ubh)}(hhh]j%)}(hnotifier_blockh]hnotifier_block}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNjj)}j]jJ\"c.snd_soc_jack_notifier_unregisterasbuh1hhj~\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~\ubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~\ubj%)}(hnbh]hnb}(hj\hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~\ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj\ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj[hhhj[hKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj[hhhj[hKubah}(h]j[ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj[hKhj[hhubjb)}(hhh]jg)}(h%Unregister a notifier for jack statush]h%Unregister a notifier for jack status}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj]hhubah}(h]h ]h"]h$]h&]uh1jahj[hhhj[hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhj?hNhNubj)}(h**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``struct notifier_block *nb`` Notifier block to unregister **Description** Stop notifying for status changes.h](jg)}(h**Parameters**h]j)}(hj%]h]h Parameters}(hj']hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#]ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj]ubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjD]h]hstruct snd_soc_jack *jack}(hjF]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj>]ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj]]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjY]hKhjZ]ubah}(h]h ]h"]h$]h&]uh1jhj>]ubeh}(h]h ]h"]h$]h&]uh1jhjY]hKhj;]ubj)}(h;``struct notifier_block *nb`` Notifier block to unregister h](j)}(h``struct notifier_block *nb``h]j)}(hj}]h]hstruct notifier_block *nb}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjw]ubj)}(hhh]jg)}(hNotifier block to unregisterh]hNotifier block to unregister}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1jhjw]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhj;]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubjg)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj]ubjg)}(h"Stop notifying for status changes.h]h"Stop notifying for status changes.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_gpios (C function)c.snd_soc_jack_add_gpioshNtauh1hhj?hhhNhNubh)}(hhh](h)}(hbint snd_soc_jack_add_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(haint snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj]hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-ubj)}(h h]h }(hj ^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj]hhhj ^hM-ubj)}(hsnd_soc_jack_add_gpiosh]j%)}(hsnd_soc_jack_add_gpiosh]hsnd_soc_jack_add_gpios}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj]hhhj ^hM-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}(hj:^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj6^ubj)}(h h]h }(hjG^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6^ubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjX^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjU^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZ^modnameN classnameNjj)}j]j)}jj ^sbc.snd_soc_jack_add_gpiosasbuh1hhj6^ubj)}(h h]h }(hjx^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj6^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6^ubj%)}(hjackh]hjack}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj6^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2^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>uh1jEhj2^ubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hj^hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hj^hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]jt^c.snd_soc_jack_add_gpiosasbuh1hhj^ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^ubj)}(hjh]h*}(hj+_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj%)}(hgpiosh]hgpios}(hj8_hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj^ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj2^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%Associate GPIO pins with an ASoC jackh]h%Associate GPIO pins with an ASoC jack}(hjb_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-hj__hhubah}(h]h ]h"]h$]h&]uh1jahj]hhhj ^hM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjz_jjz_jjjuh1hhhhj?hNhNubj)}(hX**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** This function will request gpio, set data direction and request irq for each gpio in the array.h](jg)}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hj~_ubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj_h]hstruct snd_soc_jack *jack}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM/hj_ubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hM/hj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hM/hj_ubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hj_h]h int count}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM0hj_ubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj_hM0hj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hM0hj_ubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hj`h]hstruct snd_soc_jack_gpio *gpios}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hj`ubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hj.`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj*`hM1hj+`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj*`hM1hj_ubeh}(h]h ]h"]h$]h&]uh1jhj~_ubjg)}(h**Description**h]j)}(hjP`h]h Description}(hjR`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN`ubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hj~_ubjg)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hjf`hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM2hj~_ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_add_gpiods (C function)c.snd_soc_jack_add_gpiodshNtauh1hhj?hhhNhNubh)}(hhh](h)}(h}int snd_soc_jack_add_gpiods (struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(h|int snd_soc_jack_add_gpiods(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj`hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`hhhj`hMubj)}(hsnd_soc_jack_add_gpiodsh]j%)}(hsnd_soc_jack_add_gpiodsh]hsnd_soc_jack_add_gpiods}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj`hhhj`hMubj@)}(ha(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct device *gpiod_devh](jL)}(hjOh]hstruct}(hj`hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj`ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubh)}(hhh]j%)}(hdeviceh]hdevice}(hj`hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj`sbc.snd_soc_jack_add_gpiodsasbuh1hhj`ubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj`ubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj%)}(h gpiod_devh]h gpiod_dev}(hj+ahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj`ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjDahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj@aubj)}(h h]h }(hjQahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@aubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hjbahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj_aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdamodnameN classnameNjj)}j]j ac.snd_soc_jack_add_gpiodsasbuh1hhj@aubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@aubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@aubj%)}(hjackh]hjack}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj@aubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(h int counth](h)}(hinth]hint}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj%)}(hcounth]hcount}(hjahhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjahhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjbhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj bmodnameN classnameNjj)}j]j ac.snd_soc_jack_add_gpiodsasbuh1hhjaubj)}(h h]h }(hj%bhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjaubj)}(hjh]h*}(hj3bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj%)}(hgpiosh]hgpios}(hj@bhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj`hhhj`hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj`hhhj`hMubah}(h]j`ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj`hMhj`hhubjb)}(hhh]jg)}(h0Associate GPIO descriptor pins with an ASoC jackh]h0Associate GPIO descriptor pins with an ASoC jack}(hjjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjgbhhubah}(h]h ]h"]h$]h&]uh1jahj`hhhj`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhj?hNhNubj)}(hX:**Parameters** ``struct device *gpiod_dev`` GPIO consumer device ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** This function will request gpio, set data direction and request irq for each gpio in the array.h](jg)}(h**Parameters**h]j)}(hjbh]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh](j)}(h2``struct device *gpiod_dev`` GPIO consumer device h](j)}(h``struct device *gpiod_dev``h]j)}(hjbh]hstruct device *gpiod_dev}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh]jg)}(hGPIO consumer deviceh]hGPIO consumer device}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjbubj)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjbh]hstruct snd_soc_jack *jack}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjbhMhjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjbubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjch]h int count}(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:126: ./sound/soc/soc-jack.chMhjcubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hj6chhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj2chMhj3cubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhj2chMhjbubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjVch]hstruct snd_soc_jack_gpio *gpios}(hjXchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTcubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjPcubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hjochhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjkchMhjlcubah}(h]h ]h"]h$]h&]uh1jhjPcubeh}(h]h ]h"]h$]h&]uh1jhjkchMhjbubeh}(h]h ]h"]h$]h&]uh1jhjbubjg)}(h**Description**h]j)}(hjch]h Description}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubjg)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_free_gpios (C function)c.snd_soc_jack_free_gpioshNtauh1hhj?hhhNhNubh)}(hhh](h)}(hdvoid snd_soc_jack_free_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]h)}(hcvoid snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](h)}(hvoidh]hvoid}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjchhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj)}(h h]h }(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjchhhjchMubj)}(hsnd_soc_jack_free_gpiosh]j%)}(hsnd_soc_jack_free_gpiosh]hsnd_soc_jack_free_gpios}(hjchhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjcubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjchhhjchMubj@)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jF)}(hstruct snd_soc_jack *jackh](jL)}(hjOh]hstruct}(hjdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hj dhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(h snd_soc_jackh]h snd_soc_jack}(hj1dhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj.dubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3dmodnameN classnameNjj)}j]j)}jjcsbc.snd_soc_jack_free_gpiosasbuh1hhjdubj)}(h h]h }(hjQdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hj_dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hjackh]hjack}(hjldhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj dubjF)}(h int counth](h)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj%)}(hcounth]hcount}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj dubjF)}(hstruct snd_soc_jack_gpio *gpiosh](jL)}(hjOh]hstruct}(hjdhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubh)}(hhh]j%)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjdhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]jMdc.snd_soc_jack_free_gpiosasbuh1hhjdubj)}(h h]h }(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdubj%)}(hgpiosh]hgpios}(hjehhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj dubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjchhhjchMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjchhhjchMubah}(h]jcah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjchMhjchhubjb)}(hhh]jg)}(h,Release GPIO pins' resources of an ASoC jackh]h.Release GPIO pins’ resources of an ASoC jack}(hj;ehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj8ehhubah}(h]h ]h"]h$]h&]uh1jahjchhhjchMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSejjSejjjuh1hhhhj?hNhNubj)}(h**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``int count`` number of pins ``struct snd_soc_jack_gpio *gpios`` array of gpio pins **Description** Release gpio and irq resources for gpio pins associated with an ASoC jack.h](jg)}(h**Parameters**h]j)}(hj]eh]h Parameters}(hj_ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[eubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjWeubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC 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&]uh1jhjzeubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjveubj)}(hhh]jg)}(h ASoC jackh]h ASoC jack}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjveubeh}(h]h ]h"]h$]h&]uh1jhjehMhjseubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjeh]h int count}(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.chMhjeubj)}(hhh]jg)}(hnumber of pinsh]hnumber of pins}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjseubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjeh]hstruct snd_soc_jack_gpio *gpios}(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.chMhjeubj)}(hhh]jg)}(harray of gpio pinsh]harray of gpio pins}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhMhjseubeh}(h]h ]h"]h$]h&]uh1jhjWeubjg)}(h**Description**h]j)}(hj)fh]h Description}(hj+fhhhNhNubah}(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.chMhjWeubjg)}(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?fhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjWeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj?hhhNhNubeh}(h]jack-abstraction-layer-apiah ]h"]jack abstraction layer apiah$]h&]uh1hhjo<hhhhhK{ubh)}(hhh](h)}(hISA DMA Helpersh]hISA DMA Helpers}(hj`fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]fhhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_program (C function)c.snd_dma_programhNtauh1hhj]fhhhNhNubh)}(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}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfhhhjfhKubj)}(hsnd_dma_programh]j%)}(hsnd_dma_programh]hsnd_dma_program}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjfhhhjfhKubj@)}(hO(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubh)}(hlongh]hlong}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjfubj%)}(hdmah]hdma}(hjfhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjfubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned long addrh](h)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hj#ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hlongh]hlong}(hj1ghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hj?ghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(haddrh]haddr}(hjMghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjfghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbgubj)}(h h]h }(hjtghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbgubh)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjbgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjbgubj%)}(hsizeh]hsize}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjbgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubjF)}(hunsigned short modeh](h)}(hunsignedh]hunsigned}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubh)}(hshorth]hshort}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjgubj)}(h h]h }(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj%)}(hmodeh]hmode}(hjghhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjgubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjfhhhjfhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjfhhhjfhKubah}(h]jzfah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjfhKhj|fhhubjb)}(hhh]jg)}(hprogram an ISA DMA transferh]hprogram an ISA DMA transfer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhhhubah}(h]h ]h"]h$]h&]uh1jahj|fhhhjfhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1hjj1hjjjuh1hhhhj]fhNhNubj)}(hX&**Parameters** ``unsigned long dma`` the dma number ``unsigned long addr`` the physical address of the buffer ``unsigned int size`` the DMA transfer size ``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX **Description** Programs an ISA DMA transfer for the given buffer.h](jg)}(h**Parameters**h]j)}(hj;hh]h Parameters}(hj=hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9hubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj5hubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hjZhh]hunsigned long dma}(hj\hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjThubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjshhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohhKhjphubah}(h]h ]h"]h$]h&]uh1jhjThubeh}(h]h ]h"]h$]h&]uh1jhjohhKhjQhubj)}(h:``unsigned long addr`` the physical address of the buffer h](j)}(h``unsigned long addr``h]j)}(hjhh]hunsigned long addr}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhubj)}(hhh]jg)}(h"the physical address of the bufferh]h"the physical address of the buffer}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjQhubj)}(h,``unsigned int size`` the DMA transfer size h](j)}(h``unsigned int size``h]j)}(hjhh]hunsigned int size}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhubj)}(hhh]jg)}(hthe DMA transfer sizeh]hthe DMA transfer size}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKhjQhubj)}(h<``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX h](j)}(h``unsigned short mode``h]j)}(hjih]hunsigned short mode}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjhubj)}(hhh]jg)}(h#the DMA transfer mode, DMA_MODE_XXXh]h#the DMA transfer mode, DMA_MODE_XXX}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjihKhjiubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjihKhjQhubeh}(h]h ]h"]h$]h&]uh1jhj5hubjg)}(h**Description**h]j)}(hj@ih]h Description}(hjBihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>iubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj5hubjg)}(h2Programs an ISA DMA transfer for the given buffer.h]h2Programs an ISA DMA transfer for the given buffer.}(hjVihhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj5hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]fhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_disable (C function)c.snd_dma_disablehNtauh1hhj]fhhhNhNubh)}(hhh](h)}(h(void snd_dma_disable (unsigned long dma)h]h)}(h'void snd_dma_disable(unsigned long dma)h](h)}(hvoidh]hvoid}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjihhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.ubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjihhhjihK.ubj)}(hsnd_dma_disableh]j%)}(hsnd_dma_disableh]hsnd_dma_disable}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjihhhjihK.ubj@)}(h(unsigned long dma)h]jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubh)}(hlongh]hlong}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjiubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjiubj%)}(hdmah]hdma}(hjihhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjiubah}(h]h ]h"]h$]h&]j=j>uh1j?hjihhhjihK.ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj}ihhhjihK.ubah}(h]jxiah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjihK.hjzihhubjb)}(hhh]jg)}(hstop the ISA DMA transferh]hstop the ISA DMA transfer}(hj$jhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.hj!jhhubah}(h]h ]h"]h$]h&]uh1jahjzihhhjihK.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjuh1jhjjhhhjjhK?ubj@)}(h&(unsigned long dma, unsigned int size)h](jF)}(hunsigned long dmah](h)}(hunsignedh]hunsigned}(hj>khhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:kubj)}(h h]h }(hjLkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:kubh)}(hlongh]hlong}(hjZkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj:kubj)}(h h]h }(hjhkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:kubj%)}(hdmah]hdma}(hjvkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj:kubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6kubjF)}(hunsigned int sizeh](h)}(hunsignedh]hunsigned}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubh)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjkubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjkubj%)}(hsizeh]hsize}(hjkhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjkubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj6kubeh}(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:return the current pointer to DMA transfer buffer in bytesh]h:return the current pointer to DMA transfer buffer in bytes}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?hjkhhubah}(h]h ]h"]h$]h&]uh1jahjjhhhjjhK?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj ljj ljjjuh1hhhhj]fhNhNubj)}(h**Parameters** ``unsigned long dma`` the dma number ``unsigned int size`` the dma transfer size **Return** The current pointer in DMA transfer buffer in bytes.h](jg)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj lubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj2lh]hunsigned long dma}(hj4lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0lubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK@hj,lubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjKlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjGlhK@hjHlubah}(h]h ]h"]h$]h&]uh1jhj,lubeh}(h]h ]h"]h$]h&]uh1jhjGlhK@hj)lubj)}(h,``unsigned int size`` the dma transfer size h](j)}(h``unsigned int size``h]j)}(hjklh]hunsigned int size}(hjmlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjilubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKAhjelubj)}(hhh]jg)}(hthe dma transfer sizeh]hthe dma transfer size}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjlhKAhjlubah}(h]h ]h"]h$]h&]uh1jhjelubeh}(h]h ]h"]h$]h&]uh1jhjlhKAhj)lubeh}(h]h ]h"]h$]h&]uh1jhj lubjg)}(h **Return**h]j)}(hjlh]hReturn}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj lubjg)}(h4The current pointer in DMA transfer buffer in bytes.h]h4The current pointer in DMA transfer buffer in bytes.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChj lubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]fhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_devm_request_dma (C function)c.snd_devm_request_dmahNtauh1hhj]fhhhNhNubh)}(hhh](h)}(hHint snd_devm_request_dma (struct device *dev, int dma, const char *name)h]h)}(hGint snd_devm_request_dma(struct device *dev, int dma, const char *name)h](h)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjlhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrubj)}(h h]h }(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjlhhhjlhKrubj)}(hsnd_devm_request_dmah]j%)}(hsnd_devm_request_dmah]hsnd_devm_request_dma}(hj mhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjlhhhjlhKrubj@)}(h/(struct device *dev, int dma, const char *name)h](jF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hj(mhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj$mubj)}(h h]h }(hj5mhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$mubh)}(hhh]j%)}(hdeviceh]hdevice}(hjFmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjCmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmmodnameN classnameNjj)}j]j)}jjmsbc.snd_devm_request_dmaasbuh1hhj$mubj)}(h h]h }(hjfmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$mubj)}(hjh]h*}(hjtmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$mubj%)}(hdevh]hdev}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj$mubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj mubjF)}(hint dmah](h)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj%)}(hdmah]hdma}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj mubjF)}(hconst char *nameh](jL)}(hj\h]hconst}(hjmhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubh)}(hcharh]hchar}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjmubj)}(h h]h }(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjmubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj%)}(hnameh]hname}(hjnhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjmubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj mubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjlhhhjlhKrubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjlhhhjlhKrubah}(h]jlah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjlhKrhjlhhubjb)}(hhh]jg)}(h$the managed version of request_dma()h]h$the managed version of request_dma()}(hj=nhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKrhj:nhhubah}(h]h ]h"]h$]h&]uh1jahjlhhhjlhKrubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUnjjUnjjjuh1hhhhj]fhNhNubj)}(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_nh]h Parameters}(hjanhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]nubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhjYnubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hj~nh]hstruct device *dev}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|nubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKshjxnubj)}(hhh]jg)}(hthe device pointerh]hthe device pointer}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhKshjnubah}(h]h ]h"]h$]h&]uh1jhjxnubeh}(h]h ]h"]h$]h&]uh1jhjnhKshjunubj)}(h``int dma`` the dma number h](j)}(h ``int dma``h]j)}(hjnh]hint dma}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKthjnubj)}(hhh]jg)}(hthe dma numberh]hthe dma number}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjnhKthjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhKthjunubj)}(h6``const char *name`` the name string of the requester h](j)}(h``const char *name``h]j)}(hjnh]hconst char *name}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKuhjnubj)}(hhh]jg)}(h the name string of the requesterh]h the name string of the requester}(hj ohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjohKuhjoubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjohKuhjunubeh}(h]h ]h"]h$]h&]uh1jhjYnubjg)}(h**Description**h]j)}(hj+oh]h Description}(hj-ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)oubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKwhjYnubjg)}(hIThe requested DMA will be automatically released at unbinding via devres.h]hIThe requested DMA will be automatically released at unbinding via devres.}(hjAohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKvhjYnubjg)}(h **Return**h]j)}(hjRoh]hReturn}(hjTohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPoubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKxhjYnubjg)}(h)zero on success, or a negative error codeh]h)zero on success, or a negative error code}(hjhohhhNhNubah}(h]h ]h"]h$]h&]uh1jfhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKyhjYnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]fhhhNhNubeh}(h]isa-dma-helpersah ]h"]isa dma helpersah$]h&]uh1hhjo<hhhhhKubh)}(hhh](h)}(hOther Helper Macrosh]hOther Helper Macros}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_ref (C function)c.snd_power_refhNtauh1hhjohhhNhNubh)}(hhh](h)}(h*void snd_power_ref (struct snd_card *card)h]h)}(h)void snd_power_ref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjohhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjohhhjohKubj)}(h snd_power_refh]j%)}(h snd_power_refh]h snd_power_ref}(hjohhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjohhhjohKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjohhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjoubj)}(h h]h }(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hj phhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj pmodnameN classnameNjj)}j]j)}jjosbc.snd_power_refasbuh1hhjoubj)}(h h]h }(hj+phhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(hjh]h*}(hj9phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj%)}(hcardh]hcard}(hjFphhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjoubah}(h]h ]h"]h$]h&]j=j>uh1j?hjohhhjohKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjohhhjohKubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjohKhjohhubjb)}(hhh]jg)}(h*Take the reference count for power controlh]h*Take the reference count for power control}(hjpphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjmphhubah}(h]h ]h"]h$]h&]uh1jahjohhhjohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjpjjpjjjuh1hhhhjohNhNubj)}(hX&**Parameters** ``struct snd_card *card`` sound card object **Description** The power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.h](jg)}(h**Parameters**h]j)}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjph]hstruct snd_card *card}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjphKhjpubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjphKhjpubah}(h]h ]h"]h$]h&]uh1jhjpubjg)}(h**Description**h]j)}(hjph]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubjg)}(hThe power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.h]hThe power_ref reference of the card is used for managing to block the snd_power_sync_ref() operation. This function increments the reference. The counterpart snd_power_unref() has to be called appropriately later.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_unref (C function)c.snd_power_unrefhNtauh1hhjohhhNhNubh)}(hhh](h)}(h,void snd_power_unref (struct snd_card *card)h]h)}(h+void snd_power_unref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hj1qhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-qhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hj@qhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-qhhhj?qhKubj)}(hsnd_power_unrefh]j%)}(hsnd_power_unrefh]hsnd_power_unref}(hjRqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjNqubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj-qhhhj?qhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjnqhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjjqubj)}(h h]h }(hj{qhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjqubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjTqsbc.snd_power_unrefasbuh1hhjjqubj)}(h h]h }(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjqubj)}(hjh]h*}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjqubj%)}(hcardh]hcard}(hjqhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjjqubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjfqubah}(h]h ]h"]h$]h&]j=j>uh1j?hj-qhhhj?qhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj)qhhhj?qhKubah}(h]j$qah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj?qhKhj&qhhubjb)}(hhh]jg)}(h-Release the reference count for power controlh]h-Release the reference count for power control}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjqhhubah}(h]h ]h"]h$]h&]uh1jahj&qhhhj?qhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj rjj rjjjuh1hhhhjohNhNubj)}(h=**Parameters** ``struct snd_card *card`` sound card objecth](jg)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj rubj)}(hhh]j)}(h+``struct snd_card *card`` sound card objecth](j)}(h``struct snd_card *card``h]j)}(hj2rh]hstruct snd_card *card}(hj4rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0rubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj,rubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjKrhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjHrubah}(h]h ]h"]h$]h&]uh1jhj,rubeh}(h]h ]h"]h$]h&]uh1jhjGrhKhj)rubah}(h]h ]h"]h$]h&]uh1jhj rubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_sync_ref (C function)c.snd_power_sync_refhNtauh1hhjohhhNhNubh)}(hhh](h)}(h/void snd_power_sync_ref (struct snd_card *card)h]h)}(h.void snd_power_sync_ref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjrhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrhhhjrhKubj)}(hsnd_power_sync_refh]j%)}(hsnd_power_sync_refh]hsnd_power_sync_ref}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjrhhhjrhKubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjrhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjrubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjrhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jjrsbc.snd_power_sync_refasbuh1hhjrubj)}(h h]h }(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjrubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj%)}(hcardh]hcard}(hj"shhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjrubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjrubah}(h]h ]h"]h$]h&]j=j>uh1j?hjrhhhjrhKubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjrhhhjrhKubah}(h]jrah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjrhKhjrhhubjb)}(hhh]jg)}(h&wait until the card power_ref is freedh]h&wait until the card power_ref is freed}(hjLshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjIshhubah}(h]h ]h"]h$]h&]uh1jahjrhhhjrhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdsjjdsjjjuh1hhhhjohNhNubj)}(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)}(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:134: ./include/sound/core.hhKhjhsubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjsh]hstruct snd_card *card}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjsubj)}(hhh]jg)}(hsound card objecth]hsound card object}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshKhjsubah}(h]h ]h"]h$]h&]uh1jhjhsubjg)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjhsubjg)}(hOThis function is used to synchronize with the pending power_ref being released.h]hOThis function is used to synchronize with the pending power_ref being released.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjhsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_unref (C function)c.snd_card_unrefhNtauh1hhjohhhNhNubh)}(hhh](h)}(h+void snd_card_unref (struct snd_card *card)h]h)}(h*void snd_card_unref(struct snd_card *card)h](h)}(hvoidh]hvoid}(hj thhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2ubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj thhhjthM2ubj)}(hsnd_card_unrefh]j%)}(hsnd_card_unrefh]hsnd_card_unref}(hj.thhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj*tubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj thhhjthM2ubj@)}(h(struct snd_card *card)h]jF)}(hstruct snd_card *cardh](jL)}(hjOh]hstruct}(hjJthhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjFtubj)}(h h]h }(hjWthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFtubh)}(hhh]j%)}(hsnd_cardh]hsnd_card}(hjhthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjetubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjtmodnameN classnameNjj)}j]j)}jj0tsbc.snd_card_unrefasbuh1hhjFtubj)}(h h]h }(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFtubj%)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjFtubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjBtubah}(h]h ]h"]h$]h&]j=j>uh1j?hj thhhjthM2ubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjthhhjthM2ubah}(h]jtah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjthM2hjthhubjb)}(hhh]jg)}(hUnreference the card objecth]hUnreference the card object}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM2hjthhubah}(h]h ]h"]h$]h&]uh1jahjthhhjthM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhjohNhNubj)}(h**Parameters** ``struct snd_card *card`` the card object to unreference **Description** Call this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().h](jg)}(h**Parameters**h]j)}(hjth]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM6hjtubj)}(hhh]j)}(h9``struct snd_card *card`` the card object to unreference h](j)}(h``struct snd_card *card``h]j)}(hjuh]hstruct snd_card *card}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj uubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM3hjuubj)}(hhh]jg)}(hthe card object to unreferenceh]hthe card object to unreference}(hj'uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj#uhM3hj$uubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhj#uhM3hjuubah}(h]h ]h"]h$]h&]uh1jhjtubjg)}(h**Description**h]j)}(hjIuh]h Description}(hjKuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5hjtubjg)}(hgCall this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().h]hgCall this function for the card object that was obtained via snd_card_ref() or snd_lookup_minor_data().}(hj_uhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM4hjtubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG (C macro) c.snd_BUGhNtauh1hhjohhhNhNubh)}(hhh](h)}(hsnd_BUGh]h)}(hsnd_BUGh]j)}(hsnd_BUGh]j%)}(hjuh]hsnd_BUG}(hjuhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjuubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjuhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM]ubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjuhhhjuhM]ubah}(h]juah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjuhM]hjuhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjuhhhjuhM]ubeh}(h]h ](jmacroeh"]h$]h&]jjjjujjujjjuh1hhhhjohNhNubjg)}(h``snd_BUG ()``h]j)}(hjuh]h snd_BUG ()}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM_hjohhubj)}(h give a BUG warning message and stack trace **Description** Calls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set. h](j)}(h+give a BUG warning message and stack trace h]jg)}(h*give a BUG warning message and stack traceh]h*give a BUG warning message and stack trace}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM]hjuubah}(h]h ]h"]h$]h&]uh1jhjuhM]hjuubjg)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM_hjuubjg)}(hRCalls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set.h]hRCalls WARN() if CONFIG_SND_DEBUG is set. Ignored when CONFIG_SND_DEBUG is not set.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM^hjuubeh}(h]h ]h"]h$]h&]uh1jhjuhM]hjohhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_BUG_ON (C macro) c.snd_BUG_ONhNtauh1hhjohhhNhNubh)}(hhh](h)}(h snd_BUG_ONh]h)}(h snd_BUG_ONh]j)}(h snd_BUG_ONh]j%)}(hj7vh]h snd_BUG_ON}(hjAvhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj=vubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj9vhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMeubah}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj5vhhhjTvhMeubah}(h]j0vah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjTvhMehj2vhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj2vhhhjTvhMeubeh}(h]h ](jmacroeh"]h$]h&]jjjjmvjjmvjjjuh1hhhhjohNhNubjg)}(h``snd_BUG_ON (cond)``h]j)}(hjsvh]hsnd_BUG_ON (cond)}(hjuvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMghjohhubj)}(hdebugging check macro h]jg)}(hdebugging check macroh]hdebugging check macro}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMehjvubah}(h]h ]h"]h$]h&]uh1jhjvhMehjohhubj)}(h**Parameters** ``cond`` condition to evaluate **Description** Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.h](jg)}(h**Parameters**h]j)}(hjvh]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMihjvubj)}(hhh]j)}(h``cond`` condition to evaluate h](j)}(h``cond``h]j)}(hjvh]hcond}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMfhjvubj)}(hhh]jg)}(hcondition to evaluateh]hcondition to evaluate}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjvhMfhjvubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjvhMfhjvubah}(h]h ]h"]h$]h&]uh1jhjvubjg)}(h**Description**h]j)}(hjwh]h Description}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMhhjvubjg)}(h~Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.h]h~Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set, otherwise just evaluates the conditional and returns the value.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhMghjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*register_sound_special_device (C function)c.register_sound_special_devicehNtauh1hhjohhhNhNubh)}(hhh](h)}(hdint register_sound_special_device (const struct file_operations *fops, int unit, struct device *dev)h]h)}(hcint register_sound_special_device(const struct file_operations *fops, int unit, struct device *dev)h](h)}(hinth]hint}(hjGwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjCwhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMOubj)}(h h]h }(hjVwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCwhhhjUwhMOubj)}(hregister_sound_special_deviceh]j%)}(hregister_sound_special_deviceh]hregister_sound_special_device}(hjhwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdwubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjCwhhhjUwhMOubj@)}(hB(const struct file_operations *fops, int unit, struct device *dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubjL)}(hjOh]hstruct}(hjwhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]j)}jjjwsbc.register_sound_special_deviceasbuh1hhjwubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj%)}(hfopsh]hfops}(hjwhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjwubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|wubjF)}(hint unith](h)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj xubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj xubj%)}(hunith]hunit}(hj-xhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj xubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|wubjF)}(hstruct device *devh](jL)}(hjOh]hstruct}(hjFxhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjBxubj)}(h h]h }(hjSxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBxubh)}(hhh]j%)}(hdeviceh]hdevice}(hjdxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjaxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfxmodnameN classnameNjj)}j]jwc.register_sound_special_deviceasbuh1hhjBxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjBxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBxubj%)}(hdevh]hdev}(hjxhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjBxubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|wubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjCwhhhjUwhMOubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj?whhhjUwhMOubah}(h]j:wah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjUwhMOhjuh1jhj'zhhhj9zhMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hjhzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdzubj)}(h h]h }(hjuzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdzubjL)}(hjOh]hstruct}(hjzhhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhjdzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdzubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jjNzsbc.register_sound_mixerasbuh1hhjdzubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjdzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjdzubj%)}(hfopsh]hfops}(hjzhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjdzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`zubjF)}(hint devh](h)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjzubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjzubj%)}(hdevh]hdev}(hj{hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjzubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj`zubeh}(h]h ]h"]h$]h&]j=j>uh1j?hj'zhhhj9zhMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj#zhhhj9zhMubah}(h]jzah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj9zhMhj zhhubjb)}(hhh]jg)}(hregister a mixer deviceh]hregister a mixer device}(hj;{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj8{hhubah}(h]h ]h"]h$]h&]uh1jahj zhhhj9zhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjS{jjS{jjjuh1hhhhjohNhNubj)}(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]{h]h Parameters}(hj_{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[{ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjW{ubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj|{h]h"const struct file_operations *fops}(hj~{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz{ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjv{ubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhjv{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjs{ubj)}(h$``int dev`` Unit number to allocate h](j)}(h ``int dev``h]j)}(hj{h]hint dev}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj{ubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjs{ubeh}(h]h ]h"]h$]h&]uh1jhjW{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:135: ./sound/sound_core.chMhjW{ubj)}(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.}(hj |hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj|ubah}(h]h ]h"]h$]h&]uh1jhj|hMhjW{ubjg)}(h **Return**h]j)}(hj!|h]hReturn}(hj#|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjW{ubjg)}(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.}(hj7|hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjW{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hregister_sound_dsp (C function)c.register_sound_dsphNtauh1hhjohhhNhNubh)}(hhh](h)}(hDint register_sound_dsp (const struct file_operations *fops, int dev)h]h)}(hCint register_sound_dsp(const struct file_operations *fops, int dev)h](h)}(hinth]hint}(hjf|hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjb|hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hju|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjb|hhhjt|hMubj)}(hregister_sound_dsph]j%)}(hregister_sound_dsph]hregister_sound_dsp}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjb|hhhjt|hMubj@)}(h-(const struct file_operations *fops, int dev)h](jF)}(h"const struct file_operations *fopsh](jL)}(hj\h]hconst}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubjL)}(hjOh]hstruct}(hj|hhhNhNubah}(h]h ]jXah"]h$]h&]uh1jKhj|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubh)}(hhh]j%)}(hfile_operationsh]hfile_operations}(hj|hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}jj|sbc.register_sound_dspasbuh1hhj|ubj)}(h h]h }(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|ubj)}(hjh]h*}(hj }hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ub ej%)}(hfopsh]hfops}(hj}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj|ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubjF)}(hint devh](h)}(hinth]hint}(hj0}hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj,}ubj)}(h h]h }(hj>}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,}ubj%)}(hdevh]hdev}(hjL}hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj,}ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj|ubeh}(h]h ]h"]h$]h&]j=j>uh1j?hjb|hhhjt|hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj^|hhhjt|hMubah}(h]jY|ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhjt|hMhj[|hhubjb)}(hhh]jg)}(hregister a DSP deviceh]hregister a DSP device}(hjv}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjs}hhubah}(h]h ]h"]h$]h&]uh1jahj[|hhhjt|hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjohNhNubj)}(hX**Parameters** ``const struct file_operations *fops`` File operations for the driver ``int dev`` Unit number to allocate **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)}(hj}h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh](j)}(hF``const struct file_operations *fops`` File operations for the driver h](j)}(h&``const struct file_operations *fops``h]j)}(hj}h]h"const struct file_operations *fops}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh]jg)}(hFile operations for the driverh]hFile operations for the driver}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}hMhj}ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj}hMhj}ubj)}(h$``int dev`` Unit number to allocate h](j)}(h ``int dev``h]j)}(hj}h]hint dev}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(hhh]jg)}(hUnit number to allocateh]hUnit number to allocate}(hj ~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhj}ubeh}(h]h ]h"]h$]h&]uh1jhj}ubjg)}(h**Description**h]j)}(hj+~h]h Description}(hj-~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)~ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubj)}(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.}(hjE~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjA~ubjg)}(hThis function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3h]hThis function allocates both the audio and dsp device entries together and will always allocate them as a matching pair - eg dsp3/audio3}(hjT~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjA~ubeh}(h]h ]h"]h$]h&]uh1jhjS~hMhj}ubjg)}(h **Return**h]j)}(hjk~h]hReturn}(hjm~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji~ubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubjg)}(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.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%unregister_sound_special (C function)c.unregister_sound_specialhNtauh1hhjohhhNhNubh)}(hhh](h)}(h(void unregister_sound_special (int unit)h]h)}(h'void unregister_sound_special(int unit)h](h)}(hvoidh]hvoid}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~hhhj~hMubj)}(hunregister_sound_specialh]j%)}(hunregister_sound_specialh]hunregister_sound_special}(hj~hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhj~hhhj~hMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj%)}(hunith]hunit}(hj hhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj~ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj~ubah}(h]h ]h"]h$]h&]j=j>uh1j?hj~hhhj~hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhj~hhhj~hMubah}(h]j~ah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj~hMhj~hhubjb)}(hhh]jg)}(h!unregister a special sound deviceh]h!unregister a special sound device}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj0hhubah}(h]h ]h"]h$]h&]uh1jahj~hhhj~hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjohNhNubj)}(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)}(hjUh]h Parameters}(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:135: ./sound/sound_core.chMhjOubj)}(hhh]j)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hjth]hint unit}(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:135: ./sound/sound_core.chMhjnubj)}(hhh]jg)}(hunit number to allocateh]hunit number to allocate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubah}(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&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjOubj)}(hRelease a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.h]jg)}(hRelease a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.h]hRelease a sound device that was allocated with register_sound_special(). The unit passed is the return value from the register function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubah}(h]h ]h"]h$]h&]uh1jhjhMhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#unregister_sound_mixer (C function)c.unregister_sound_mixerhNtauh1hhjohhhNhNubh)}(hhh](h)}(h&void unregister_sound_mixer (int unit)h]h)}(h%void unregister_sound_mixer(int unit)h](h)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hunregister_sound_mixerh]j%)}(hunregister_sound_mixerh]hunregister_sound_mixer}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjhhhj hMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj7ubj)}(h h]h }(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj7ubj%)}(hunith]hunit}(hjWhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hj7ubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhj3ubah}(h]h ]h"]h$]h&]j=j>uh1j?hjhhhj hMubeh}(h]h ]h"]h$]h&]j=j>jSuh1hjTjUhjhhhj hMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1hhj hMhjhhubjb)}(hhh]jg)}(hunregister a mixerh]hunregister a mixer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj~hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjohNhNubj)}(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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh]j)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hj€h]hint unit}(hjĀhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh]jg)}(hunit number to allocateh]hunit number to allocate}(hjۀhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj׀hMhj؀ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj׀hMhjubah}(h]h ]h"]h$]h&]uh1jhjubjg)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubah}(h]h ]h"]h$]h&]uh1jhj%hMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!unregister_sound_dsp (C function)c.unregister_sound_dsphNtauh1hhjohhhNhNubh)}(hhh](h)}(h$void unregister_sound_dsp (int unit)h]h)}(h#void unregister_sound_dsp(int unit)h](h)}(hvoidh]hvoid}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjHhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjHhhhjZhMubj)}(hunregister_sound_dsph]j%)}(hunregister_sound_dsph]hunregister_sound_dsp}(hjmhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjiubah}(h]h ](j8j9eh"]h$]h&]j=j>uh1jhjHhhhjZhMubj@)}(h (int unit)h]jF)}(hint unith](h)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hunith]hunit}(hjhhhNhNubah}(h]h ]j1ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphj=j>uh1jEhjubah}(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)}(hunregister a DSP deviceh]hunregister a DSP device}(hjρhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj́hhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjohNhNubj)}(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)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(hhh]j)}(h%``int unit`` unit number to allocate h](j)}(h ``int unit``h]j)}(hjh]hint unit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhj ubj)}(hhh]jg)}(hunit number to allocateh]hunit number to allocate}(hj)hhhNhNubah}(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)}(hjKh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjubj)}(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.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjaubjg)}(h@Both of the allocated units are released together automatically.h]h@Both of the allocated units are released together automatically.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jfhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:135: ./sound/sound_core.chMhjaubeh}(h]h ]h"]h$]h&]uh1jhjshMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjohhhNhNubeh}(h]other-helper-macrosah ]h"]other helper macrosah$]h&]uh1hhjo<hhhhhKubeh}(h]miscellaneous-functionsah ]h"]miscellaneous functionsah$]h&]uh1hhhhhhhhKtubeh}(h]the-alsa-driver-apiah ]h"]the alsa driver apiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj˂error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj]j]j'j'j1j1j:;j7;j]j]jgjdj9j9jmPjjPjVfjSfj_j\jjj˿jȿjLjIjjjPjMjjjHjEj3j3j3j3jppjmpjhpjepjl<ji<jjjN5jK5jd<ja<jjj?j?jZfjWfjojojju nametypes}(jj]j'j1j:;j]jgj9jmPjVfj_jj˿jLjjPjjHj3j3jppjhpjl<jjN5jd<jj?jZfjojuh}(jhj]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:[jdj]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^jhjmjjjjȿj{jjjLjQjjj2j7jj‘j>jCjjjljqjޚjj/j4jjj?jDjWj\j&j+jjj|jjjjUjZjjjj jsjxjjjujzjƹj˹jjjIjοjjjjjjjcjhjj$jejjjjjXj]j~jjjjjjj jj jjjjjjjjjjOjljqjTjYjjj2j7j2j7jMjRjjjhjmjMjjjjjjjjCjHjj j j j j jCjHjfjkjEjj2j7jMjRjhjmj3jSj3jdjjj"j"j$j$j'j'j+j#+j,j,jG.jL.jmpj3jepj4j"4j'4jZ6j_6j8j8j <j%<jb=jg=j>j>j@j@jBjBjCjDj?EjDEjGjGjRIjWIjhJjmJjKjKj NjNjXOj]Oj~QjQjSjSjEUjJUjVjVj"Zj'Zj\j\jajajCejHejijijljlj3nj8nji<jspjjpjpjpj]rjbrj[tj`tjvjvjxjxj{j{j|j|jajfj0j5jjjjjjjLjQjCjHjjj#j(jBjGjjjșj͙jjjjjjjjj-j2jj§jjjyj~jjj޲jjjjjj/j4jujzjjjajfjjj2j7jkjpjjjjjjjOjTjjjjjjjjjjjjj*j/jcjhjjjK5jj6j;jjjjjDjIjpjujjjjjwj|jjj jjjj8j=jjjjj=jBjvj{jjj j j! j& jKjPjujzjjjjjjjjj`jejjj!j!jC$jH$j&j&j(j(j +j+jY-j^-j/j/j1j1j3j3ja<jQ5jn5js5jA8jF8j:j:jjo<j?j<j<j<jWfj?j?j@j/Dj4DjFjFj+Kj0Kj NjNjOjOj}RjRjUjUjWj WjYjYj[j[j]j]j`j`jcjcjoj]fjzfjfjxij}ijjjjjljljjojojoj$qj)qjrjrjtjtjujuj0vj5vj:wj?wjzj#zjY|j^|j~j~jjj?jDu 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.