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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget4/translations/pt_BR/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}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhj hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKyubhdesc_sig_space)}(h h]h }(hj#hhhNhNubah}(h]h ]wah"]h$]h&]uh1j!hj hhhj hKyubh desc_name)}(hsnd_device_alloch]h desc_sig_name)}(hsnd_device_alloch]hsnd_device_alloc}(hj:hhhNhNubah}(h]h ]nah"]h$]h&]uh1j8hj4ubah}(h]h ](sig-namedescnameeh"]h$]h&] xml:spacepreserveuh1j2hj hhhj hKyubhdesc_parameterlist)}(h.(struct device **dev_p, struct snd_card *card)h](hdesc_parameter)}(hstruct device **dev_ph](hdesc_sig_keyword)}(hstructh]hstruct}(hjahhhNhNubah}(h]h ]kah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hjphhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubh)}(hhh]j9)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj<sbc.snd_device_allocasbuh1hhj[ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hdev_ph]hdev_p}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubjZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_device_allocasbuh1hhjubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hKyubeh}(h]h ]h"]h$]h&]jQjR add_permalinkuh1j sphinx_line_type declaratorhjhhhj hKyubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj hKyhjhhubh desc_content)}(hhh]h paragraph)}(h7Allocate and initialize struct device for sound devicesh]h7Allocate and initialize struct device for sound devices}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKyhjwhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj 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](j{)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(h%pointer to store the allocated deviceh]h%pointer to store the allocated device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKzhjubah}(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)}(hj h]hstruct snd_card *card}(hj hhhNhNubah}(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]j{)}(hcard to assign, optionalh]hcard to assign, optional}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhK{hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK{hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chK}hjubj{)}(h6For releasing the allocated device, call put_device().h]h6For releasing the allocated device, call put_device().}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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](j)}(hint snd_card_new (struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h]j )}(hint snd_card_new(struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(h snd_card_newh]j9)}(h snd_card_newh]h snd_card_new}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(ht(struct device *parent, int idx, const char *xid, struct module *module, int extra_size, struct snd_card **card_ret)h](jZ)}(hstruct device *parenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_newasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hparenth]hparent}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint idxh](j)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubj9)}(hidxh]hidx}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst char *xidh](j`)}(hconsth]hconst}(hjnhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjjubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj9)}(hxidh]hxid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct module *moduleh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hmoduleh]hmodule}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_card_newasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hmoduleh]hmodule}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint extra_sizeh](j)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8ubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj8ubj9)}(h extra_sizeh]h extra_size}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj8ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_card **card_reth](j`)}(hjch]hstruct}(hjqhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjmubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_card_newasbuh1hhjmubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj9)}(hcard_reth]hcard_ret}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]j}ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h+create and initialize a soundcard structureh]h+create and initialize a soundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(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](j{)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/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}(hjBhhhNhNubah}(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]j{)}(hthe parent device objecth]hthe parent device object}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKhj7ubj)}(h9``int idx`` card index (address) [0 ... (SNDRV_CARDS-1)] h](j)}(h ``int idx``h]j)}(hjyh]hint idx}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjsubj)}(hhh]j{)}(h,card index (address) [0 ... (SNDRV_CARDS-1)]h]h,card index (address) [0 ... (SNDRV_CARDS-1)]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKhj7ubj)}(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]j{)}(h"card identification (ASCII string)h]h"card identification (ASCII string)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj7ubj)}(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]j{)}(htop level module for lockingh]htop level module for locking}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj7ubj)}(hO``int extra_size`` allocate this extra size after the main soundcard structure h](j)}(h``int extra_size``h]j)}(hj$h]hint 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.chKhjubj)}(hhh]j{)}(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&]uh1jzhj9hKhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hKhj7ubj)}(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.chKhjWubj)}(hhh]j{)}(h.the pointer to store the created card instanceh]h.the pointer to store the created card instance}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjrhKhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhKhj7ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjubj{)}(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&]uh1jzhb/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](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhjhKubj3)}(hsnd_devm_card_newh]j9)}(hsnd_devm_card_newh]hsnd_devm_card_new}(hj1hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhjhKubjT)}(hw(struct device *parent, int idx, const char *xid, struct module *module, size_t extra_size, struct snd_card **card_ret)h](jZ)}(hstruct device *parenth](j`)}(hjch]hstruct}(hjMhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjIubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubh)}(hhh]j9)}(hdeviceh]hdevice}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jj3sbc.snd_devm_card_newasbuh1hhjIubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj9)}(hparenth]hparent}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubjZ)}(hint idxh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hidxh]hidx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubjZ)}(hconst char *xidh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj+ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hxidh]hxid}(hj8 hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubjZ)}(hstruct module *moduleh](j`)}(hjch]hstruct}(hjQ hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjM ubj")}(h h]h }(hj^ hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjM ubh)}(hhh]j9)}(hmoduleh]hmodule}(hjo hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjl ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjq modnameN classnameNjj)}j]jc.snd_devm_card_newasbuh1hhjM ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjM ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM ubj9)}(hmoduleh]hmodule}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjM ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubjZ)}(hsize_t extra_sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_devm_card_newasbuh1hhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(h extra_sizeh]h extra_size}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubjZ)}(hstruct snd_card **card_reth](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj' hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj) modnameN classnameNjj)}j]jc.snd_devm_card_newasbuh1hhj ubj")}(h h]h }(hjE hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj` hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hcard_reth]hcard_ret}(hjm hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjEubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h managed snd_card object creationh]h managed snd_card object creation}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(hthe parent device objecth]hthe parent device object}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 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]j{)}(h,card index (address) [0 ... (SNDRV_CARDS-1)]h]h,card index (address) [0 ... (SNDRV_CARDS-1)]}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj& 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)}(hjJ h]hconst char *xid}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhjD ubj)}(hhh]j{)}(h"card identification (ASCII string)h]h"card identification (ASCII string)}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_ hKhj` ubah}(h]h ]h"]h$]h&]uh1jhjD ubeh}(h]h ]h"]h$]h&]uh1jhj_ hKhj ubj)}(h7``struct module *module`` top level module for locking h](j)}(h``struct module *module``h]j)}(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:10: ./sound/core/init.chKhj} ubj)}(hhh]j{)}(htop level module for lockingh]htop level module for locking}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj} 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]j{)}(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&]uh1jzhj 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]j{)}(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&]uh1jzhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hj0 h]h Description}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj{)}(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.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj{)}(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.}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj{)}(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.}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj{)}(h **Return**h]j)}(hju h]hReturn}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj ubj{)}(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&]uh1jzhb/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](j)}(h8int snd_card_free_on_error (struct device *dev, int ret)h]j )}(h7int snd_card_free_on_error(struct device *dev, int ret)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j.ah"]h$]h&]uh1j!hj hhhj hKubj3)}(hsnd_card_free_on_errorh]j9)}(hsnd_card_free_on_errorh]hsnd_card_free_on_error}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hKubjT)}(h(struct device *dev, int ret)h](jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_card_free_on_errorasbuh1hhj ubj")}(h h]h }(hj5 hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjC hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hdevh]hdev}(hjP hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hint reth](j)}(hinth]hint}(hji hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje ubj")}(h h]h }(hjw hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hje ubj9)}(hreth]hret}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hje ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hKubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hKhj hhubjv)}(hhh]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj hhubah}(h]h ]h"]h$]h&]uh1juhj 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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(hthe managed device objecth]hthe managed device object}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjhKhj ubj)}(h4``int ret`` the return code from the probe callback h](j)}(h ``int ret``h]j)}(hj)h]hint ret}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chKhj#ubj)}(hhh]j{)}(h'the return code from the probe callbackh]h'the return code from the probe callback}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>hKhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjdh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubj{)}(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.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj ubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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](j)}(h(struct snd_card * snd_card_ref (int idx)h]j )}(h&struct snd_card *snd_card_ref(int idx)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM}ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j snd_card_refsbc.snd_card_refasbuh1hhjhhhjhM}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM}ubj3)}(h snd_card_refh]j9)}(hj h]h snd_card_ref}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM}ubjT)}(h (int idx)h]jZ)}(hint idxh](j)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFubj9)}(hidxh]hidx}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjBubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM}ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM}ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM}hjhhubjv)}(hhh]j{)}(h"Get the card object from the indexh]h"Get the card object from the index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM}hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM}ubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj)}(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.chM~hjubj)}(hhh]j{)}(hthe card indexh]hthe card index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM~hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM~hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj{)}(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().}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj{)}(h **Return**h]j)}(hj3h]hReturn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj{)}(ha card object or NULLh]ha card object or NULL}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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](h snd_card_disconnect (C function)c.snd_card_disconnecthNtauh1hhhhhhNhNubh)}(hhh](j)}(h0void snd_card_disconnect (struct snd_card *card)h]j )}(h/void snd_card_disconnect(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjthhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjthhhjhMubj3)}(hsnd_card_disconnecth]j9)}(hsnd_card_disconnecth]hsnd_card_disconnect}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjthhhjhMubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_disconnectasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjthhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjphhhjhMubah}(h]jkah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjmhhubjv)}(hhh]j{)}(h9disconnect all APIs from the file-operations (user space)h]h9disconnect all APIs from the file-operations (user space)}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj5hhubah}(h]h ]h"]h$]h&]uh1juhjmhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhhhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjZh]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjTubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjyh]hstruct snd_card *card}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjsubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhjpubah}(h]h ]h"]h$]h&]uh1jhjTubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjTubj)}(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}(hj)hhhNhNubah}(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]j{)}(h7dummy file operations (they do nothing except release).h]h7dummy file operations (they do nothing except release).}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj8ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj7hMhj"ubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(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](j)}(h5void snd_card_disconnect_sync (struct snd_card *card)h]j )}(h4void snd_card_disconnect_sync(struct snd_card *card)h](j)}(hvoidh]hvoid}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM6ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxhhhjhM6ubj3)}(hsnd_card_disconnect_synch]j9)}(hsnd_card_disconnect_synch]hsnd_card_disconnect_sync}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjxhhhjhM6ubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_disconnect_syncasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjxhhhjhM6ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjthhhjhM6ubah}(h]joah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM6hjqhhubjv)}(hhh]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM6hj9hhubah}(h]h ]h"]h$]h&]uh1juhjqhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhhhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM:hjXubj)}(hhh]j)}(h4``struct snd_card *card`` card object to disconnect h](j)}(h``struct snd_card *card``h]j)}(hj}h]hstruct snd_card *card}(hjhhhNhNubah}(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.chM7hjwubj)}(hhh]j{)}(hcard object to disconnecth]hcard object to disconnect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjtubah}(h]h ]h"]h$]h&]uh1jhjXubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM9hjXubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM8hjXubeh}(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](j)}(h6void snd_card_free_when_closed (struct snd_card *card)h]j )}(h5void snd_card_free_when_closed(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMbubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj hMbubj3)}(hsnd_card_free_when_closedh]j9)}(hsnd_card_free_when_closedh]hsnd_card_free_when_closed}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj hMbubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj6ubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]j)}jj sbc.snd_card_free_when_closedasbuh1hhj6ubj")}(h h]h }(hjxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj hMbubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj hMbubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMbhjhhubjv)}(hhh]j{)}(h-Disconnect the card, free it later eventuallyh]h-Disconnect the card, free it later eventually}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMbhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMbubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMfhjubj)}(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.chMchjubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMchjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMchjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj9h]h Description}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMehjubj{)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMdhjubj{)}(h **Return**h]j)}(hj`h]hReturn}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMihjubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMjhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_free (C function)c.snd_card_freehNtauh1hhhhhhNhNubh)}(hhh](j)}(h*void snd_card_free (struct snd_card *card)h]j )}(h)void snd_card_free(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMxubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMxubj3)}(h snd_card_freeh]j9)}(h snd_card_freeh]h snd_card_free}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMxubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_card_freeasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMxubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMxubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMxhjhhubjv)}(hhh]j{)}(hfrees given soundcard structureh]hfrees given soundcard structure}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMxhjbhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhhhNhNubj)}(hX**Parameters** ``struct snd_card *card`` soundcard structure **Description** This function releases the soundcard structure and the all assigned devices automatically. That is, you don't have to release the devices by yourself. This function waits until the all resources are properly released. **Return** Zero. Frees all associated devices and frees the control interface associated to given soundcard.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/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.chMyhjubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMyhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM{hjubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMzhjubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM~hjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj{)}(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.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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_set_id (C function)c.snd_card_set_idhNtauh1hhhhhhNhNubh)}(hhh](j)}(h=void snd_card_set_id (struct snd_card *card, const char *nid)h]j )}(hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjLhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjphhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjlhhhjhMubah}(h]jgah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjihhubjv)}(hhh]j{)}(hadd a component stringh]hadd a component string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjihhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(hsoundcard structureh]hsoundcard structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(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)}(hj h]hconst char *component}(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.chMhjubj)}(hhh]j{)}(hthe component id stringh]hthe component id string}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjFh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(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.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj\ubah}(h]h ]h"]h$]h&]uh1jhjnhMhjubj{)}(h **Return**h]j)}(hjwh]hReturn}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhjubj{)}(h%Zero otherwise a negative error code.h]h%Zero otherwise a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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](j)}(h@int snd_card_file_add (struct snd_card *card, struct file *file)h]j )}(h?int snd_card_file_add(struct snd_card *card, struct file *file)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM!ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM!ubj3)}(hsnd_card_file_addh]j9)}(hsnd_card_file_addh]hsnd_card_file_add}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM!ubjT)}(h*(struct snd_card *card, struct file *file)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsbc.snd_card_file_addasbuh1hhjubj")}(h h]h }(hj7 hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjE hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjR hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct file *fileh](j`)}(hjch]hstruct}(hjk hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjg ubj")}(h h]h }(hjx hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjg ubh)}(hhh]j9)}(hfileh]hfile}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j3 c.snd_card_file_addasbuh1hhjg ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjg ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjg ubj9)}(hfileh]hfile}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjg ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM!ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM!ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM!hjhhubjv)}(hhh]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM!hj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM!ubeh}(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](j{)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj !ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM%hj!ubj)}(hhh](j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hj-!h]hstruct snd_card *card}(hj/!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+!ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM"hj'!ubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hjF!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjB!hM"hjC!ubah}(h]h ]h"]h$]h&]uh1jhj'!ubeh}(h]h ]h"]h$]h&]uh1jhjB!hM"hj$!ubj)}(h#``struct file *file`` file pointer h](j)}(h``struct file *file``h]j)}(hjf!h]hstruct file *file}(hjh!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd!ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM#hj`!ubj)}(hhh]j{)}(h file pointerh]h file pointer}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj{!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!ubj{)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM%hj!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]j{)}(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&]uh1jzhb/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$hj!ubj{)}(h **Return**h]j)}(hj!h]hReturn}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chM(hj!ubj{)}(hzero or a negative error code.h]hzero or a negative error code.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/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](j)}(hCint snd_card_file_remove (struct snd_card *card, struct file *file)h]j )}(hBint snd_card_file_remove(struct snd_card *card, struct file *file)h](j)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMAubj")}(h h]h }(hj&"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"hhhj%"hMAubj3)}(hsnd_card_file_removeh]j9)}(hsnd_card_file_removeh]hsnd_card_file_remove}(hj8"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4"ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj"hhhj%"hMAubjT)}(h*(struct snd_card *card, struct file *file)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjT"hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjP"ubj")}(h h]h }(hja"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjP"ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjr"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjo"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjt"modnameN classnameNjj)}j]j)}jj:"sbc.snd_card_file_removeasbuh1hhjP"ubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjP"ubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP"ubj9)}(hcardh]hcard}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjP"ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjL"ubjZ)}(hstruct file *fileh](j`)}(hjch]hstruct}(hj"hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj"ubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"ubh)}(hhh]j9)}(hfileh]hfile}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j"c.snd_card_file_removeasbuh1hhj"ubj")}(h h]h }(hj#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj9)}(hfileh]hfile}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj"ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjL"ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj"hhhj%"hMAubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj"hhhj%"hMAubah}(h]j "ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj%"hMAhj "hhubjv)}(hhh]j{)}(h"remove the file from the file listh]h"remove the file from the file list}(hjG#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMAhjD#hhubah}(h]h ]h"]h$]h&]uh1juhj "hhhj%"hMAubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_#jj_#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](j{)}(h**Parameters**h]j)}(hji#h]h Parameters}(hjk#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg#ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMEhjc#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.chMBhj#ubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj#hMBhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMBhj#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.chMChj#ubj)}(hhh]j{)}(h file pointerh]h file pointer}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj#hMChj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMChj#ubeh}(h]h ]h"]h$]h&]uh1jhjc#ubj{)}(h**Description**h]j)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMEhjc#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]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMDhj$ubah}(h]h ]h"]h$]h&]uh1jhj$$hMDhjc#ubj{)}(h **Return**h]j)}(hj-$h]hReturn}(hj/$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+$ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMJhjc#ubj{)}(hZero or a negative error code.h]hZero or a negative error code.}(hjC$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMKhjc#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](j)}(h2int snd_power_ref_and_wait (struct snd_card *card)h]j )}(h1int snd_power_ref_and_wait(struct snd_card *card)h](j)}(hinth]hint}(hjr$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn$hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMlubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn$hhhj$hMlubj3)}(hsnd_power_ref_and_waith]j9)}(hsnd_power_ref_and_waith]hsnd_power_ref_and_wait}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjn$hhhj$hMlubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj$hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj$ubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$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 ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(hcardh]hcard}(hj%hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubah}(h]h ]h"]h$]h&]jQjRuh1jShjn$hhhj$hMlubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjj$hhhj$hMlubah}(h]je$ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj$hMlhjg$hhubjv)}(hhh]j{)}(h#wait until the card gets powered uph]h#wait until the card gets powered up}(hj2%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMlhj/%hhubah}(h]h ]h"]h$]h&]uh1juhjg$hhhj$hMlubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJ%jjJ%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](j{)}(h**Parameters**h]j)}(hjT%h]h Parameters}(hjV%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR%ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMphjN%ubj)}(hhh]j)}(h.``struct snd_card *card`` soundcard structure h](j)}(h``struct snd_card *card``h]j)}(hjs%h]hstruct snd_card *card}(hju%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq%ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMmhjm%ubj)}(hhh]j{)}(hsoundcard structureh]hsoundcard structure}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj%hMmhj%ubah}(h]h ]h"]h$]h&]uh1jhjm%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMmhjj%ubah}(h]h ]h"]h$]h&]uh1jhjN%ubj{)}(h**Description**h]j)}(hj%h]h Description}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMohjN%ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMnhjN%ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMthjN%ubj{)}(h **Return**h]j)}(hj%h]hReturn}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMwhjN%ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMxhjN%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](j)}(h*int snd_power_wait (struct snd_card *card)h]j )}(h)int snd_power_wait(struct snd_card *card)h](j)}(hinth]hint}(hj)&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%&hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMubj")}(h h]h }(hj8&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj%&hhhj7&hMubj3)}(hsnd_power_waith]j9)}(hsnd_power_waith]hsnd_power_wait}(hjJ&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjF&ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj%&hhhj7&hMubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjf&hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjb&ubj")}(h h]h }(hjs&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjb&ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jjL&sbc.snd_power_waitasbuh1hhjb&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjb&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjb&ubj9)}(hcardh]hcard}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjb&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj^&ubah}(h]h ]h"]h$]h&]jQjRuh1jShj%&hhhj7&hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj!&hhhj7&hMubah}(h]j&ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7&hMhj&hhubjv)}(hhh]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj&hhubah}(h]h ]h"]h$]h&]uh1juhj&hhhj7&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](j{)}(h**Parameters**h]j)}(hj 'h]h Parameters}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 'ubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(hsoundcard structureh]hsoundcard structure}(hjC'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj?'hMhj@'ubah}(h]h ]h"]h$]h&]uh1jhj$'ubeh}(h]h ]h"]h$]h&]uh1jhj?'hMhj!'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj{)}(h**Description**h]j)}(hje'h]h Description}(hjg'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc'ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj'ubj{)}(h@Wait until the card gets powered up to SNDRV_CTL_POWER_D0 state.h]h@Wait until the card gets powered up to SNDRV_CTL_POWER_D0 state.}(hj{'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj'ubj{)}(h **Return**h]j)}(hj'h]hReturn}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:10: ./sound/core/init.chMhj'ubj{)}(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&]uh1jzhb/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](j)}(hzint snd_device_new (struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h]j )}(hyint snd_device_new(struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h](j)}(hinth]hint}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'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 ]j.ah"]h$]h&]uh1j!hj'hhhj'hKubj3)}(hsnd_device_newh]j9)}(hsnd_device_newh]hsnd_device_new}(hj (hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj'hhhj'hKubjT)}(hg(struct snd_card *card, enum snd_device_type type, void *device_data, const struct snd_device_ops *ops)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj'(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj#(ubj")}(h h]h }(hj4(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#(ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjE(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjB(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjG(modnameN classnameNjj)}j]j)}jj (sbc.snd_device_newasbuh1hhj#(ubj")}(h h]h }(hje(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#(ubj)}(hjh]h*}(hjs(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#(ubj9)}(hcardh]hcard}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj#(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(henum snd_device_type typeh](j`)}(henumh]henum}(hj(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj(ubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubh)}(hhh]j9)}(hsnd_device_typeh]hsnd_device_type}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]ja(c.snd_device_newasbuh1hhj(ubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubj9)}(htypeh]htype}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hvoid *device_datah](j)}(hvoidh]hvoid}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj")}(h h]h }(hj )hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj9)}(h device_datah]h device_data}(hj&)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(h const struct snd_device_ops *opsh](j`)}(hjph]hconst}(hj?)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj;)ubj")}(h h]h }(hjL)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;)ubj`)}(hjch]hstruct}(hjZ)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj;)ubj")}(h h]h }(hjg)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;)ubh)}(hhh]j9)}(hsnd_device_opsh]hsnd_device_ops}(hjx)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hju)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjz)modnameN classnameNjj)}j]ja(c.snd_device_newasbuh1hhj;)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;)ubj9)}(hopsh]hops}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj'hhhj'hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj'hhhj'hKubah}(h]j'ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj'hKhj'hhubjv)}(hhh]j{)}(hcreate an ALSA device componenth]hcreate an ALSA device component}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)hhubah}(h]h ]h"]h$]h&]uh1juhj'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](j{)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe card instanceh]hthe card instance}(hj5*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj1*hKhj2*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj1*hKhj*ubj)}(h=``enum snd_device_type type`` the device type, SNDRV_DEV_XXX h](j)}(h``enum snd_device_type type``h]j)}(hjU*h]henum snd_device_type type}(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:14: ./sound/core/device.chKhjO*ubj)}(hhh]j{)}(hthe device type, SNDRV_DEV_XXXh]hthe device type, SNDRV_DEV_XXX}(hjn*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjj*hKhjk*ubah}(h]h ]h"]h$]h&]uh1jhjO*ubeh}(h]h ]h"]h$]h&]uh1jhjj*hKhj*ubj)}(h6``void *device_data`` the data pointer of this device h](j)}(h``void *device_data``h]j)}(hj*h]hvoid *device_data}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj*ubj)}(hhh]j{)}(hthe data pointer of this deviceh]hthe data pointer of this device}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj*ubj)}(h8``const struct snd_device_ops *ops`` the operator table h](j)}(h$``const struct snd_device_ops *ops``h]j)}(hj*h]h const struct snd_device_ops *ops}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj*ubj)}(hhh]j{)}(hthe operator tableh]hthe operator table}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hKhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj*ubeh}(h]h ]h"]h$]h&]uh1jhj)ubj{)}(h**Description**h]j)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj{)}(h **Return**h]j)}(hj8+h]hReturn}(hj:+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6+ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj)ubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjN+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hEvoid snd_device_disconnect (struct snd_card *card, void *device_data)h]j )}(hDvoid snd_device_disconnect(struct snd_card *card, void *device_data)h](j)}(hvoidh]hvoid}(hj}+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy+hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK^ubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjy+hhhj+hK^ubj3)}(hsnd_device_disconnecth]j9)}(hsnd_device_disconnecth]hsnd_device_disconnect}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjy+hhhj+hK^ubjT)}(h*(struct snd_card *card, void *device_data)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj+hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj+ubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+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 ]j.ah"]h$]h&]uh1j!hj+ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj9)}(hcardh]hcard}(hj,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+ubjZ)}(hvoid *device_datah](j)}(hvoidh]hvoid}(hj,,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(,ubj")}(h h]h }(hj:,hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(,ubj)}(hjh]h*}(hjH,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(,ubj9)}(h device_datah]h device_data}(hjU,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(,ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjy+hhhj+hK^ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihju+hhhj+hK^ubah}(h]jp+ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj+hK^hjr+hhubjv)}(hhh]j{)}(hdisconnect the deviceh]hdisconnect the device}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK^hj|,hhubah}(h]h ]h"]h$]h&]uh1juhjr+hhhj+hK^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj,jj,jjjuh1hhhhj'hNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``void *device_data`` the data pointer to disconnect **Description** Turns the device into the disconnection state, invoking dev_disconnect callback, if the device was already registered. Usually called from snd_card_disconnect(). **Return** Zero if successful, or a negative error code on failure or if the device not found.h](j{)}(h**Parameters**h]j)}(hj,h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe card instanceh]hthe card instance}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj,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]j{)}(hthe data pointer to disconnecth]hthe data pointer to disconnect}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj-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,ubj{)}(h**Description**h]j)}(hj4-h]h Description}(hj6-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2-ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKbhj,ubj{)}(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.}(hjJ-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKahj,ubj{)}(h*Usually called from snd_card_disconnect().h]h*Usually called from snd_card_disconnect().}(hjY-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKdhj,ubj{)}(h **Return**h]j)}(hjj-h]hReturn}(hjl-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh-ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKfhj,ubj{)}(hSZero if successful, or a negative error code on failure or if the device not found.h]hSZero if successful, or a negative error code on failure or if the device not found.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(h?void snd_device_free (struct snd_card *card, void *device_data)h]j )}(h>void snd_device_free(struct snd_card *card, void *device_data)h](j)}(hvoidh]hvoid}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-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 ]j.ah"]h$]h&]uh1j!hj-hhhj-hKzubj3)}(hsnd_device_freeh]j9)}(hsnd_device_freeh]hsnd_device_free}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj-hhhj-hKzubjT)}(h*(struct snd_card *card, void *device_data)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj-hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj-ubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj .hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.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 ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hj8.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(hcardh]hcard}(hjE.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj-ubjZ)}(hvoid *device_datah](j)}(hvoidh]hvoid}(hj^.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ.ubj")}(h h]h }(hjl.hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZ.ubj)}(hjh]h*}(hjz.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ.ubj9)}(h device_datah]h device_data}(hj.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZ.ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj-ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj-hhhj-hKzubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj-hhhj-hKzubah}(h]j-ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj-hKzhj-hhubjv)}(hhh]j{)}(h release the device from the cardh]h release the device from the card}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKzhj.hhubah}(h]h ]h"]h$]h&]uh1juhj-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](j{)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe card instanceh]hthe card instance}(hj /hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/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]j{)}(hthe data pointer to releaseh]hthe data pointer to release}(hjD/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@/hK|hjA/ubah}(h]h ]h"]h$]h&]uh1jhj%/ubeh}(h]h ]h"]h$]h&]uh1jhj@/hK|hj.ubeh}(h]h ]h"]h$]h&]uh1jhj.ubj{)}(h**Description**h]j)}(hjf/h]h Description}(hjh/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd/ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chK~hj.ubj{)}(hRemoves the device from the list on the card and invokes the callbacks, dev_disconnect and dev_free, corresponding to the state. Then release the device.h]hRemoves the device from the list on the card and invokes the callbacks, dev_disconnect and dev_free, corresponding to the state. Then release the device.}(hj|/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hBint snd_device_register (struct snd_card *card, void *device_data)h]j )}(hAint snd_device_register(struct snd_card *card, void *device_data)h](j)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/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 ]j.ah"]h$]h&]uh1j!hj/hhhj/hKubj3)}(hsnd_device_registerh]j9)}(hsnd_device_registerh]hsnd_device_register}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj/hhhj/hKubjT)}(h*(struct snd_card *card, void *device_data)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jj/sbc.snd_device_registerasbuh1hhj/ubj")}(h h]h }(hj&0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj)}(hjh]h*}(hj40hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj9)}(hcardh]hcard}(hjA0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubjZ)}(hvoid *device_datah](j)}(hvoidh]hvoid}(hjZ0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV0ubj")}(h h]h }(hjh0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjV0ubj)}(hjh]h*}(hjv0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV0ubj9)}(h device_datah]h device_data}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjV0ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj/hhhj/hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj/hhhj/hKubah}(h]j/ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj/hKhj/hhubjv)}(hhh]j{)}(hregister the deviceh]hregister the device}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0hhubah}(h]h ]h"]h$]h&]uh1juhj/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](j{)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe card instanceh]hthe card instance}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj1hKhj1ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj1hKhj0ubj)}(h3``void *device_data`` the data pointer to register h](j)}(h``void *device_data``h]j)}(hj'1h]hvoid *device_data}(hj)1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%1ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj!1ubj)}(hhh]j{)}(hthe data pointer to registerh]hthe data pointer to register}(hj@1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<1hKhj=1ubah}(h]h ]h"]h$]h&]uh1jhj!1ubeh}(h]h ]h"]h$]h&]uh1jhj<1hKhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0ubj{)}(h**Description**h]j)}(hjb1h]h Description}(hjd1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`1ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubj{)}(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().}(hjx1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubj{)}(h **Return**h]j)}(hj1h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:14: ./sound/core/device.chKhj0ubj{)}(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&]uh1jzhd/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](j)}(h void snd_request_card (int card)h]j )}(hvoid snd_request_card(int card)h](j)}(hvoidh]hvoid}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6ubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1hhhj1hK6ubj3)}(hsnd_request_cardh]j9)}(hsnd_request_cardh]hsnd_request_card}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj1hhhj1hK6ubjT)}(h (int card)h]jZ)}(hint cardh](j)}(hinth]hint}(hj$2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 2ubj")}(h h]h }(hj22hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj 2ubj9)}(hcardh]hcard}(hj@2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj 2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubah}(h]h ]h"]h$]h&]jQjRuh1jShj1hhhj1hK6ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj1hhhj1hK6ubah}(h]j1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hK6hj1hhubjv)}(hhh]j{)}(htry to load the card moduleh]htry to load the card module}(hjj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK6hjg2hhubah}(h]h ]h"]h$]h&]uh1juhj1hhhj1hK6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhj1hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK:hj2ubj)}(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]j{)}(hthe card numberh]hthe card number}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2hK7hj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hK7hj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubj{)}(h**Description**h]j)}(hj2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK9hj2ubj{)}(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&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK8hj2ubeh}(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](j)}(h;void * snd_lookup_minor_data (unsigned int minor, int type)h]j )}(h9void *snd_lookup_minor_data(unsigned int minor, int type)h](j)}(hvoidh]hvoid}(hj+3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'3hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUubj")}(h h]h }(hj:3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'3hhhj93hKUubj)}(hjh]h*}(hjH3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'3hhhj93hKUubj3)}(hsnd_lookup_minor_datah]j9)}(hsnd_lookup_minor_datah]hsnd_lookup_minor_data}(hjY3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjU3ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj'3hhhj93hKUubjT)}(h(unsigned int minor, int type)h](jZ)}(hunsigned int minorh](j)}(hunsignedh]hunsigned}(hju3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq3ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjq3ubj)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjq3ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjq3ubj9)}(hminorh]hminor}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjq3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjm3ubjZ)}(hint typeh](j)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj9)}(htypeh]htype}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjm3ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj'3hhhj93hKUubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj#3hhhj93hKUubah}(h]j3ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj93hKUhj 3hhubjv)}(hhh]j{)}(h$get user data of a registered deviceh]h$get user data of a registered device}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKUhj 4hhubah}(h]h ]h"]h$]h&]uh1juhj 3hhhj93hKUubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$4jj$4jjjuh1hhhhj1hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj.4h]h Parameters}(hj04hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,4ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj(4ubj)}(hhh](j)}(h(``unsigned int minor`` the minor number h](j)}(h``unsigned int minor``h]j)}(hjM4h]hunsigned int minor}(hjO4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK4ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKVhjG4ubj)}(hhh]j{)}(hthe minor numberh]hthe minor number}(hjf4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjb4hKVhjc4ubah}(h]h ]h"]h$]h&]uh1jhjG4ubeh}(h]h ]h"]h$]h&]uh1jhjb4hKVhjD4ubj)}(h1``int type`` device type (SNDRV_DEVICE_TYPE_XXX) h](j)}(h ``int type``h]j)}(hj4h]hint type}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKWhj4ubj)}(hhh]j{)}(h#device type (SNDRV_DEVICE_TYPE_XXX)h]h#device type (SNDRV_DEVICE_TYPE_XXX)}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj4hKWhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hKWhjD4ubeh}(h]h ]h"]h$]h&]uh1jhj(4ubj{)}(h**Description**h]j)}(hj4h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKYhj(4ubj{)}(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&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKXhj(4ubj{)}(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&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK[hj(4ubj{)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK_hj(4ubj{)}(hKThe user data pointer if the specified device is found. ``NULL`` otherwise.h](h8The user data pointer if the specified device is found. }(hj 5hhhNhNubj)}(h``NULL``h]hNULL}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 5ubh otherwise.}(hj 5hhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chK`hj(4ubeh}(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](j)}(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]j )}(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](j)}(hinth]hint}(hjN5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ5hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKubj")}(h h]h }(hj]5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJ5hhhj\5hKubj3)}(hsnd_register_deviceh]j9)}(hsnd_register_deviceh]hsnd_register_device}(hjo5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjk5ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjJ5hhhj\5hKubjT)}(hz(int type, struct snd_card *card, int dev, const struct file_operations *f_ops, void *private_data, struct device *device)h](jZ)}(hint typeh](j)}(hinth]hint}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj")}(h h]h }(hj5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubj9)}(htypeh]htype}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubjZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj5hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj5ubj")}(h h]h }(hj5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]j)}jjq5sbc.snd_register_deviceasbuh1hhj5ubj")}(h h]h }(hj5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubj)}(hjh]h*}(hj 6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj9)}(hcardh]hcard}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubjZ)}(hint devh](j)}(hinth]hint}(hj26hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.6ubj")}(h h]h }(hj@6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.6ubj9)}(hdevh]hdev}(hjN6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubjZ)}(h#const struct file_operations *f_opsh](j`)}(hjph]hconst}(hjg6hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjc6ubj")}(h h]h }(hjt6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjc6ubj`)}(hjch]hstruct}(hj6hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjc6ubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjc6ubh)}(hhh]j9)}(hfile_operationsh]hfile_operations}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j5c.snd_register_deviceasbuh1hhjc6ubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjc6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc6ubj9)}(hf_opsh]hf_ops}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjc6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubjZ)}(hvoid *private_datah](j)}(hvoidh]hvoid}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj9)}(h private_datah]h private_data}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubjZ)}(hstruct device *deviceh](j`)}(hjch]hstruct}(hj47hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj07ubj")}(h h]h }(hjA7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj07ubh)}(hhh]j9)}(hdeviceh]hdevice}(hjR7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjO7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjT7modnameN classnameNjj)}j]j5c.snd_register_deviceasbuh1hhj07ubj")}(h h]h }(hjp7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj07ubj)}(hjh]h*}(hj~7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj07ubj9)}(hdeviceh]hdevice}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj07ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjJ5hhhj\5hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjF5hhhj\5hKubah}(h]jA5ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj\5hKhjC5hhubjv)}(hhh]j{)}(h*Register the ALSA device file for the cardh]h*Register the ALSA device file for the card}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7hhubah}(h]h ]h"]h$]h&]uh1juhjC5hhhj\5hKubeh}(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](j{)}(h**Parameters**h]j)}(hj7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhc/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]j{)}(h&the device type, SNDRV_DEVICE_TYPE_XXXh]h&the device type, SNDRV_DEVICE_TYPE_XXX}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 8hKhj 8ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj 8hKhj7ubj)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj/8h]hstruct snd_card *card}(hj18hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-8ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj)8ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjH8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjD8hKhjE8ubah}(h]h ]h"]h$]h&]uh1jhj)8ubeh}(h]h ]h"]h$]h&]uh1jhjD8hKhj7ubj)}(h``int dev`` the device index h](j)}(h ``int dev``h]j)}(hjh8h]hint dev}(hjj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf8ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhjb8ubj)}(hhh]j{)}(hthe device indexh]hthe device index}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj}8hKhj~8ubah}(h]h ]h"]h$]h&]uh1jhjb8ubeh}(h]h ]h"]h$]h&]uh1jhj}8hKhj7ubj)}(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]j{)}(hthe file operationsh]hthe file operations}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj8hKhj8ubah}(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]j{)}(huser pointer for f_ops->open()h]huser pointer for f_ops->open()}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj8hKhj8ubah}(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)}(hj9h]hstruct device *device}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj 9ubj)}(hhh]j{)}(hthe device to registerh]hthe device to register}(hj,9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj(9hKhj)9ubah}(h]h ]h"]h$]h&]uh1jhj 9ubeh}(h]h ]h"]h$]h&]uh1jhj(9hKhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubj{)}(h**Description**h]j)}(hjN9h]h Description}(hjP9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL9ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj{)}(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.}(hjd9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj{)}(h **Return**h]j)}(hju9h]hReturn}(hjw9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs9ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chKhj7ubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/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](j)}(h.int snd_unregister_device (struct device *dev)h]j )}(h-int snd_unregister_device(struct device *dev)h](j)}(hinth]hint}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM*ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9hhhj9hM*ubj3)}(hsnd_unregister_deviceh]j9)}(hsnd_unregister_deviceh]hsnd_unregister_device}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj9hhhj9hM*ubjT)}(h(struct device *dev)h]jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hj9hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj9ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jj9sbc.snd_unregister_deviceasbuh1hhj9ubj")}(h h]h }(hj5:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9ubj)}(hjh]h*}(hjC:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj9)}(hdevh]hdev}(hjP:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj9ubah}(h]h ]h"]h$]h&]jQjRuh1jShj9hhhj9hM*ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj9hhhj9hM*ubah}(h]j9ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj9hM*hj9hhubjv)}(hhh]j{)}(h'unregister the device on the given cardh]h'unregister the device on the given card}(hjz:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM*hjw:hhubah}(h]h ]h"]h$]h&]uh1juhj9hhhj9hM*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](j{)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jzhc/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]j{)}(hthe device instanceh]hthe device instance}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj: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:ubj{)}(h**Description**h]j)}(hj:h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM-hj:ubj{)}(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&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM,hj:ubj{)}(h **Return**h]j)}(hj;h]hReturn}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM/hj:ubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hj3;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:18: ./sound/core/sound.chM0hj: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}(hjT;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ;hhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_user_fromio (C function)c.copy_to_user_fromiohNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hZint copy_to_user_fromio (void __user *dst, const volatile void __iomem *src, size_t count)h]j )}(hYint copy_to_user_fromio(void __user *dst, volatile const void __iomem *src, size_t count)h](j)}(hinth]hint}(hj{;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw;hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjw;hhhj;hKubj3)}(hcopy_to_user_fromioh]j9)}(hcopy_to_user_fromioh]hcopy_to_user_fromio}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjw;hhhj;hKubjT)}(hB(void __user *dst, volatile const void __iomem *src, size_t count)h](jZ)}(hvoid __user *dsth](j)}(hvoidh]hvoid}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubh__user}(hj;hhhNhNubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj9)}(hdsth]hdst}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubjZ)}(h volatile const void __iomem *srch](j`)}(hvolatileh]hvolatile}(hj <hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<ubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj`)}(hjph]hconst}(hj(<hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<ubj")}(h h]h }(hj5<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj)}(hvoidh]hvoid}(hjC<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj")}(h h]h }(hjQ<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubh__iomem}(hj<hhhNhNubj")}(h h]h }(hjc<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj)}(hjh]h*}(hjq<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj9)}(hsrch]hsrc}(hj~<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubjZ)}(h size_t counth](h)}(hhh]j9)}(hsize_th]hsize_t}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<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 ]j.ah"]h$]h&]uh1j!hj<ubj9)}(hcounth]hcount}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjw;hhhj;hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjs;hhhj;hKubah}(h]jn;ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj;hKhjp;hhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj<hhubah}(h]h ]h"]h$]h&]uh1juhjp;hhhj;hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj =jj =jjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jzhd/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)}(hj3=h]hvoid __user *dst}(hj5=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj-=ubj)}(hhh]j{)}(h%the destination pointer on user-spaceh]h%the destination pointer on user-space}(hjL=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjH=hKhjI=ubah}(h]h ]h"]h$]h&]uh1jhj-=ubeh}(h]h ]h"]h$]h&]uh1jhjH=hKhj*=ubj)}(h@``const volatile void __iomem *src`` the source pointer on mmio h](j)}(h$``const volatile void __iomem *src``h]j)}(hjl=h]h const volatile void __iomem *src}(hjn=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhjf=ubj)}(hhh]j{)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj=hKhj=ubah}(h]h ]h"]h$]h&]uh1jhjf=ubeh}(h]h ]h"]h$]h&]uh1jhj=hKhj*=ubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hj=h]h size_t count}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubj)}(hhh]j{)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj=hKhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hKhj*=ubeh}(h]h ]h"]h$]h&]uh1jhj=ubj{)}(h**Description**h]j)}(hj=h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubj{)}(h **Return**h]j)}(hj>h]hReturn}(hj >hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_to_iter_fromio (C function)c.copy_to_iter_fromiohNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hXsize_t copy_to_iter_fromio (const void __iomem *src, size_t count, struct iov_iter *dst)h]j )}(hWsize_t copy_to_iter_fromio(const void __iomem *src, size_t count, struct iov_iter *dst)h](h)}(hhh]j9)}(hsize_th]hsize_t}(hjO>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjL>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQ>modnameN classnameNjj)}j]j)}jcopy_to_iter_fromiosbc.copy_to_iter_fromioasbuh1hhjH>hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%ubj")}(h h]h }(hjq>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjH>hhhjp>hK%ubj3)}(hcopy_to_iter_fromioh]j9)}(hjm>h]hcopy_to_iter_fromio}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjH>hhhjp>hK%ubjT)}(h=(const void __iomem *src, size_t count, struct iov_iter *dst)h](jZ)}(hconst void __iomem *srch](j`)}(hjph]hconst}(hj>hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj>ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubj)}(hvoidh]hvoid}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubh__iomem}(hj>hhhNhNubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj9)}(hsrch]hsrc}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubjZ)}(h size_t counth](h)}(hhh]j9)}(hsize_th]hsize_t}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]jk>c.copy_to_iter_fromioasbuh1hhj ?ubj")}(h h]h }(hj.?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ?ubj9)}(hcounth]hcount}(hjubjZ)}(hstruct iov_iter *dsth](j`)}(hjch]hstruct}(hjU?hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjQ?ubj")}(h h]h }(hjb?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQ?ubh)}(hhh]j9)}(hiov_iterh]hiov_iter}(hjs?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjp?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetju?modnameN classnameNjj)}j]jk>c.copy_to_iter_fromioasbuh1hhjQ?ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQ?ubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ?ubj9)}(hdsth]hdst}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQ?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjH>hhhjp>hK%ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjD>hhhjp>hK%ubah}(h]j?>ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjp>hK%hjA>hhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK%hj?hhubah}(h]h ]h"]h$]h&]uh1juhjA>hhhjp>hK%ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe source pointer on mmioh]hthe source pointer on mmio}(hj0@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj,@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)}(hjP@h]h size_t count}(hjR@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN@ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK'hjJ@ubj)}(hhh]j{)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hji@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhje@hK'hjf@ubah}(h]h ]h"]h$]h&]uh1jhjJ@ubeh}(h]h ]h"]h$]h&]uh1jhje@hK'hj@ubj)}(h2``struct iov_iter *dst`` the destination iov_iter h](j)}(h``struct iov_iter *dst``h]j)}(hj@h]hstruct iov_iter *dst}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK(hj@ubj)}(hhh]j{)}(hthe destination iov_iterh]hthe destination iov_iter}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@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?ubj{)}(h**Description**h]j)}(hj@h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK*hj?ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK)hj?ubj{)}(h **Return**h]j)}(hj@h]hReturn}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK+hj?ubj{)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK,hj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_user_toio (C function)c.copy_from_user_toiohNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hZint copy_from_user_toio (volatile void __iomem *dst, const void __user *src, size_t count)h]j )}(hYint copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count)h](j)}(hinth]hint}(hj0AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,Ahhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHubj")}(h h]h }(hj?AhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,Ahhhj>AhKHubj3)}(hcopy_from_user_toioh]j9)}(hcopy_from_user_toioh]hcopy_from_user_toio}(hjQAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMAubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj,Ahhhj>AhKHubjT)}(hB(volatile void __iomem *dst, const void __user *src, size_t count)h](jZ)}(hvolatile void __iomem *dsth](j`)}(hj<h]hvolatile}(hjmAhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjiAubj")}(h h]h }(hjzAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjiAubj)}(hvoidh]hvoid}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiAubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjiAubh__iomem}(hjiAhhhNhNubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjiAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiAubj9)}(hdsth]hdst}(hjAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjiAubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeAubjZ)}(hconst void __user *srch](j`)}(hjph]hconst}(hjAhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjAubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAubj)}(hvoidh]hvoid}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj")}(h h]h }(hjBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAubh__user}(hjAhhhNhNubj")}(h h]h }(hjBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAubj)}(hjh]h*}(hj%BhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj9)}(hsrch]hsrc}(hj2BhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeAubjZ)}(h size_t counth](h)}(hhh]j9)}(hsize_th]hsize_t}(hjNBhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPBmodnameN classnameNjj)}j]j)}jjSAsbc.copy_from_user_toioasbuh1hhjGBubj")}(h h]h }(hjnBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGBubj9)}(hcounth]hcount}(hj|BhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGBubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeAubeh}(h]h ]h"]h$]h&]jQjRuh1jShj,Ahhhj>AhKHubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj(Ahhhj>AhKHubah}(h]j#Aah ](jmjneh"]h$]h&]jrjs)jthuh1jhj>AhKHhj%Ahhubjv)}(hhh]j{)}(h'copy data from user-space to mmio-spaceh]h'copy data from user-space to mmio-space}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKHhjBhhubah}(h]h ]h"]h$]h&]uh1juhj%Ahhhj>AhKHubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hjBh]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBhKIhjBubah}(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}(hj"ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKJhjCubj)}(hhh]j{)}(h the source pointer on user-spaceh]h the source pointer on user-space}(hj9ChhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj5ChKJhj6Cubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj5ChKJhjBubj)}(h0``size_t count`` the data size to copy in bytes h](j)}(h``size_t count``h]j)}(hjYCh]h size_t count}(hj[ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWCubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKKhjSCubj)}(hhh]j{)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjrChhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjnChKKhjoCubah}(h]h ]h"]h$]h&]uh1jhjSCubeh}(h]h ]h"]h$]h&]uh1jhjnChKKhjBubeh}(h]h ]h"]h$]h&]uh1jhjBubj{)}(h**Description**h]j)}(hjCh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKMhjBubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKLhjBubj{)}(h **Return**h]j)}(hjCh]hReturn}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKNhjBubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKOhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h copy_from_iter_toio (C function)c.copy_from_iter_toiohNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hRsize_t copy_from_iter_toio (void __iomem *dst, size_t count, struct iov_iter *src)h]j )}(hQsize_t copy_from_iter_toio(void __iomem *dst, size_t count, struct iov_iter *src)h](h)}(hhh]j9)}(hsize_th]hsize_t}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN 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 }(hj%DhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjChhhj$DhK^ubj3)}(hcopy_from_iter_toioh]j9)}(hj!Dh]hcopy_from_iter_toio}(hj7DhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3Dubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjChhhj$DhK^ubjT)}(h7(void __iomem *dst, size_t count, struct iov_iter *src)h](jZ)}(hvoid __iomem *dsth](j)}(hvoidh]hvoid}(hjRDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNDubj")}(h h]h }(hj`DhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNDubh__iomem}(hjNDhhhNhNubj")}(h h]h }(hjrDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNDubj9)}(hdsth]hdst}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjNDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJDubjZ)}(h size_t counth](h)}(hhh]j9)}(hsize_th]hsize_t}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]jDc.copy_from_iter_toioasbuh1hhjDubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubj9)}(hcounth]hcount}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJDubjZ)}(hstruct iov_iter *srch](j`)}(hjch]hstruct}(hjDhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjDubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubh)}(hhh]j9)}(hiov_iterh]hiov_iter}(hj EhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Eubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jDc.copy_from_iter_toioasbuh1hhjDubj")}(h h]h }(hj*EhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubj)}(hjh]h*}(hj8EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj9)}(hsrch]hsrc}(hjEEhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJDubeh}(h]h ]h"]h$]h&]jQjRuh1jShjChhhj$DhK^ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjChhhj$DhK^ubah}(h]jCah ](jmjneh"]h$]h&]jrjs)jthuh1jhj$DhK^hjChhubjv)}(hhh]j{)}(h%copy data from iov_iter to mmio-spaceh]h%copy data from iov_iter to mmio-space}(hjoEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chK^hjlEhhubah}(h]h ]h"]h$]h&]uh1juhjChhhj$DhK^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjEjjEjjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKbhjEubj)}(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]j{)}(h%the destination pointer on mmio-spaceh]h%the destination pointer on mmio-space}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjEhK_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]j{)}(hthe data size to copy in bytesh]hthe data size to copy in bytes}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjEhK`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)}(hj"Fh]hstruct iov_iter *src}(hj$FhhhNhNubah}(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]j{)}(hthe source iov_iterh]hthe source iov_iter}(hj;FhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj7FhKahj8Fubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhj7FhKahjEubeh}(h]h ]h"]h$]h&]uh1jhjEubj{)}(h**Description**h]j)}(hj]Fh]h Description}(hj_FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Fubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKchjEubj{)}(h,Copies the data from iov_iter to mmio-space.h]h,Copies the data from iov_iter to mmio-space.}(hjsFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKbhjEubj{)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKdhjEubj{)}(hnumber of bytes to be copiedh]hnumber of bytes to be copied}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:22: ./sound/core/memory.chKehjEubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dma_alloc_dir_pages (C function)c.snd_dma_alloc_dir_pageshNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1ubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFhhhjFhK1ubj3)}(hsnd_dma_alloc_dir_pagesh]j9)}(hsnd_dma_alloc_dir_pagesh]hsnd_dma_alloc_dir_pages}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjFhhhjFhK1ubjT)}(hh(int type, struct device *device, enum dma_data_direction dir, size_t size, struct snd_dma_buffer *dmab)h](jZ)}(hint typeh](j)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj9)}(htypeh]htype}(hj"GhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubjZ)}(hstruct device *deviceh](j`)}(hjch]hstruct}(hj;GhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7Gubj")}(h h]h }(hjHGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7Gubh)}(hhh]j9)}(hdeviceh]hdevice}(hjYGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjVGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[GmodnameN classnameNjj)}j]j)}jjFsbc.snd_dma_alloc_dir_pagesasbuh1hhj7Gubj")}(h h]h }(hjyGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7Gubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7Gubj9)}(hdeviceh]hdevice}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7Gubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubjZ)}(henum dma_data_direction dirh](j`)}(hj(h]henum}(hjGhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubh)}(hhh]j9)}(hdma_data_directionh]hdma_data_direction}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]juGc.snd_dma_alloc_dir_pagesasbuh1hhjGubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj9)}(hdirh]hdir}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]juGc.snd_dma_alloc_dir_pagesasbuh1hhj Hubj")}(h h]h }(hj1HhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj Hubj9)}(hsizeh]hsize}(hj?HhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Hubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubjZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hjXHhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjTHubj")}(h h]h }(hjeHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjTHubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjvHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjsHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxHmodnameN classnameNjj)}j]juGc.snd_dma_alloc_dir_pagesasbuh1hhjTHubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjTHubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTHubj9)}(hdmabh]hdmab}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTHubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubeh}(h]h ]h"]h$]h&]jQjRuh1jShjFhhhjFhK1ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjFhhhjFhK1ubah}(h]jFah ](jmjneh"]h$]h&]jrjs)jthuh1jhjFhK1hjFhhubjv)}(hhh]j{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK1hjHhhubah}(h]h ]h"]h$]h&]uh1juhjFhhhjFhK1ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(hthe DMA buffer typeh]hthe DMA buffer type}(hj3IhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/IhK3hj0Iubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhj/IhK3hjIubj)}(h-``struct device *device`` the device pointer h](j)}(h``struct device *device``h]j)}(hjSIh]hstruct device *device}(hjUIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQIubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK4hjMIubj)}(hhh]j{)}(hthe device pointerh]hthe device pointer}(hjlIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhIhK4hjiIubah}(h]h ]h"]h$]h&]uh1jhjMIubeh}(h]h ]h"]h$]h&]uh1jhjhIhK4hjIubj)}(h.``enum dma_data_direction dir`` DMA direction h](j)}(h``enum dma_data_direction dir``h]j)}(hjIh]henum dma_data_direction dir}(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.chK5hjIubj)}(hhh]j{)}(h DMA directionh]h DMA direction}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjIhK5hjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhK5hjIubj)}(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]j{)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjIhK6hjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhK6hjIubj)}(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}(hjJhhhNhNubah}(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]j{)}(h4buffer allocation record to store the allocated datah]h4buffer allocation record to store the allocated data}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjJhK7hjJubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjJhK7hjIubeh}(h]h ]h"]h$]h&]uh1jhjHubj{)}(h**Description**h]j)}(hj9Jh]h Description}(hj;JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Jubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK9hjHubj{)}(hFCalls the memory-allocator function for the corresponding buffer type.h]hFCalls the memory-allocator function for the corresponding buffer type.}(hjOJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK8hjHubj{)}(h **Return**h]j)}(hj`Jh]hReturn}(hjbJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^Jubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chK;hjHubj{)}(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.}(hjvJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKMh]hstruct snd_dma_buffer *dmab}(hj@MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQhhubah}(h]h ]h"]h$]h&]uh1juhj[OhhhjsOhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYQjjYQjjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hjcQh]h Parameters}(hjeQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaQubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubj)}(hhh](j)}(h*``struct device *dev`` the device pointer h](j)}(h``struct device *dev``h]j)}(hjQh]hstruct device *dev}(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.chKhj|Qubj)}(hhh]j{)}(hthe device pointerh]hthe device pointer}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhj|Qubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjyQubj)}(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]j{)}(hthe DMA buffer typeh]hthe DMA buffer type}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjQhKhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhjyQubj)}(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]j{)}(h DMA directionh]h DMA direction}(hj RhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj RhKhj Rubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhj RhKhjyQubj)}(h,``size_t size`` the buffer size to allocate h](j)}(h``size_t size``h]j)}(hj-Rh]h size_t size}(hj/RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Rubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj'Rubj)}(hhh]j{)}(hthe buffer size to allocateh]hthe buffer size to allocate}(hjFRhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBRhKhjCRubah}(h]h ]h"]h$]h&]uh1jhj'Rubeh}(h]h ]h"]h$]h&]uh1jhjBRhKhjyQubeh}(h]h ]h"]h$]h&]uh1jhj]Qubj{)}(h**Description**h]j)}(hjhRh]h Description}(hjjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfRubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubj{)}(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.}(hj~RhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubj{)}(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.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubj{)}(h **Return**h]j)}(hjRh]hReturn}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj]Qubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_mmap (C function)c.snd_dma_buffer_mmaphNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hRint snd_dma_buffer_mmap (struct snd_dma_buffer *dmab, struct vm_area_struct *area)h]j )}(hQint snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](j)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRhhhjRhKubj3)}(hsnd_dma_buffer_mmaph]j9)}(hsnd_dma_buffer_mmaph]hsnd_dma_buffer_mmap}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjRhhhjRhKubjT)}(h:(struct snd_dma_buffer *dmab, struct vm_area_struct *area)h](jZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hj ShhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjSubj")}(h h]h }(hj-ShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj>ShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;Subah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@SmodnameN classnameNjj)}j]j)}jjSsbc.snd_dma_buffer_mmapasbuh1hhjSubj")}(h h]h }(hj^ShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubj)}(hjh]h*}(hjlShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj9)}(hdmabh]hdmab}(hjyShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjSubjZ)}(hstruct vm_area_struct *areah](j`)}(hjch]hstruct}(hjShhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjSubj")}(h h]h }(hjShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubh)}(hhh]j9)}(hvm_area_structh]hvm_area_struct}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNjj)}j]jZSc.snd_dma_buffer_mmapasbuh1hhjSubj")}(h h]h }(hjShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj9)}(hareah]harea}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjSubeh}(h]h ]h"]h$]h&]jQjRuh1jShjRhhhjRhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjRhhhjRhKubah}(h]jRah ](jmjneh"]h$]h&]jrjs)jthuh1jhjRhKhjRhhubjv)}(hhh]j{)}(h$perform mmap of the given DMA bufferh]h$perform mmap of the given DMA buffer}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjThhubah}(h]h ]h"]h$]h&]uh1juhjRhhhjRhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+Tjj+Tjjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hj5Th]h Parameters}(hj7ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3Tubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj/Tubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjTTh]hstruct snd_dma_buffer *dmab}(hjVThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjNTubj)}(hhh]j{)}(hbuffer allocation informationh]hbuffer allocation information}(hjmThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjiThKhjjTubah}(h]h ]h"]h$]h&]uh1jhjNTubeh}(h]h ]h"]h$]h&]uh1jhjiThKhjKTubj)}(h4``struct vm_area_struct *area`` VM area information h](j)}(h``struct vm_area_struct *area``h]j)}(hjTh]hstruct vm_area_struct *area}(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:23: ./sound/core/memalloc.chKhjTubj)}(hhh]j{)}(hVM area informationh]hVM area information}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhjKTubeh}(h]h ]h"]h$]h&]uh1jhj/Tubj{)}(h **Return**h]j)}(hjTh]hReturn}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj/Tubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj/Tubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_dma_buffer_sync (C function)c.snd_dma_buffer_synchNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hSvoid snd_dma_buffer_sync (struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h]j )}(hRvoid snd_dma_buffer_sync(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](j)}(hvoidh]hvoid}(hj UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Uhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj UhhhjUhKubj3)}(hsnd_dma_buffer_synch]j9)}(hsnd_dma_buffer_synch]hsnd_dma_buffer_sync}(hj.UhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*Uubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj UhhhjUhKubjT)}(h:(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode)h](jZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hjJUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjFUubj")}(h h]h }(hjWUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFUubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjhUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjUmodnameN classnameNjj)}j]j)}jj0Usbc.snd_dma_buffer_syncasbuh1hhjFUubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFUubj9)}(hdmabh]hdmab}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjBUubjZ)}(henum snd_dma_sync_mode modeh](j`)}(hj(h]henum}(hjUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjUubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubh)}(hhh]j9)}(hsnd_dma_sync_modeh]hsnd_dma_sync_mode}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]jUc.snd_dma_buffer_syncasbuh1hhjUubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubj9)}(hmodeh]hmode}(hjVhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjBUubeh}(h]h ]h"]h$]h&]jQjRuh1jShj UhhhjUhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjUhhhjUhKubah}(h]jUah ](jmjneh"]h$]h&]jrjs)jthuh1jhjUhKhjUhhubjv)}(hhh]j{)}(h&sync DMA buffer between CPU and deviceh]h&sync DMA buffer between CPU and device}(hj0VhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj-Vhhubah}(h]h ]h"]h$]h&]uh1juhjUhhhjUhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHVjjHVjjjuh1hhhhjQ;hNhNubj)}(h|**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``enum snd_dma_sync_mode mode`` sync modeh](j{)}(h**Parameters**h]j)}(hjRVh]h Parameters}(hjTVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPVubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjLVubj)}(hhh](j)}(h>``struct snd_dma_buffer *dmab`` buffer allocation information h](j)}(h``struct snd_dma_buffer *dmab``h]j)}(hjqVh]hstruct snd_dma_buffer *dmab}(hjsVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjkVubj)}(hhh]j{)}(hbuffer allocation informationh]hbuffer allocation information}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjkVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjhVubj)}(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]j{)}(h sync modeh]h sync mode}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1jhjVhKhjhVubeh}(h]h ]h"]h$]h&]uh1jhjLVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_addr (C function)c.snd_sgbuf_get_addrhNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hJdma_addr_t snd_sgbuf_get_addr (struct snd_dma_buffer *dmab, size_t offset)h]j )}(hIdma_addr_t snd_sgbuf_get_addr(struct snd_dma_buffer *dmab, size_t offset)h](h)}(hhh]j9)}(h dma_addr_th]h dma_addr_t}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj WmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_addrsbc.snd_sgbuf_get_addrasbuh1hhjWhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj")}(h h]h }(hj)WhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWhhhj(WhKubj3)}(hsnd_sgbuf_get_addrh]j9)}(hj%Wh]hsnd_sgbuf_get_addr}(hj;WhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7Wubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjWhhhj(WhKubjT)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hjVWhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjRWubj")}(h h]h }(hjcWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRWubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjtWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvWmodnameN classnameNjj)}j]j#Wc.snd_sgbuf_get_addrasbuh1hhjRWubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRWubj9)}(hdmabh]hdmab}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjNWubjZ)}(h size_t offseth](h)}(hhh]j9)}(hsize_th]hsize_t}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j#Wc.snd_sgbuf_get_addrasbuh1hhjWubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj9)}(hoffseth]hoffset}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjNWubeh}(h]h ]h"]h$]h&]jQjRuh1jShjWhhhj(WhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjVhhhj(WhKubah}(h]jVah ](jmjneh"]h$]h&]jrjs)jthuh1jhj(WhKhjVhhubjv)}(hhh]j{)}(h7return the physical address at the corresponding offseth]h7return the physical address at the corresponding offset}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjXhhubah}(h]h ]h"]h$]h&]uh1juhjVhhhj(WhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7Xjj7Xjjjuh1hhhhjQ;hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``size_t offset`` offset in the ring buffer **Return** the physical addressh](j{)}(h**Parameters**h]j)}(hjAXh]h Parameters}(hjCXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?Xubah}(h]h ]h"]h$]h&]uh1jzhf/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)}(hj`Xh]hstruct snd_dma_buffer *dmab}(hjbXhhhNhNubah}(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:23: ./sound/core/memalloc.chKhjZXubj)}(hhh]j{)}(hbuffer allocation informationh]hbuffer allocation information}(hjyXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjuXhKhjvXubah}(h]h ]h"]h$]h&]uh1jhjZXubeh}(h]h ]h"]h$]h&]uh1jhjuXhKhjWXubj)}(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]j{)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjXhKhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjWXubeh}(h]h ]h"]h$]h&]uh1jhj;Xubj{)}(h **Return**h]j)}(hjXh]hReturn}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj;Xubj{)}(hthe physical addressh]hthe physical address}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhj;Xubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_sgbuf_get_page (C function)c.snd_sgbuf_get_pagehNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hMstruct page * snd_sgbuf_get_page (struct snd_dma_buffer *dmab, size_t offset)h]j )}(hKstruct page *snd_sgbuf_get_page(struct snd_dma_buffer *dmab, size_t offset)h](j`)}(hjch]hstruct}(hjYhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjYhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKubj")}(h h]h }(hj'YhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYhhhj&YhKubh)}(hhh]j9)}(hpageh]hpage}(hj8YhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:YmodnameN classnameNjj)}j]j)}jsnd_sgbuf_get_pagesbc.snd_sgbuf_get_pageasbuh1hhjYhhhj&YhKubj")}(h h]h }(hjYYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYhhhj&YhKubj)}(hjh]h*}(hjgYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhj&YhKubj3)}(hsnd_sgbuf_get_pageh]j9)}(hjVYh]hsnd_sgbuf_get_page}(hjxYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtYubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjYhhhj&YhKubjT)}(h,(struct snd_dma_buffer *dmab, size_t offset)h](jZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hjYhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjYubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]jTYc.snd_sgbuf_get_pageasbuh1hhjYubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj9)}(hdmabh]hdmab}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjYubjZ)}(h size_t offseth](h)}(hhh]j9)}(hsize_th]hsize_t}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jTYc.snd_sgbuf_get_pageasbuh1hhjYubj")}(h h]h }(hj$ZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj9)}(hoffseth]hoffset}(hj2ZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjYubeh}(h]h ]h"]h$]h&]jQjRuh1jShjYhhhj&YhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjYhhhj&YhKubah}(h]j Yah ](jmjneh"]h$]h&]jrjs)jthuh1jhj&YhKhjYhhubjv)}(hhh]j{)}(h4return the physical page at the corresponding offseth]h4return the physical page at the corresponding offset}(hj\ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjYZhhubah}(h]h ]h"]h$]h&]uh1juhjYhhhj&YhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtZjjtZjjjuh1hhhhjQ;hNhNubj)}(h**Parameters** ``struct snd_dma_buffer *dmab`` buffer allocation information ``size_t offset`` offset in the ring buffer **Return** the page pointerh](j{)}(h**Parameters**h]j)}(hj~Zh]h Parameters}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Zubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjxZubj)}(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]j{)}(hbuffer allocation informationh]hbuffer allocation information}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZhKhjZubah}(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]j{)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubeh}(h]h ]h"]h$]h&]uh1jhjxZubj{)}(h **Return**h]j)}(hj[h]hReturn}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjxZubj{)}(hthe page pointerh]hthe page pointer}(hj'[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chKhjxZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_sgbuf_get_chunk_size (C function)c.snd_sgbuf_get_chunk_sizehNtauh1hhjQ;hhhNhNubh)}(hhh](j)}(hhunsigned int snd_sgbuf_get_chunk_size (struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h]j )}(hgunsigned int snd_sgbuf_get_chunk_size(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](j)}(hunsignedh]hunsigned}(hjV[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR[hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMubj")}(h h]h }(hje[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjR[hhhjd[hMubj)}(hinth]hint}(hjs[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR[hhhjd[hMubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjR[hhhjd[hMubj3)}(hsnd_sgbuf_get_chunk_sizeh]j9)}(hsnd_sgbuf_get_chunk_sizeh]hsnd_sgbuf_get_chunk_size}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjR[hhhjd[hMubjT)}(hB(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size)h](jZ)}(hstruct snd_dma_buffer *dmabh](j`)}(hjch]hstruct}(hj[hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[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 ]j.ah"]h$]h&]uh1j!hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hdmabh]hdmab}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj[ubjZ)}(hunsigned int ofsh](j)}(hunsignedh]hunsigned}(hj!\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj")}(h h]h }(hj/\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj\ubj)}(hinth]hint}(hj=\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj")}(h h]h }(hjK\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj\ubj9)}(hofsh]hofs}(hjY\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj\ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj[ubjZ)}(hunsigned int sizeh](j)}(hunsignedh]hunsigned}(hjr\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn\ubj")}(h h]h }(hj\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn\ubj)}(hinth]hint}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn\ubj")}(h h]h }(hj\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn\ubj9)}(hsizeh]hsize}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjn\ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj[ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjR[hhhjd[hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjN[hhhjd[hMubah}(h]jI[ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjd[hMhjK[hhubjv)}(hhh]j{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chMhj\hhubah}(h]h ]h"]h$]h&]uh1juhjK[hhhjd[hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjQ;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](j{)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(hbuffer allocation informationh]hbuffer allocation information}(hj.]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*]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)}(hjN]h]hunsigned int ofs}(hjP]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hjH]ubj)}(hhh]j{)}(hoffset in the ring bufferh]hoffset in the ring buffer}(hjg]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjc]hM hjd]ubah}(h]h ]h"]h$]h&]uh1jhjH]ubeh}(h]h ]h"]h$]h&]uh1jhjc]hM hj ]ubj)}(h)``unsigned int size`` the requested size h](j)}(h``unsigned int size``h]j)}(hj]h]hunsigned int size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj]ubj)}(hhh]j{)}(hthe requested sizeh]hthe requested size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]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\ubj{)}(h **Return**h]j)}(hj]h]hReturn}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj\ubj{)}(hthe chunk sizeh]hthe chunk size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:23: ./sound/core/memalloc.chM hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjQ;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](j)}(h:const char * snd_pcm_format_name (snd_pcm_format_t format)h]j )}(h8const char *snd_pcm_format_name(snd_pcm_format_t format)h](j`)}(hjph]hconst}(hj9^hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj5^hhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKubj")}(h h]h }(hjG^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5^hhhjF^hKubj)}(hcharh]hchar}(hjU^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5^hhhjF^hKubj")}(h h]h }(hjc^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5^hhhjF^hKubj)}(hjh]h*}(hjq^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5^hhhjF^hKubj3)}(hsnd_pcm_format_nameh]j9)}(hsnd_pcm_format_nameh]hsnd_pcm_format_name}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~^ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj5^hhhjF^hKubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj^sbc.snd_pcm_format_nameasbuh1hhj^ubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^ubj9)}(hformath]hformat}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj^ubah}(h]h ]h"]h$]h&]jQjRuh1jShj5^hhhjF^hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj1^hhhjF^hKubah}(h]j,^ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjF^hKhj.^hhubjv)}(hhh]j{)}(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&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj^hhubah}(h]h ]h"]h$]h&]uh1juhj.^hhhjF^hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhj^hNhNubj)}(h\**Parameters** ``snd_pcm_format_t format`` PCM format **Return** the format name stringh](j{)}(h**Parameters**h]j)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jzha/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&]uh1jhj8_ubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj4_ubj)}(hhh]j{)}(h PCM formath]h PCM format}(hjS_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjO_hKhjP_ubah}(h]h ]h"]h$]h&]uh1jhj4_ubeh}(h]h ]h"]h$]h&]uh1jhjO_hKhj1_ubah}(h]h ]h"]h$]h&]uh1jhj_ubj{)}(h **Return**h]j)}(hju_h]hReturn}(hjw_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs_ubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chKhj_ubj{)}(hthe format name stringh]hthe format name string}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/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](j)}(hMint snd_pcm_new_stream (struct snd_pcm *pcm, int stream, int substream_count)h]j )}(hLint snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)h](j)}(hinth]hint}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_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 ]j.ah"]h$]h&]uh1j!hj_hhhj_hMgubj3)}(hsnd_pcm_new_streamh]j9)}(hsnd_pcm_new_streamh]hsnd_pcm_new_stream}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj_hhhj_hMgubjT)}(h6(struct snd_pcm *pcm, int stream, int substream_count)h](jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hj_hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj_ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj_sbc.snd_pcm_new_streamasbuh1hhj_ubj")}(h h]h }(hj5`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj)}(hjh]h*}(hjC`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj9)}(hpcmh]hpcm}(hjP`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(h int streamh](j)}(hinth]hint}(hji`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje`ubj")}(h h]h }(hjw`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hje`ubj9)}(hstreamh]hstream}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hje`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(hint substream_counth](j)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj9)}(hsubstream_counth]hsubstream_count}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj_hhhj_hMgubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj_hhhj_hMgubah}(h]j_ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj_hMghj_hhubjv)}(hhh]j{)}(hcreate a new PCM streamh]hcreate a new PCM stream}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMghj`hhubah}(h]h ]h"]h$]h&]uh1juhj_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](j{)}(h**Parameters**h]j)}(hjah]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMkhjaubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj%ah]hstruct snd_pcm *pcm}(hj'ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#aubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhhjaubj)}(hhh]j{)}(hthe pcm instanceh]hthe pcm instance}(hj>ahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj:ahMhhj;aubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj:ahMhhjaubj)}(h:``int stream`` the stream direction, SNDRV_PCM_STREAM_XXX h](j)}(h``int stream``h]j)}(hj^ah]h int stream}(hj`ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\aubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMihjXaubj)}(hhh]j{)}(h*the stream direction, SNDRV_PCM_STREAM_XXXh]h*the stream direction, SNDRV_PCM_STREAM_XXX}(hjwahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjsahMihjtaubah}(h]h ]h"]h$]h&]uh1jhjXaubeh}(h]h ]h"]h$]h&]uh1jhjsahMihjaubj)}(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.chMjhjaubj)}(hhh]j{)}(hthe number of substreamsh]hthe number of substreams}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjahMjhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahMjhjaubeh}(h]h ]h"]h$]h&]uh1jhjaubj{)}(h**Description**h]j)}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMlhjaubj{)}(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&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMkhjaubj{)}(h **Return**h]j)}(hjah]hReturn}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMphjaubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMqhjaubeh}(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](j)}(hint snd_pcm_new (struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h]j )}(hint snd_pcm_new(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](j)}(hinth]hint}(hj>bhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:bhhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj")}(h h]h }(hjMbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:bhhhjLbhMubj3)}(h snd_pcm_newh]j9)}(h snd_pcm_newh]h snd_pcm_new}(hj_bhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[bubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj:bhhhjLbhMubjT)}(hq(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj{bhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjwbubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjwbubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjbhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjabsb c.snd_pcm_newasbuh1hhjwbubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjwbubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwbubj9)}(hcardh]hcard}(hjbhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjwbubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubjZ)}(hconst char *idh](j`)}(hjph]hconst}(hjbhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjbubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubj)}(hcharh]hchar}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubj)}(hjh]h*}(hj$chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj9)}(hidh]hid}(hj1chhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubjZ)}(h int deviceh](j)}(hinth]hint}(hjJchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFcubj")}(h h]h }(hjXchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFcubj9)}(hdeviceh]hdevice}(hjfchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubjZ)}(hint playback_counth](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{cubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{cubj9)}(hplayback_counth]hplayback_count}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{cubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubjZ)}(hint capture_counth](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj9)}(h capture_counth]h capture_count}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubjZ)}(hstruct snd_pcm **rpcmh](j`)}(hjch]hstruct}(hjchhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hjdhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj dmodnameN classnameNjj)}j]jb c.snd_pcm_newasbuh1hhjcubj")}(h h]h }(hj%dhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hj3dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(hjh]h*}(hj@dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(hrpcmh]hrpcm}(hjMdhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsbubeh}(h]h ]h"]h$]h&]jQjRuh1jShj:bhhhjLbhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj6bhhhjLbhMubah}(h]j1bah ](jmjneh"]h$]h&]jrjs)jthuh1jhjLbhMhj3bhhubjv)}(hhh]j{)}(hcreate a new PCM instanceh]hcreate a new PCM instance}(hjwdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjtdhhubah}(h]h ]h"]h$]h&]uh1juhj3bhhhjLbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jzha/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]j{)}(hthe card instanceh]hthe card instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjdubah}(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]j{)}(h the id stringh]h the id string}(hj ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubj)}(h-``int device`` the device index (zero based) h](j)}(h``int device``h]j)}(hj*eh]h int device}(hj,ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(eubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj$eubj)}(hhh]j{)}(hthe device index (zero based)h]hthe device index (zero based)}(hjCehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj?ehMhj@eubah}(h]h ]h"]h$]h&]uh1jhj$eubeh}(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)}(hjceh]hint playback_count}(hjeehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaeubah}(h]h ]h"]h$]h&]uh1jha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhj]eubj)}(hhh]j{)}(h%the number of substreams for playbackh]h%the number of substreams for playback}(hj|ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjxehMhjyeubah}(h]h ]h"]h$]h&]uh1jhj]eubeh}(h]h ]h"]h$]h&]uh1jhjxehMhjdubj)}(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]j{)}(h$the number of substreams for captureh]h$the number of substreams for capture}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehMhjeubah}(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]j{)}(h)the pointer to store the new pcm instanceh]h)the pointer to store the new pcm instance}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubeh}(h]h ]h"]h$]h&]uh1jhjdubj{)}(h**Description**h]j)}(hjfh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj{)}(hCreates a new PCM instance.h]hCreates a new PCM instance.}(hj&fhhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj{)}(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().}(hj5fhhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj{)}(h **Return**h]j)}(hjFfh]hReturn}(hjHfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDfubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjdubj{)}(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&]uh1jzha/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](j)}(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]j )}(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](j)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfhhha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfhhhjfhMubj3)}(hsnd_pcm_new_internalh]j9)}(hsnd_pcm_new_internalh]hsnd_pcm_new_internal}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjfhhhjfhMubjT)}(hq(struct snd_card *card, const char *id, int device, int playback_count, int capture_count, struct snd_pcm **rpcm)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjfhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjfubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjfsbc.snd_pcm_new_internalasbuh1hhjfubj")}(h h]h }(hjghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj9)}(hcardh]hcard}(hj!ghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(hconst char *idh](j`)}(hjph]hconst}(hj:ghhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj6gubj")}(h h]h }(hjGghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6gubj)}(hcharh]hchar}(hjUghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6gubj")}(h h]h }(hjcghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6gubj)}(hjh]h*}(hjqghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6gubj9)}(hidh]hid}(hj~ghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6gubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(h int deviceh](j)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj")}(h h]h }(hjghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjgubj9)}(hdeviceh]hdevice}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjgubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(hint playback_counth](j)}(hinth]hint}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj")}(h h]h }(hjghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjgubj9)}(hplayback_counth]hplayback_count}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjgubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(hint capture_counth](j)}(hinth]hint}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjgubj9)}(h capture_counth]h capture_count}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjgubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(hstruct snd_pcm **rpcmh](j`)}(hjch]hstruct}(hj6hhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj2hubj")}(h h]h }(hjChhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2hubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hjThhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVhmodnameN classnameNjj)}j]jgc.snd_pcm_new_internalasbuh1hhj2hubj")}(h h]h }(hjrhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2hubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2hubj9)}(hrpcmh]hrpcm}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2hubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubeh}(h]h ]h"]h$]h&]jQjRuh1jShjfhhhjfhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjfhhhjfhMubah}(h]j~fah ](jmjneh"]h$]h&]jrjs)jthuh1jhjfhMhjfhhubjv)}(hhh]j{)}(h"create a new internal PCM instanceh]h"create a new internal PCM instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzha/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:31: ./sound/core/pcm.chMhjhhhubah}(h]h ]h"]h$]h&]uh1juhjfhhhjfhMubeh}(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](j{)}(h**Parameters**h]j)}(hjhh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jzha/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)}(hjih]hstruct snd_card *card}(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 hjhubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjihM 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&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhj"xubeh}(h]h ]h"]h$]h&]uh1jhj=xhMhjwubeh}(h]h ]h"]h$]h&]uh1jhjwubj{)}(h**Description**h]j)}(hjcxh]h Description}(hjexhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaxubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjwubj{)}(h c = a / bh]h c = a / b}(hjyxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjwubj{)}(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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjwubeh}(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](j)}(h~void snd_interval_muldivk (const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h]j )}(h}void snd_interval_muldivk(const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h](j)}(hvoidh]hvoid}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxhhhjxhMubj3)}(hsnd_interval_muldivkh]j9)}(hsnd_interval_muldivkh]hsnd_interval_muldivk}(hjxhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjxhhhjxhMubjT)}(hd(const struct snd_interval *a, const struct snd_interval *b, unsigned int k, struct snd_interval *c)h](jZ)}(hconst struct snd_interval *ah](j`)}(hjph]hconst}(hjxhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjxubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj`)}(hjch]hstruct}(hjyhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjxubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hj-yhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/ymodnameN classnameNjj)}j]j)}jjxsbc.snd_interval_muldivkasbuh1hhjxubj")}(h h]h }(hjMyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj)}(hjh]h*}(hj[yhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj9)}(hjSvh]ha}(hjhyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubjZ)}(hconst struct snd_interval *bh](j`)}(hjph]hconst}(hjyhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|yubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|yubj`)}(hjch]hstruct}(hjyhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|yubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|yubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jIyc.snd_interval_muldivkasbuh1hhj|yubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|yubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|yubj9)}(hjvh]hb}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|yubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubjZ)}(hunsigned int kh](j)}(hunsignedh]hunsigned}(hj zhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubj)}(hinth]hint}(hj&zhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj")}(h h]h }(hj4zhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubj9)}(hjlh]hk}(hjBzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubjZ)}(hstruct snd_interval *ch](j`)}(hjch]hstruct}(hjZzhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjVzubj")}(h h]h }(hjgzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjVzubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjxzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjuzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzzmodnameN classnameNjj)}j]jIyc.snd_interval_muldivkasbuh1hhjVzubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjVzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVzubj9)}(hjh]hc}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjVzubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubeh}(h]h ]h"]h$]h&]jQjRuh1jShjxhhhjxhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjxhhhjxhMubah}(h]jxah ](jmjneh"]h$]h&]jrjs)jthuh1jhjxhMhjxhhubjv)}(hhh]j{)}(hrefine the interval valueh]hrefine the interval value}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjzhhubah}(h]h ]h"]h$]h&]uh1juhjxhhhjxhMubeh}(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](j{)}(h**Parameters**h]j)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h dividend 1h]h dividend 1}(hj4{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0{hMhj1{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj0{hMhj{ubj)}(h,``const struct snd_interval *b`` dividend 2 h](j)}(h ``const struct snd_interval *b``h]j)}(hjT{h]hconst struct snd_interval *b}(hjV{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR{ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjN{ubj)}(hhh]j{)}(h dividend 2h]h dividend 2}(hjm{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhji{hMhjj{ubah}(h]h ]h"]h$]h&]uh1jhjN{ubeh}(h]h ]h"]h$]h&]uh1jhji{hMhj{ubj)}(h(``unsigned int k`` divisor (as integer) h](j)}(h``unsigned int k``h]j)}(hj{h]hunsigned int k}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh]j{)}(hdivisor (as integer)h]hdivisor (as integer)}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj{ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hj{h]hstruct snd_interval *c}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh]j{)}(hresulth]hresult}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj{hMhj{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj{ubeh}(h]h ]h"]h$]h&]uh1jhjzubj{)}(h**Description**h]j)}(hj|h]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjzubj{)}(h c = a * b / kh]h c = a * b / k}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjzubj{)}(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&]uh1jzhe/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](j)}(h~void snd_interval_mulkdiv (const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h]j )}(h}void snd_interval_mulkdiv(const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h](j)}(hvoidh]hvoid}(hjU|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQ|hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjd|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQ|hhhjc|hMubj3)}(hsnd_interval_mulkdivh]j9)}(hsnd_interval_mulkdivh]hsnd_interval_mulkdiv}(hjv|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjr|ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjQ|hhhjc|hMubjT)}(hd(const struct snd_interval *a, unsigned int k, const struct snd_interval *b, struct snd_interval *c)h](jZ)}(hconst struct snd_interval *ah](j`)}(hjph]hconst}(hj|hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|ubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj`)}(hjch]hstruct}(hj|hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|ubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j)}jjx|sbc.snd_interval_mulkdivasbuh1hhj|ubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj9)}(hjSvh]ha}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubjZ)}(hunsigned int kh](j)}(hunsignedh]hunsigned}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hj,}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hinth]hint}(hj:}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hjH}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj9)}(hjlh]hk}(hjV}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubjZ)}(hconst struct snd_interval *bh](j`)}(hjph]hconst}(hjn}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjj}ubj")}(h h]h }(hj{}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjj}ubj`)}(hjch]hstruct}(hj}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjj}ubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjj}ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j|c.snd_interval_mulkdivasbuh1hhjj}ubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjj}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj}ubj9)}(hjvh]hb}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubjZ)}(hstruct snd_interval *ch](j`)}(hjch]hstruct}(hj}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj}ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j|c.snd_interval_mulkdivasbuh1hhj}ubj")}(h h]h }(hj4~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hjB~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(hjh]hc}(hjO~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjQ|hhhjc|hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjM|hhhjc|hMubah}(h]jH|ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjc|hMhjJ|hhubjv)}(hhh]j{)}(hrefine the interval valueh]hrefine the interval value}(hjx~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhju~hhubah}(h]h ]h"]h$]h&]uh1juhjJ|hhhjc|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](j{)}(h**Parameters**h]j)}(hj~h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h dividend 1h]h dividend 1}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj~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]j{)}(hdividend 2 (as integer)h]hdividend 2 (as integer)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubj)}(h)``const struct snd_interval *b`` divisor h](j)}(h ``const struct snd_interval *b``h]j)}(hj+h]hconst struct snd_interval *b}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj%ubj)}(hhh]j{)}(hdivisorh]hdivisor}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hMhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj~ubj)}(h"``struct snd_interval *c`` result h](j)}(h``struct snd_interval *c``h]j)}(hjdh]hstruct snd_interval *c}(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]j{)}(hresulth]hresult}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyhMhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhMhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj~ubj{)}(h c = a * k / bh]h c = a * k / b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj~ubj{)}(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&]uh1jzhe/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](j)}(hint snd_interval_ratnum (struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h]j )}(hint snd_interval_ratnum(struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM5ubj3)}(hsnd_interval_ratnumh]j9)}(hsnd_interval_ratnumh]hsnd_interval_ratnum}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM5ubjT)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratnum *rats, unsigned int *nump, unsigned int *denp)h](jZ)}(hstruct snd_interval *ih](j`)}(hjch]hstruct}(hj0hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj,ubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjNhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratnumasbuh1hhj,ubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj9)}(hjsh]hi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hunsigned int rats_counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjˀhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h rats_counth]h rats_count}(hjـhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hconst struct snd_ratnum *ratsh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_ratnumh]h snd_ratnum}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]jjc.snd_interval_ratnumasbuh1hhjubj")}(h h]h }(hjIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hratsh]hrats}(hjdhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hunsigned int *numph](j)}(hunsignedh]hunsigned}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjyubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjyubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj9)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjyubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hunsigned int *denph](j)}(hunsignedh]hunsigned}(hjہhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjׁubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjׁubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjׁubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjׁubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjׁubj9)}(hdenph]hdenp}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjׁubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM5ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM5ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM5hjhhubjv)}(hhh]j{)}(hrefine the interval valueh]hrefine the interval value}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjGhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjbjjbjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjfubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjubj)}(hhh]j{)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubj)}(h/``unsigned int rats_count`` number of ratnum_t h](j)}(h``unsigned int rats_count``h]j)}(hjĂh]hunsigned int rats_count}(hjƂhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj‚ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]j{)}(hnumber of ratnum_th]hnumber of ratnum_t}(hj݂hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjقhM7hjڂubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjقhM7hjubj)}(h1``const struct snd_ratnum *rats`` ratnum_t array h](j)}(h!``const struct snd_ratnum *rats``h]j)}(hjh]hconst struct snd_ratnum *rats}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hjubj)}(hhh]j{)}(hratnum_t arrayh]hratnum_t array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hj6h]hunsigned int *nump}(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.chM9hj0ubj)}(hhh]j{)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjKhM9hjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhM9hjubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjoh]hunsigned int *denp}(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.chM:hjiubj)}(hhh]j{)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM:hjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhM:hjubeh}(h]h ]h"]h$]h&]uh1jhjfubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hjfubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM<hjfubeh}(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](j)}(hint snd_interval_ratden (struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h]j )}(hint snd_interval_ratden(struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_interval_ratdenh]j9)}(hsnd_interval_ratdenh]hsnd_interval_ratden}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hx(struct snd_interval *i, unsigned int rats_count, const struct snd_ratden *rats, unsigned int *nump, unsigned int *denp)h](jZ)}(hstruct snd_interval *ih](j`)}(hjch]hstruct}(hj,hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj(ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjLmodnameN classnameNjj)}j]j)}jjsbc.snd_interval_ratdenasbuh1hhj(ubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj9)}(hjsh]hi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubjZ)}(hunsigned int rats_counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjDŽhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h rats_counth]h rats_count}(hjՄhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubjZ)}(hconst struct snd_ratden *ratsh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_ratdenh]h snd_ratden}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jfc.snd_interval_ratdenasbuh1hhjubj")}(h h]h }(hjEhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hratsh]hrats}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubjZ)}(hunsigned int *numph](j)}(hunsignedh]hunsigned}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjuubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj9)}(hnumph]hnump}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjuubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubjZ)}(hunsigned int *denph](j)}(hunsignedh]hunsigned}(hjׅhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӅubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjӅubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӅubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjӅubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӅubj9)}(hdenph]hdenp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjӅubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hrefine the interval valueh]hrefine the interval value}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjChhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` interval to refine ``unsigned int rats_count`` number of struct ratden ``const struct snd_ratden *rats`` struct ratden array ``unsigned int *nump`` pointer to store the resultant numerator ``unsigned int *denp`` pointer to store the resultant denominator **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](j{)}(h**Parameters**h]j)}(hjhh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjbubj)}(hhh](j)}(h.``struct snd_interval *i`` interval to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hinterval to refineh]hinterval to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubj)}(h4``unsigned int rats_count`` number of struct ratden h](j)}(h``unsigned int rats_count``h]j)}(hjh]hunsigned int rats_count}(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]j{)}(hnumber of struct ratdenh]hnumber of struct ratden}(hjنhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjՆhMhjֆubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjՆhMhj~ubj)}(h6``const struct snd_ratden *rats`` struct ratden array h](j)}(h!``const struct snd_ratden *rats``h]j)}(hjh]hconst struct snd_ratden *rats}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hstruct ratden arrayh]hstruct ratden array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubj)}(h@``unsigned int *nump`` pointer to store the resultant numerator h](j)}(h``unsigned int *nump``h]j)}(hj2h]hunsigned int *nump}(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]j{)}(h(pointer to store the resultant numeratorh]h(pointer to store the resultant numerator}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj~ubj)}(hB``unsigned int *denp`` pointer to store the resultant denominator h](j)}(h``unsigned int *denp``h]j)}(hjkh]hunsigned int *denp}(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]j{)}(h*pointer to store the resultant denominatorh]h*pointer to store the resultant denominator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhj~ubeh}(h]h ]h"]h$]h&]uh1jhjbubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjbubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjbubeh}(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](j)}(hoint snd_interval_list (struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h]j )}(hnint snd_interval_list(struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_interval_listh]j9)}(hsnd_interval_listh]hsnd_interval_list}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(hY(struct snd_interval *i, unsigned int count, const unsigned int *list, unsigned int mask)h](jZ)}(hstruct snd_interval *ih](j`)}(hjch]hstruct}(hj(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj$ubj")}(h h]h }(hj5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjCubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHmodnameN classnameNjj)}j]j)}jjsbc.snd_interval_listasbuh1hhj$ubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(hjsh]hi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hunsigned int counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjÈhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hjшhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hconst unsigned int *listh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hlisth]hlist}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jއah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(h'refine the interval value from the listh]h'refine the interval value from the list}(hjʼnhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/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&]uh1juhjhhhjhM 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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h8``struct snd_interval *i`` the interval value to refine h](j)}(h``struct snd_interval *i``h]j)}(hjh]hstruct snd_interval *i}(hjhhhNhNubah}(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]j{)}(hthe interval value to refineh]hthe interval value to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(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}(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]j{)}(h"the number of elements in the listh]h"the number of elements in the list}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjThMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhjubj)}(h,``const unsigned int *list`` the value list h](j)}(h``const unsigned int *list``h]j)}(hjxh]hconst unsigned int *list}(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]j{)}(hthe value listh]hthe value list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hjh]hunsigned int mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hjʊhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjƊhMhjNJubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjƊhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(hUPositive if the value is changed, zero if it's not changed, or a negative error code.h]hWPositive if the value is changed, zero if it’s not changed, or a negative error code.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_interval_ranges (C function)c.snd_interval_rangeshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hzint snd_interval_ranges (struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h]j )}(hyint snd_interval_ranges(struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h](j)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4ubj")}(h h]h }(hjghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjThhhjfhM4ubj3)}(hsnd_interval_rangesh]j9)}(hsnd_interval_rangesh]hsnd_interval_ranges}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjuubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjThhhjfhM4ubjT)}(hb(struct snd_interval *i, unsigned int count, const struct snd_interval *ranges, unsigned int mask)h](jZ)}(hstruct snd_interval *ih](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj{sbc.snd_interval_rangesasbuh1hhjubj")}(h h]h }(hjӋhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjsh]hi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h!const struct snd_interval *rangesh](j`)}(hjph]hconst}(hjWhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjSubj")}(h h]h }(hjdhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubj`)}(hjch]hstruct}(hjrhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjSubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubh)}(hhh]j9)}(h snd_intervalh]h snd_interval}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jϋc.snd_interval_rangesasbuh1hhjSubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj9)}(hrangesh]hranges}(hjɌhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjތubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjތubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjތubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjތubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjތubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjThhhjfhM4ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjPhhhjfhM4ubah}(h]jKah ](jmjneh"]h$]h&]jrjs)jthuh1jhjfhM4hjMhhubjv)}(hhh]j{)}(h1refine the interval value from the list of rangesh]h1refine the interval value from the list of ranges}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM4hjAhhubah}(h]h ]h"]h$]h&]uh1juhjMhhhjfhM4ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_interval *i`` the interval value to refine ``unsigned int count`` the number of elements in the list of ranges ``const struct snd_interval *ranges`` the ranges list ``unsigned int mask`` the bit-mask to evaluate **Description** Refines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](j{)}(h**Parameters**h]j)}(hjfh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hj`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.chM5hjubj)}(hhh]j{)}(hthe interval value to refineh]hthe interval value to refine}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM5hj|ubj)}(hD``unsigned int count`` the number of elements in the list of ranges h](j)}(h``unsigned int count``h]j)}(hjh]hunsigned int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hjubj)}(hhh]j{)}(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&]uh1jzhjӍhM6hjԍubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjӍhM6hj|ubj)}(h6``const struct snd_interval *ranges`` the ranges list h](j)}(h%``const struct snd_interval *ranges``h]j)}(hjh]h!const struct snd_interval *ranges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjubj)}(hhh]j{)}(hthe ranges listh]hthe ranges list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hM7hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM7hj|ubj)}(h/``unsigned int mask`` the bit-mask to evaluate h](j)}(h``unsigned int mask``h]j)}(hj0h]hunsigned int mask}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hj*ubj)}(hhh]j{)}(hthe bit-mask to evaluateh]hthe bit-mask to evaluate}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjEhM8hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhM8hj|ubeh}(h]h ]h"]h$]h&]uh1jhj`ubj{)}(h**Description**h]j)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hj`ubj{)}(hRefines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.h]hRefines the interval value from the list of ranges. When mask is non-zero, only the elements corresponding to bit 1 are evaluated.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hj`ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=hj`ubj{)}(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&]uh1jzhe/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_rule_add (C function)c.snd_pcm_hw_rule_addhNtauh1hhj^hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hj׎hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӎ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 ]j.ah"]h$]h&]uh1j!hjӎhhhjhMubj3)}(hsnd_pcm_hw_rule_addh]j9)}(hsnd_pcm_hw_rule_addh]hsnd_pcm_hw_rule_add}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjӎhhhjhMubjT)}(hw(struct snd_pcm_runtime *runtime, unsigned int cond, int var, snd_pcm_hw_rule_func_t func, void *private, int dep, ...)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_rule_addasbuh1hhjubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hunsigned int condh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hint varh](j)}(hinth]hint}(hj׏hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӏubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjӏubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjӏubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hsnd_pcm_hw_rule_func_t funch](h)}(hhh]j9)}(hsnd_pcm_hw_rule_func_th]hsnd_pcm_hw_rule_func_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jNc.snd_pcm_hw_rule_addasbuh1hhjubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hfunch]hfunc}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h void *privateh](j)}(hvoidh]hvoid}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj9)}(hprivateh]hprivate}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjPubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hint deph](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hdeph]hdep}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h...h]j)}(h...h]h...}(hjːhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjǐubah}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjӎhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjώhhhjhMubah}(h]jʎah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhj̎hhubjv)}(hhh]j{)}(hadd the hw-constraint ruleh]hadd the hw-constraint rule}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj̎hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hj6h]hstruct snd_pcm_runtime *runtime}(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.chMhj0ubj)}(hhh]j{)}(hthe pcm runtime instanceh]hthe pcm runtime instance}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj-ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjoh]hunsigned int cond}(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]j{)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(h%``int var`` the variable to evaluate h](j)}(h ``int var``h]j)}(hjh]hint var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hthe variable to evaluateh]hthe variable to evaluate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(h8``snd_pcm_hw_rule_func_t func`` the evaluation function h](j)}(h``snd_pcm_hw_rule_func_t func``h]j)}(hjh]hsnd_pcm_hw_rule_func_t func}(hjhhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(hthe evaluation functionh]hthe evaluation function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjۑubeh}(h]h ]h"]h$]h&]uh1jhjhMhj-ubj)}(h>``void *private`` the private data pointer passed to function h](j)}(h``void *private``h]j)}(hjh]h void *private}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(h+the private data pointer passed to functionh]h+the private data pointer passed to function}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/hMhj0ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj-ubj)}(h$``int dep`` the dependent variables h](j)}(h ``int dep``h]j)}(hjSh]hint dep}(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]j{)}(hthe dependent variablesh]hthe dependent variables}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhhMhjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhMhj-ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjh]h...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chKhjubj)}(hhh]j{)}(hvariable argumentsh]hvariable arguments}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj-ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjǒh]hReturn}(hjɒhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjŒubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chKhjubj{)}(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&]uh1jzhe/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](j)}(hhint snd_pcm_hw_constraint_mask (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h]j )}(hgint snd_pcm_hw_constraint_mask(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_constraint_maskh]j9)}(hsnd_pcm_hw_constraint_maskh]hsnd_pcm_hw_constraint_mask}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hI(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int32_t mask)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjEubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.snd_pcm_hw_constraint_maskasbuh1hhjEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_maskasbuh1hhjubj")}(h h]h }(hjܓhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubjZ)}(hu_int32_t maskh](h)}(hhh]j9)}(h u_int32_th]h u_int32_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_maskasbuh1hhjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h&apply the given bitmap mask constrainth]h&apply the given bitmap mask constraint}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjYhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjtjjtjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj~h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj)}(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]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h@``snd_pcm_hw_param_t var`` hw_params variable to apply the mask h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj֔h]hsnd_pcm_hw_param_t var}(hjؔhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjԔubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjДubj)}(hhh]j{)}(h$hw_params variable to apply the maskh]h$hw_params variable to apply the mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjДubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h#``u_int32_t mask`` the bitmap mask h](j)}(h``u_int32_t mask``h]j)}(hjh]hu_int32_t mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(hthe bitmap maskh]hthe bitmap mask}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj$hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hMhjubeh}(h]h ]h"]h$]h&]uh1jhjxubj{)}(h**Description**h]j)}(hjJh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj{)}(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.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj{)}(h **Return**h]j)}(hjqh]hReturn}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjxubeh}(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](j)}(hjint snd_pcm_hw_constraint_mask64 (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h]j )}(hiint snd_pcm_hw_constraint_mask64(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjĕhMubj3)}(hsnd_pcm_hw_constraint_mask64h]j9)}(hsnd_pcm_hw_constraint_mask64h]hsnd_pcm_hw_constraint_mask64}(hjוhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjӕubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjĕhMubjT)}(hI(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, u_int64_t mask)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjٕsbc.snd_pcm_hw_constraint_mask64asbuh1hhjubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjLhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j-c.snd_pcm_hw_constraint_mask64asbuh1hhjaubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjaubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hu_int64_t maskh](h)}(hhh]j9)}(h u_int64_th]h u_int64_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j-c.snd_pcm_hw_constraint_mask64asbuh1hhjubj")}(h h]h }(hjΖhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hjܖhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjĕhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjĕhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjĕhMhjhhubjv)}(hhh]j{)}(h&apply the given bitmap mask constrainth]h&apply the given bitmap mask constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjĕhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX[**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the mask ``u_int64_t mask`` the 64bit bitmap mask **Description** Apply the constraint of the given bitmap mask to a 64-bit mask parameter. **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hj(h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj"ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjGh]hstruct snd_pcm_runtime *runtime}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjAubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj\hMhj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hMhj>ubj)}(h@``snd_pcm_hw_param_t var`` hw_params variable to apply the mask h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(h$hw_params variable to apply the maskh]h$hw_params variable to apply the mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(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]j{)}(hthe 64bit bitmap maskh]hthe 64bit bitmap mask}(hjҗhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjΗhMhjϗubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjΗhMhj>ubeh}(h]h ]h"]h$]h&]uh1jhj"ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj"ubj{)}(hIApply the constraint of the given bitmap mask to a 64-bit mask parameter.h]hIApply the constraint of the given bitmap mask to a 64-bit mask parameter.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj"ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj"ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_hw_constraint_integer (C function)c.snd_pcm_hw_constraint_integerhNtauh1hhj^hhhNhNubh)}(hhh](j)}(h[int snd_pcm_hw_constraint_integer (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h]j )}(hZint snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h](j)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjohhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj\hhhjnhMubj3)}(hsnd_pcm_hw_constraint_integerh]j9)}(hsnd_pcm_hw_constraint_integerh]hsnd_pcm_hw_constraint_integer}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj\hhhjnhMubjT)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_integerasbuh1hhjubj")}(h h]h }(hjۘhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jטc.snd_pcm_hw_constraint_integerasbuh1hhj ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(hvarh]hvar}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj\hhhjnhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjXhhhjnhMubah}(h]jSah ](jmjneh"]h$]h&]jrjs)jthuh1jhjnhMhjUhhubjv)}(hhh]j{)}(h*apply an integer constraint to an intervalh]h*apply an integer constraint to an interval}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjehhubah}(h]h ]h"]h$]h&]uh1juhjUhhhjnhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hXJ**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_hw_param_t var`` hw_params variable to apply the integer constraint **Description** Apply the constraint of integer to an interval parameter. **Return** Positive if the value is changed, zero if it's not changed, or a negative error code.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj™hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the integer constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjܙubj)}(hhh]j{)}(h2hw_params variable to apply the integer constrainth]h2hw_params variable to apply the integer constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjܙubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(h9Apply the constraint of integer to an interval parameter.h]h9Apply the constraint of integer to an interval parameter.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(h **Return**h]j)}(hjDh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_hw_constraint_minmax (C function)c.snd_pcm_hw_constraint_minmaxhNtauh1hhj^hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_constraint_minmaxh]j9)}(hsnd_pcm_hw_constraint_minmaxh]hsnd_pcm_hw_constraint_minmax}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h](struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int min, unsigned int max)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjƚhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjšubj")}(h h]h }(hjӚhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjšubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_minmaxasbuh1hhjšubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjšubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjšubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjšubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_minmaxasbuh1hhj4ubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4ubj9)}(hvarh]hvar}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int minh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj9)}(hminh]hmin}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maxh](j)}(hunsignedh]hunsigned}(hjћhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj͛ubj")}(h h]h }(hjߛhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj͛ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj͛ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj͛ubj9)}(hmaxh]hmax}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj͛ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]j|ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhj~hhubjv)}(hhh]j{)}(h/apply a min/max range constraint to an intervalh]h/apply a min/max range constraint to an interval}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj0hhubah}(h]h ]h"]h$]h&]uh1juhj~hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjOubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjth]hstruct snd_pcm_runtime *runtime}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjnubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(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]j{)}(h%hw_params variable to apply the rangeh]h%hw_params variable to apply the range}(hjƜhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjœhMhjÜubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjœhMhjkubj)}(h'``unsigned int min`` the minimal value h](j)}(h``unsigned int min``h]j)}(hjh]hunsigned int min}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hthe minimal valueh]hthe minimal value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjkubj)}(h'``unsigned int max`` the maximal value h](j)}(h``unsigned int max``h]j)}(hjh]hunsigned int max}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hthe maximal valueh]hthe maximal value}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjkubeh}(h]h ]h"]h$]h&]uh1jhjOubj{)}(h**Description**h]j)}(hjZh]h Description}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjOubj{)}(hhj=ubj{)}(h **Return**h]j)}(hjoh]hReturn}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM@hj=ubj{)}(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&]uh1jzhe/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](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM^ubj")}(h h]h }(hjähhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj¤hM^ubj3)}(hsnd_pcm_hw_constraint_ratnumsh]j9)}(hsnd_pcm_hw_constraint_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hjդhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjѤubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj¤hM^ubjT)}(h{(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratnums *r)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjפsbc.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int condh](j)}(hunsignedh]hunsigned}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj9)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j+c.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj")}(h h]h }(hjեhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h-const struct snd_pcm_hw_constraint_ratnums *rh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_constraint_ratnumsh]hsnd_pcm_hw_constraint_ratnums}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j+c.snd_pcm_hw_constraint_ratnumsasbuh1hhjubj")}(h h]h }(hjShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjh]hr}(hjnhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj¤hM^ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj¤hM^ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj¤hM^hjhhubjv)}(hhh]j{)}(h'apply ratnums constraint to a parameterh]h'apply ratnums constraint to a parameter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM^hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj¤hM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX]**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``snd_pcm_hw_param_t var`` hw_params variable to apply the ratnums constraint ``const struct snd_pcm_hw_constraint_ratnums *r`` struct snd_ratnums constriants **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjئh]hstruct snd_pcm_runtime *runtime}(hjڦhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj֦ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM_hjҦubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM_hjubah}(h]h ]h"]h$]h&]uh1jhjҦubeh}(h]h ]h"]h$]h&]uh1jhjhM_hjϦubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM`hj ubj)}(hhh]j{)}(hcondition bitsh]hcondition bits}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj&hM`hj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hM`hjϦubj)}(hN``snd_pcm_hw_param_t var`` hw_params variable to apply the ratnums constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjJh]hsnd_pcm_hw_param_t var}(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.chMahjDubj)}(hhh]j{)}(h2hw_params variable to apply the ratnums constrainth]h2hw_params variable to apply the ratnums constraint}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_hMahj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hMahjϦubj)}(hQ``const struct snd_pcm_hw_constraint_ratnums *r`` struct snd_ratnums constriants h](j)}(h1``const struct snd_pcm_hw_constraint_ratnums *r``h]j)}(hjh]h-const struct snd_pcm_hw_constraint_ratnums *r}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhj}ubj)}(hhh]j{)}(hstruct snd_ratnums constriantsh]hstruct snd_ratnums constriants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMbhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMbhjϦubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMdhjubj{)}(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&]uh1jzhe/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](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_constraint_ratdensh]j9)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h{(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, const struct snd_pcm_hw_constraint_ratdens *r)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hj@hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj&sbc.snd_pcm_hw_constraint_ratdensasbuh1hhj<ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(hunsigned int condh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjΨhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjܨhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.snd_pcm_hw_constraint_ratdensasbuh1hhjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(h-const struct snd_pcm_hw_constraint_ratdens *rh](j`)}(hjph]hconst}(hjKhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj`)}(hjch]hstruct}(hjfhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubh)}(hhh]j9)}(hsnd_pcm_hw_constraint_ratdensh]hsnd_pcm_hw_constraint_ratdens}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jzc.snd_pcm_hw_constraint_ratdensasbuh1hhjGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj9)}(hjh]hr}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h'apply ratdens constraint to a parameterh]h'apply ratdens constraint to a parameter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hj`h]hunsigned int cond}(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]j{)}(hcondition bitsh]hcondition bits}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjuhMhjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjubj)}(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]j{)}(h2hw_params variable to apply the ratdens constrainth]h2hw_params variable to apply the ratdens constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hQ``const struct snd_pcm_hw_constraint_ratdens *r`` struct snd_ratdens constriants h](j)}(h1``const struct snd_pcm_hw_constraint_ratdens *r``h]j)}(hjҪh]h-const struct snd_pcm_hw_constraint_ratdens *r}(hjԪhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjЪubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj̪ubj)}(hhh]j{)}(hstruct snd_ratdens constriantsh]hstruct snd_ratdens constriants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj̪ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hj h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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&]uh1jzhe/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](j)}(h~int snd_pcm_hw_constraint_msbits (struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h]j )}(h}int snd_pcm_hw_constraint_msbits(struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h](j)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjahhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNhhhj`hMubj3)}(hsnd_pcm_hw_constraint_msbitsh]j9)}(hsnd_pcm_hw_constraint_msbitsh]hsnd_pcm_hw_constraint_msbits}(hjshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjoubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjNhhhj`hMubjT)}(h](struct snd_pcm_runtime *runtime, unsigned int cond, unsigned int width, unsigned int msbits)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjusbc.snd_pcm_hw_constraint_msbitsasbuh1hhjubj")}(h h]h }(hjͫhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj۫hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int condh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcondh]hcond}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int widthh](j)}(hunsignedh]hunsigned}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNubj)}(hinth]hint}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNubj9)}(hwidthh]hwidth}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjNubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int msbitsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjͬhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmsbitsh]hmsbits}(hj۬hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjNhhhj`hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjJhhhj`hMubah}(h]jEah ](jmjneh"]h$]h&]jrjs)jthuh1jhj`hMhjGhhubjv)}(hhh]j{)}(hadd a hw constraint msbits ruleh]hadd a hw constraint msbits rule}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjGhhhj`hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``unsigned int cond`` condition bits ``unsigned int width`` sample bits width ``unsigned int msbits`` msbits width **Description** This constraint will set the number of most significant bits (msbits) if a sample format with the specified width has been select. If width is set to 0 the msbits will be set for any sample format with a width larger than the specified msbits. **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hjFh]hstruct snd_pcm_runtime *runtime}(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:32: ./sound/core/pcm_lib.chMhj@ubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[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)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjyubj)}(hhh]j{)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(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]j{)}(hsample bits widthh]hsample bits width}(hjѭhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjͭhMhjέubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjͭhMhj=ubj)}(h%``unsigned int msbits`` msbits width h](j)}(h``unsigned int msbits``h]j)}(hjh]hunsigned int msbits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(h msbits widthh]h msbits width}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj=ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj{)}(h**Description**h]j)}(hj,h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj!ubj{)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj!ubj{)}(h **Return**h]j)}(hjSh]hReturn}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj!ubj{)}(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&]uh1jzhe/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](j)}(hint snd_pcm_hw_constraint_step (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, unsigned long step)h]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_constraint_steph]j9)}(hsnd_pcm_hw_constraint_steph]hsnd_pcm_hw_constraint_step}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h`(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var, unsigned long step)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjծhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjѮubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjѮubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_constraint_stepasbuh1hhjѮubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjѮubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjѮubj9)}(hruntimeh]hruntime}(hj.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjѮubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjͮubjZ)}(hunsigned int condh](jI)}(hunsignedh]hunsigned}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjCubj)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjCubj9)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjCubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjͮubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_stepasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hjǯhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjͮubjZ)}(hunsigned long steph](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjܯubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjܯubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjܯubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjܯubj9)}(hsteph]hstep}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjܯubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjͮubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hadd a hw constraint step ruleh]hadd a hw constraint step rule}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj?hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj^ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj}ubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjzubj)}(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]j{)}(hcondition bitsh]hcondition bits}(hjհhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjѰhMhjҰubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѰhMhjzubj)}(hK``snd_pcm_hw_param_t var`` hw_params variable to apply the step constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(h/hw_params variable to apply the step constrainth]h/hw_params variable to apply the step constraint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjzubj)}(h!``unsigned long step`` step size h](j)}(h``unsigned long step``h]j)}(hj.h]hunsigned long step}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj(ubj)}(hhh]j{)}(h step sizeh]h step size}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhjzubeh}(h]h ]h"]h$]h&]uh1jhj^ubj{)}(h **Return**h]j)}(hjih]hReturn}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj^ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_constraint_pow2 (C function)c.snd_pcm_hw_constraint_pow2hNtauh1hhj^hhhNhNubh)}(hhh](j)}(hkint snd_pcm_hw_constraint_pow2 (struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h]j )}(hjint snd_pcm_hw_constraint_pow2(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_constraint_pow2h]j9)}(hsnd_pcm_hw_constraint_pow2h]hsnd_pcm_hw_constraint_pow2}(hjϱhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj˱ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hL(struct snd_pcm_runtime *runtime, unsigned int cond, snd_pcm_hw_param_t var)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjѱsbc.snd_pcm_hw_constraint_pow2asbuh1hhjubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int condh](j)}(hunsignedh]hunsigned}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj)}(hinth]hint}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj9)}(hcondh]hcond}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j%c.snd_pcm_hw_constraint_pow2asbuh1hhjubj")}(h h]h }(hjϲhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hjݲhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h#add a hw constraint power-of-2 ruleh]h#add a hw constraint power-of-2 rule}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(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 power-of-2 constraint **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj#ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjHh]hstruct snd_pcm_runtime *runtime}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjBubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hMhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hMhj?ubj)}(h%``unsigned int cond`` condition bits h](j)}(h``unsigned int cond``h]j)}(hjh]hunsigned int cond}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{ubj)}(hhh]j{)}(hcondition bitsh]hcondition bits}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhj?ubj)}(hQ``snd_pcm_hw_param_t var`` hw_params variable to apply the power-of-2 constraint h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjh]hsnd_pcm_hw_param_t var}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(h5hw_params variable to apply the power-of-2 constrainth]h5hw_params variable to apply the power-of-2 constraint}(hjӳhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjϳhMhjгubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjϳhMhj?ubeh}(h]h ]h"]h$]h&]uh1jhj#ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj#ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj#ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_hw_rule_noresample (C function)c.snd_pcm_hw_rule_noresamplehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hXint snd_pcm_hw_rule_noresample (struct snd_pcm_runtime *runtime, unsigned int base_rate)h]j )}(hWint snd_pcm_hw_rule_noresample(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](j)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6hhhjHhMubj3)}(hsnd_pcm_hw_rule_noresampleh]j9)}(hsnd_pcm_hw_rule_noresampleh]hsnd_pcm_hw_rule_noresample}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj6hhhjHhMubjT)}(h9(struct snd_pcm_runtime *runtime, unsigned int base_rate)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjwhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjsubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjsubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj]sbc.snd_pcm_hw_rule_noresampleasbuh1hhjsubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjsubj)}(hjh]h*}(hjôhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjsubj9)}(hruntimeh]hruntime}(hjдhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjsubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjoubjZ)}(hunsigned int base_rateh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h base_rateh]h base_rate}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjoubeh}(h]h ]h"]h$]h&]jQjRuh1jShj6hhhjHhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj2hhhjHhMubah}(h]j-ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjHhMhj/hhubjv)}(hhh]j{)}(h+add a rule to allow disabling hw resamplingh]h+add a rule to allow disabling hw resampling}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjHhhubah}(h]h ]h"]h$]h&]uh1juhj/hhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjgubj)}(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]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hL``unsigned int base_rate`` the rate at which the hardware does not resample h](j)}(h``unsigned int base_rate``h]j)}(hjŵh]hunsigned int base_rate}(hjǵhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjõubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(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&]uh1jzhjڵhMhj۵ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjڵhMhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjgubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_value (C function)c.snd_pcm_hw_param_valuehNtauh1hhj^hhhNhNubh)}(hhh](j)}(heint snd_pcm_hw_param_value (const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h]j )}(hdint snd_pcm_hw_param_value(const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5ubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAhhhjShM5ubj3)}(hsnd_pcm_hw_param_valueh]j9)}(hsnd_pcm_hw_param_valueh]hsnd_pcm_hw_param_value}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjAhhhjShM5ubjT)}(hJ(const struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jZ)}(h&const struct snd_pcm_hw_params *paramsh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_pcm_hw_param_valueasbuh1hhj~ubj")}(h h]h }(hj۶hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj9)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j׶c.snd_pcm_hw_param_valueasbuh1hhj ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(hvarh]hvar}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hint *dirh](j)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj")}(h h]h }(hjehhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjSubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj9)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubeh}(h]h ]h"]h$]h&]jQjRuh1jShjAhhhjShM5ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=hhhjShM5ubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShM5hj:hhubjv)}(hhh]j{)}(h%return **params** field **var** valueh](hreturn }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field }(hjhhhNhNubj)}(h**var**h]hvar}(hjķhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM5hjhhubah}(h]h ]h"]h$]h&]uh1juhj:hhhjShM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hXA**Parameters** ``const struct snd_pcm_hw_params *params`` the hw_params instance ``snd_pcm_hw_param_t var`` parameter to retrieve ``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` **Return** The value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM9hjubj)}(hhh](j)}(hB``const struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjh]h&const struct snd_pcm_hw_params *params}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.chM6hj ubj)}(hhh]j{)}(hthe hw_params instanceh]hthe hw_params instance}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj$hM6hj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hM6hjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hjHh]hsnd_pcm_hw_param_t var}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjBubj)}(hhh]j{)}(hparameter to retrieveh]hparameter to retrieve}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hM7hj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hM7hjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjh]hint *dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM8hj{ubj)}(hhh]j{)}(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&]uh1jzhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjʸh]hReturn}(hj̸hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjȸubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubj{)}(hnThe value for field **var** if it's fixed in configuration space defined by **params**. -``EINVAL`` otherwise.h](hThe value for field }(hjhhhNhNubj)}(h**var**h]hvar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh3 if it’s fixed in configuration space defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. -}(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh otherwise.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_param_first (C function)c.snd_pcm_hw_param_firsthNtauh1hhj^hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMxubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAhhhjShMxubj3)}(hsnd_pcm_hw_param_firsth]j9)}(hsnd_pcm_hw_param_firsth]hsnd_pcm_hw_param_first}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjAhhhjShMxubjT)}(hc(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jZ)}(hstruct snd_pcm_substream *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_pcm_hw_param_firstasbuh1hhj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj)}(hjh]h*}(hjιhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj9)}(hpcmh]hpcm}(hj۹hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(h struct snd_pcm_hw_params *paramsh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hparamsh]hparams}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]jc.snd_pcm_hw_param_firstasbuh1hhj`ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hint *dirh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjȺhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdirh]hdir}(hjպhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubeh}(h]h ]h"]h$]h&]jQjRuh1jShjAhhhjShMxubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=hhhjShMxubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShMxhj:hhubjv)}(hhh]j{)}(h,refine config space and return minimum valueh]h,refine config space and return minimum value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMxhjhhubah}(h]h ]h"]h$]h&]uh1juhj:hhhjShMxubeh}(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](j{)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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}(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.chMyhj:ubj)}(hhh]j{)}(h PCM instanceh]h PCM instance}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUhMyhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMyhj7ubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjyh]h struct snd_pcm_hw_params *params}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMzhjsubj)}(hhh]j{)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMzhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMzhj7ubj)}(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]j{)}(hparameter to retrieveh]hparameter to retrieve}(hj˻hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjǻhM{hjȻubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjǻhM{hj7ubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjh]hint *dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM|hjubj)}(hhh]j{)}(h-pointer to the direction (-1,0,1) or ``NULL``h](h%pointer to the direction (-1,0,1) or }(hjhhhNhNubj)}(h``NULL``h]hNULL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jzhjhM|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM|hj7ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj4h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM~hjubj{)}(hInside configuration space defined by **params** remove from **var** all values > minimum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hjJhhhNhNubj)}(h **params**h]hparams}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh remove from }(hjJhhhNhNubj)}(h**var**h]hvar}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh> all values > minimum. Reduce configuration space accordingly.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM}hjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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&]uh1jzhe/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](j)}(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]j )}(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](j)}(hinth]hint}(hjļhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjҼhMubj3)}(hsnd_pcm_hw_param_lasth]j9)}(hsnd_pcm_hw_param_lasth]hsnd_pcm_hw_param_last}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjҼhMubjT)}(hc(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params, snd_pcm_hw_param_t var, int *dir)h](jZ)}(hstruct snd_pcm_substream *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_param_lastasbuh1hhjubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hpcmh]hpcm}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h struct snd_pcm_hw_params *paramsh](j`)}(hjch]hstruct}(hjshhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j;c.snd_pcm_hw_param_lastasbuh1hhjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj9)}(hparamsh]hparams}(hjʽhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjoubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j;c.snd_pcm_hw_param_lastasbuh1hhj߽ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj߽ubj9)}(hvarh]hvar}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj߽ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint *dirh](j)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj9)}(hdirh]hdir}(hjThhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjҼhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjҼhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjҼhMhjhhubjv)}(hhh]j{)}(h,refine config space and return maximum valueh]h,refine config space and return maximum value}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj{hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjҼhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *pcm`` PCM instance ``struct snd_pcm_hw_params *params`` the hw_params instance ``snd_pcm_hw_param_t var`` parameter to retrieve ``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` **Description** Inside configuration space defined by **params** remove from **var** all values < maximum. Reduce configuration space accordingly. **Return** The maximum, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h PCM instanceh]h PCM instance}(hjؾhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjԾhMhjվubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjԾhMhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjh]h struct snd_pcm_hw_params *params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj)}(hhh]j{)}(hthe hw_params instanceh]hthe hw_params instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h1``snd_pcm_hw_param_t var`` parameter to retrieve h](j)}(h``snd_pcm_hw_param_t var``h]j)}(hj1h]hsnd_pcm_hw_param_t var}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj+ubj)}(hhh]j{)}(hparameter to retrieveh]hparameter to retrieve}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjFhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjubj)}(h;``int *dir`` pointer to the direction (-1,0,1) or ``NULL`` h](j)}(h ``int *dir``h]j)}(hjjh]hint *dir}(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]j{)}(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&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(hInside configuration space defined by **params** remove from **var** all values < maximum. Reduce configuration space accordingly.h](h&Inside configuration space defined by }(hjɿhhhNhNubj)}(h **params**h]hparams}(hjѿhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɿubh remove from }(hjɿhhhNhNubj)}(h**var**h]hvar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjɿubh> all values < maximum. Reduce configuration space accordingly.}(hjɿhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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&]uh1jzhe/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](j)}(h>int snd_pcm_hw_params_bits (const struct snd_pcm_hw_params *p)h]j )}(h=int snd_pcm_hw_params_bits(const struct snd_pcm_hw_params *p)h](j)}(hinth]hint}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj?hhhjQhMubj3)}(hsnd_pcm_hw_params_bitsh]j9)}(hsnd_pcm_hw_params_bitsh]hsnd_pcm_hw_params_bits}(hjdhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj?hhhjQhMubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjfsbc.snd_pcm_hw_params_bitsasbuh1hhj|ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj9)}(hjh]hp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubah}(h]h ]h"]h$]h&]jQjRuh1jShj?hhhjQhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj;hhhjQhMubah}(h]j6ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjQhMhj8hhubjv)}(hhh]j{)}(h&Get the number of bits per the sample.h]h&Get the number of bits per the sample.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj8hhhjQhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj?h]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj9ubj)}(hhh]j)}(h:``const struct snd_pcm_hw_params *p`` hardware parameters h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hj^h]h!const struct snd_pcm_hw_params *p}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjXubj)}(hhh]j{)}(hhardware parametersh]hhardware parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjshMhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj9ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhj9ubeh}(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](j)}(hXint snd_pcm_lib_ioctl (struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h]j )}(hWint snd_pcm_lib_ioctl(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM6ubj3)}(hsnd_pcm_lib_ioctlh]j9)}(hsnd_pcm_lib_ioctlh]hsnd_pcm_lib_ioctl}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM6ubjT)}(hB(struct snd_pcm_substream *substream, unsigned int cmd, void *arg)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_lib_ioctlasbuh1hhjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int cmdh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcmdh]hcmd}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h void *argh](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hargh]harg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM6ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM6ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM6hjhhubjv)}(hhh]j{)}(ha generic PCM ioctl callbackh]ha generic PCM ioctl callback}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM6hj.hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM6ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjIjjIjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjSh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjMubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjrh]h#struct snd_pcm_substream *substream}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM7hjlubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM7hjubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjiubj)}(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]j{)}(h ioctl commandh]h ioctl command}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM8hjiubj)}(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]j{)}(hioctl argumenth]hioctl argument}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9hjiubeh}(h]h ]h"]h$]h&]uh1jhjMubj{)}(h**Description**h]j)}(hjh]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM;hjMubj{)}(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.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM:hjMubj{)}(h **Return**h]j)}(hjFh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM=hjMubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM>hjMubeh}(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](j)}(hSvoid snd_pcm_period_elapsed_under_stream_lock (struct snd_pcm_substream *substream)h]j )}(hRvoid snd_pcm_period_elapsed_under_stream_lock(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMRubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMRubj3)}(h(snd_pcm_period_elapsed_under_stream_lockh]j9)}(h(snd_pcm_period_elapsed_under_stream_lockh]h(snd_pcm_period_elapsed_under_stream_lock}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMRubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(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 ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMRubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMRubah}(h]j~ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMRhjhhubjv)}(hhh]j{)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMRhjHhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjgubj)}(hhh]j)}(hG``struct snd_pcm_substream *substream`` the instance of pcm substream. h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMThjubj)}(hhh]j{)}(hthe instance of pcm substream.h]hthe instance of pcm substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjgubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMVhjgubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMUhjgubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMXhjgubj{)}(hX^The function is intended to use for the case that PCM driver operates audio data frames under acquired lock of PCM substream; e.g. in callback of any operation of :c:type:`snd_pcm_ops` in process context. In any interrupt context, it's preferrable to use ``snd_pcm_period_elapsed()`` instead since lock of PCM substream should be acquired in advance.h](hThe function is intended to use for the case that PCM driver operates audio data frames under acquired lock of PCM substream; e.g. in callback of any operation of }(hjhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hjh]h snd_pcm_ops}(hjhhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdoc sound/kernel-api/alsa-driver-api refdomainjreftypetype refexplicitrefwarnjj)}j]sb reftarget snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM]hjubhI in process context. In any interrupt context, it’s preferrable to use }(hjhhhNhNubj)}(h``snd_pcm_period_elapsed()``h]hsnd_pcm_period_elapsed()}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhC instead since lock of PCM substream should be acquired in advance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhj(hM]hjgubj{)}(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 }(hjEhhhNhNubh)}(h:c:type:`snd_pcm_ops`h]j)}(hjOh]h snd_pcm_ops}(hjQhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj#j& snd_pcm_opsuh1hhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMbhjEubh" are done by the call of function:}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhjlhMbhjgubh bullet_list)}(hhh](h list_item)}(h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.h]j{)}(hjh]h`.pointer - to retrieve current position of audio data transmission by frame count or XRUN state.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMehj~ubah}(h]h ]h"]h$]h&]uh1j|hjyubj})}(hA.trigger - with SNDRV_PCM_TRIGGER_STOP at XRUN or DRAINING state.h]j{)}(hjh]hA.trigger - with SNDRV_PCM_TRIGGER_STOP at XRUN or DRAINING state.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMfhjubah}(h]h ]h"]h$]h&]uh1j|hjyubj})}(h9.get_time_info - to retrieve audio time stamp if needed. h]j{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMghjubah}(h]h ]h"]h$]h&]uh1j|hjyubeh}(h]h ]h"]h$]h&]bullet-uh1jwhjhMehjgubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMihjgubeh}(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](j)}(hAvoid snd_pcm_period_elapsed (struct snd_pcm_substream *substream)h]j )}(h@void snd_pcm_period_elapsed(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhj hMubj3)}(hsnd_pcm_period_elapsedh]j9)}(hsnd_pcm_period_elapsedh]hsnd_pcm_period_elapsed}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj hMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj;hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj!sbc.snd_pcm_period_elapsedasbuh1hhj7ubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj3ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhjhhubjv)}(hhh]j{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *substream`` the instance of PCM substream. **Description** This function is mostly similar to ``snd_pcm_period_elapsed_under_stream_lock()`` except for acquiring lock of PCM substream voluntarily. It's typically called by any type of IRQ handler when hardware IRQ occurs to notify event that the batch of audio data frames as the same size as the period of buffer is already processed in audio data transmission.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(hthe instance of PCM substream.h]hthe instance of PCM substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj:h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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 }(hjPhhhNhNubj)}(h.``snd_pcm_period_elapsed_under_stream_lock()``h]h*snd_pcm_period_elapsed_under_stream_lock()}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh8 except for acquiring lock of PCM substream voluntarily.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chMhjubj{)}(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.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/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](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_pcm_add_chmap_ctlsh]j9)}(hsnd_pcm_add_chmap_ctlsh]hsnd_pcm_add_chmap_ctls}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(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](jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_add_chmap_ctlsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hpcmh]hpcm}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int streamh](j)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj")}(h h]h }(hj]hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKubj9)}(hstreamh]hstream}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h&const struct snd_pcm_chmap_elem *chmaph](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_chmap_elemh]hsnd_pcm_chmap_elem}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_add_chmap_ctlsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hchmaph]hchmap}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint max_channelsh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(h max_channelsh]h max_channels}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned long private_valueh](j)}(hunsignedh]hunsigned}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@ubj)}(hlongh]hlong}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@ubj9)}(h private_valueh]h private_value}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_pcm_chmap **info_reth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_pcm_chmaph]h snd_pcm_chmap}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_add_chmap_ctlsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hinfo_reth]hinfo_ret}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(h'create channel-mapping control elementsh]h'create channel-mapping control elements}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/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&]uh1juhjhhhjhM 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](j{)}(h**Parameters**h]j)}(hjEh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hjdh]hstruct snd_pcm *pcm}(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.chM hj^ubj)}(hhh]j{)}(hthe assigned PCM instanceh]hthe assigned PCM instance}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyhM hjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhM hj[ubj)}(h ``int stream`` stream direction h](j)}(h``int stream``h]j)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]j{)}(hstream directionh]hstream direction}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj[ubj)}(hL``const struct snd_pcm_chmap_elem *chmap`` channel map elements (for query) h](j)}(h*``const struct snd_pcm_chmap_elem *chmap``h]j)}(hjh]h&const struct snd_pcm_chmap_elem *chmap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjubj)}(hhh]j{)}(h channel map elements (for query)h]h channel map elements (for query)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj[ubj)}(h?``int max_channels`` the max number of channels for the stream h](j)}(h``int max_channels``h]j)}(hjh]hint max_channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(h)the max number of channels for the streamh]h)the max number of channels for the stream}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj$hM hj%ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj$hM hj[ubj)}(hX``unsigned long private_value`` the value passed to each kcontrol's private_value field h](j)}(h``unsigned long private_value``h]j)}(hjHh]hunsigned long private_value}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hjBubj)}(hhh]j{)}(h7the value passed to each kcontrol's private_value fieldh]h9the value passed to each kcontrol’s private_value field}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hM hj^ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhj]hM hj[ubj)}(hT``struct snd_pcm_chmap **info_ret`` store struct snd_pcm_chmap instance if non-NULL h](j)}(h#``struct snd_pcm_chmap **info_ret``h]j)}(hjh]hstruct snd_pcm_chmap **info_ret}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj{ubj)}(hhh]j{)}(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&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhM hj[ubeh}(h]h ]h"]h$]h&]uh1jhj?ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj?ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj?ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:32: ./sound/core/pcm_lib.chM hj?ubj{)}(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&]uh1jzhe/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](j)}(h>void snd_pcm_stream_lock (struct snd_pcm_substream *substream)h]j )}(h=void snd_pcm_stream_lock(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKkubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$hhhj6hKkubj3)}(hsnd_pcm_stream_lockh]j9)}(hsnd_pcm_stream_lockh]hsnd_pcm_stream_lock}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj$hhhj6hKkubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjehhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjaubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjKsbc.snd_pcm_stream_lockasbuh1hhjaubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjaubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubah}(h]h ]h"]h$]h&]jQjRuh1jShj$hhhj6hKkubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj6hKkubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj6hKkhjhhubjv)}(hhh]j{)}(hLock the PCM streamh]hLock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKkhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj6hKkubeh}(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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/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)}(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.chKlhj#ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>hKlhj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hKlhj ubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjdh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKnhjubj{)}(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.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/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](j)}(h@void snd_pcm_stream_unlock (struct snd_pcm_substream *substream)h]j )}(h?void snd_pcm_stream_unlock(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKyubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKyubj3)}(hsnd_pcm_stream_unlockh]j9)}(hsnd_pcm_stream_unlockh]hsnd_pcm_stream_unlock}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKyubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_unlockasbuh1hhjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKyubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKyubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKyhjhhubjv)}(hhh]j{)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKyhjfhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKyubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This unlocks the PCM stream that has been locked via snd_pcm_stream_lock().h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chK}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.chKzhjubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chK|hjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chK{hjubeh}(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](j)}(hBvoid snd_pcm_stream_lock_irq (struct snd_pcm_substream *substream)h]j )}(hAvoid snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&hhhj8hKubj3)}(hsnd_pcm_stream_lock_irqh]j9)}(hsnd_pcm_stream_lock_irqh]hsnd_pcm_stream_lock_irq}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj&hhhj8hKubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjghhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsbc.snd_pcm_stream_lock_irqasbuh1hhjcubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubah}(h]h ]h"]h$]h&]jQjRuh1jShj&hhhj8hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj"hhhj8hKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj8hKhjhhubjv)}(hhh]j{)}(hLock the PCM streamh]hLock the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj8hKubeh}(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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj+h]h#struct snd_pcm_substream *substream}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj%ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hKhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhj"ubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjfh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj{)}(hThis locks the PCM stream like snd_pcm_stream_lock() and disables the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h]hThis locks the PCM stream like snd_pcm_stream_lock() and disables the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/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](j)}(hDvoid snd_pcm_stream_unlock_irq (struct snd_pcm_substream *substream)h]j )}(hCvoid snd_pcm_stream_unlock_irq(struct snd_pcm_substream *substream)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_pcm_stream_unlock_irqh]j9)}(hsnd_pcm_stream_unlock_irqh]hsnd_pcm_stream_unlock_irq}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_unlock_irqasbuh1hhjubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjhhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Description** This is a counter-part of snd_pcm_stream_lock_irq().h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/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]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_pcm_stream_unlock_irqrestore (C function)"c.snd_pcm_stream_unlock_irqrestorehNtauh1hhj^hhhNhNubh)}(hhh](j)}(h`void snd_pcm_stream_unlock_irqrestore (struct snd_pcm_substream *substream, unsigned long flags)h]j )}(h_void snd_pcm_stream_unlock_irqrestore(struct snd_pcm_substream *substream, unsigned long flags)h](j)}(hvoidh]hvoid}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(hhhj:hKubj3)}(h snd_pcm_stream_unlock_irqrestoreh]j9)}(h snd_pcm_stream_unlock_irqrestoreh]h snd_pcm_stream_unlock_irqrestore}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj(hhhj:hKubjT)}(h:(struct snd_pcm_substream *substream, unsigned long flags)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjihhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjeubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjeubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjOsb"c.snd_pcm_stream_unlock_irqrestoreasbuh1hhjeubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjeubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjaubjZ)}(hunsigned long flagsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjaubeh}(h]h ]h"]h$]h&]jQjRuh1jShj(hhhj:hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj$hhhj:hKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj:hKhj!hhubjv)}(hhh]j{)}(hUnlock the PCM streamh]hUnlock the PCM stream}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhj:hhubah}(h]h ]h"]h$]h&]uh1juhj!hhhj:hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjYubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjxubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhKhjuubj)}(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]j{)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjuubeh}(h]h ]h"]h$]h&]uh1jhjYubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjYubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chKhjYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_set_state (C function)c.snd_pcm_set_statehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hSvoid snd_pcm_set_state (struct snd_pcm_substream *substream, snd_pcm_state_t state)h]j )}(hRvoid snd_pcm_set_state(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](j)}(hvoidh]hvoid}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMnubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3hhhjEhMnubj3)}(hsnd_pcm_set_stateh]j9)}(hsnd_pcm_set_stateh]hsnd_pcm_set_state}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj3hhhjEhMnubjT)}(h<(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjthhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjpubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjpubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjZsbc.snd_pcm_set_stateasbuh1hhjpubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjpubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjlubjZ)}(hsnd_pcm_state_t stateh](h)}(hhh]j9)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_set_stateasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hstateh]hstate}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjlubeh}(h]h ]h"]h$]h&]jQjRuh1jShj3hhhjEhMnubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj/hhhjEhMnubah}(h]j*ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjEhMnhj,hhubjv)}(hhh]j{)}(h*Set the PCM runtime state with stream lockh]h*Set the PCM runtime state with stream lock}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMnhj<hhubah}(h]h ]h"]h$]h&]uh1juhj,hhhjEhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjWjjWjjjuh1hhhhj^hNhNubj)}(hq**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``snd_pcm_state_t state`` state to seth](j{)}(h**Parameters**h]j)}(hjah]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMrhj[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&]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.chMohjzubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjhMohjwubj)}(h&``snd_pcm_state_t state`` state to seth](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.chMqhjubj)}(hhh]j{)}(h state to seth]h state to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjwubeh}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_get_state (C function)c.snd_pcm_get_statehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hGsnd_pcm_state_t snd_pcm_get_state (struct snd_pcm_substream *substream)h]j )}(hFsnd_pcm_state_t snd_pcm_get_state(struct snd_pcm_substream *substream)h](h)}(hhh]j9)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_get_statesbc.snd_pcm_get_stateasbuh1hhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM|ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj7hM|ubj3)}(hsnd_pcm_get_stateh]j9)}(hj4h]hsnd_pcm_get_state}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj7hM|ubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjehhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjaubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j2c.snd_pcm_get_stateasbuh1hhjaubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjaubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj7hM|ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj7hM|ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hM|hjhhubjv)}(hhh]j{)}(h+Read the PCM runtime state with stream lockh]h+Read the PCM runtime state with stream lock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM|hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj7hM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hj**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** the current PCM stateh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(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.chM}hj!ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<hM}hj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hM}hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjbh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(hthe current PCM stateh]hthe current PCM state}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/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_hw_params_choose (C function)c.snd_pcm_hw_params_choosehNtauh1hhj^hhhNhNubh)}(hhh](j)}(h^int snd_pcm_hw_params_choose (struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h]j )}(h]int snd_pcm_hw_params_choose(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_hw_params_chooseh]j9)}(hsnd_pcm_hw_params_chooseh]hsnd_pcm_hw_params_choose}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hA(struct snd_pcm_substream *pcm, struct snd_pcm_hw_params *params)h](jZ)}(hstruct snd_pcm_substream *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_hw_params_chooseasbuh1hhjubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hpcmh]hpcm}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h struct snd_pcm_hw_params *paramsh](j`)}(hjch]hstruct}(hjVhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjRubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]jc.snd_pcm_hw_params_chooseasbuh1hhjRubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj9)}(hparamsh]hparams}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h,choose a configuration defined by **params**h](h"choose a configuration defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_pcm_substream *pcm`` PCM instance ``struct snd_pcm_hw_params *params`` the hw_params instance **Description** Choose one configuration from configuration space defined by **params**. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick time **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh](j)}(h/``struct snd_pcm_substream *pcm`` PCM instance h](j)}(h!``struct snd_pcm_substream *pcm``h]j)}(hj&h]hstruct snd_pcm_substream *pcm}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj ubj)}(hhh]j{)}(h PCM instanceh]h PCM instance}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj;hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhjubj)}(h<``struct snd_pcm_hw_params *params`` the hw_params instance h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hj_h]h struct snd_pcm_hw_params *params}(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.chMhjYubj)}(hhh]j{)}(hthe hw_params instanceh]hthe hw_params instance}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjthMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(hChoose one configuration from configuration space defined by **params**. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick timeh](h=Choose one configuration from configuration space defined by }(hjhhhNhNubj)}(h **params**h]hparams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. The configuration chosen is that obtained fixing in this order: first access, first format, first subformat, min channels, min rate, min period time, max buffer size, min tick time}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_start (C function)c.snd_pcm_starthNtauh1hhj^hhhNhNubh)}(hhh](j)}(h7int snd_pcm_start (struct snd_pcm_substream *substream)h]j )}(h6int snd_pcm_start(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/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 ]j.ah"]h$]h&]uh1j!hjhhhj&hMubj3)}(h snd_pcm_starth]j9)}(h snd_pcm_starth]h snd_pcm_start}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj&hMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjQubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jj;sbc.snd_pcm_startasbuh1hhjQubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjMubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj&hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj&hMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj&hMhj hhubjv)}(hhh]j{)}(hstart all linked streamsh]hstart all linked streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj&hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the PCM substream instance **Return** Zero if successful, or a negative error code. The stream lock must be acquired before calling this function.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/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]j{)}(hthe PCM substream instanceh]hthe PCM substream instance}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjTh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(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.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_stop (C function)c.snd_pcm_stophNtauh1hhj^hhhNhNubh)}(hhh](j)}(hMint snd_pcm_stop (struct snd_pcm_substream *substream, snd_pcm_state_t state)h]j )}(hLint snd_pcm_stop(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM,ubj3)}(h snd_pcm_stoph]j9)}(h snd_pcm_stoph]h snd_pcm_stop}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM,ubjT)}(h<(struct snd_pcm_substream *substream, snd_pcm_state_t state)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stopasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_state_t stateh](h)}(hhh]j9)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]jc.snd_pcm_stopasbuh1hhjDubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubj9)}(hstateh]hstate}(hjwhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM,ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM,ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM,hjhhubjv)}(hhh]j{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM,hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM0hjubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM-hjubj)}(hhh]j{)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM-hjubj)}(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.chM.hjubj)}(hhh]j{)}(h#PCM state after stopping the streamh]h#PCM state after stopping the stream}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hM.hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hM.hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjVh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM0hjubj{)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM/hjubj{)}(h **Return**h]j)}(hj}h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM1hjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM2hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_drain_done (C function)c.snd_pcm_drain_donehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM=hjubj{)}(h **Return**h]j)}(hj%h]hReturn}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chM@hjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMAhjubeh}(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](j)}(h;int snd_pcm_stop_xrun (struct snd_pcm_substream *substream)h]j )}(h:int snd_pcm_stop_xrun(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMJubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfhhhjxhMJubj3)}(hsnd_pcm_stop_xrunh]j9)}(hsnd_pcm_stop_xrunh]hsnd_pcm_stop_xrun}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjfhhhjxhMJubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stop_xrunasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjfhhhjxhMJubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjbhhhjxhMJubah}(h]j]ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjxhMJhj_hhubjv)}(hhh]j{)}(h stop the running streams as XRUNh]h stop the running streams as XRUN}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMJhj'hhubah}(h]h ]h"]h$]h&]uh1juhj_hhhjxhMJubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMNhjFubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the PCM substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjkh]h#struct snd_pcm_substream *substream}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMKhjeubj)}(hhh]j{)}(hthe PCM substream instanceh]hthe PCM substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMKhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMKhjbubah}(h]h ]h"]h$]h&]uh1jhjFubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMMhjFubj{)}(hThis stops the given running substream (and all linked substreams) as XRUN. Unlike snd_pcm_stop(), this function takes the substream lock by itself.h]hThis stops the given running substream (and all linked substreams) as XRUN. Unlike snd_pcm_stop(), this function takes the substream lock by itself.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMLhjFubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMOhjFubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMPhjFubeh}(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](j)}(h-int snd_pcm_suspend_all (struct snd_pcm *pcm)h]j )}(h,int snd_pcm_suspend_all(struct snd_pcm *pcm)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/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 ]j.ah"]h$]h&]uh1j!hjhhhj hMubj3)}(hsnd_pcm_suspend_allh]j9)}(hsnd_pcm_suspend_allh]hsnd_pcm_suspend_all}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj hMubjT)}(h(struct snd_pcm *pcm)h]jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hjOhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjKubj")}(h h]h }(hj\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]j)}jj5sbc.snd_pcm_suspend_allasbuh1hhjKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj9)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjGubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhjhhubjv)}(hhh]j{)}(h2trigger SUSPEND to all substreams in the given pcmh]h2trigger SUSPEND to all substreams in the given pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hXJ**Parameters** ``struct snd_pcm *pcm`` the PCM instance **Description** Takes and releases pcm->open_mutex to serialize against concurrent open/close while walking the substreams. After this call, all streams are changed to SUSPENDED state. **Return** Zero if successful (or **pcm** is ``NULL``), or a negative error code.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj)}(hhh]j)}(h)``struct snd_pcm *pcm`` the PCM instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjh]hstruct snd_pcm *pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhj ubj)}(hhh]j{)}(hthe PCM instanceh]hthe PCM instance}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj(hMhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjNh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(hkTakes and releases pcm->open_mutex to serialize against concurrent open/close while walking the substreams.h]hkTakes and releases pcm->open_mutex to serialize against concurrent open/close while walking the substreams.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:33: ./sound/core/pcm_native.chMhjubj{)}(hint snd_pcm_stream_linked(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMsubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbhhhjthMsubj3)}(hsnd_pcm_stream_linkedh]j9)}(hsnd_pcm_stream_linkedh]hsnd_pcm_stream_linked}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjbhhhjthMsubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_stream_linkedasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjbhhhjthMsubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj^hhhjthMsubah}(h]jYah ](jmjneh"]h$]h&]jrjs)jthuh1jhjthMshj[hhubjv)}(hhh]j{)}(h1Check whether the substream is linked with othersh]h1Check whether the substream is linked with others}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMshj#hhubah}(h]h ]h"]h$]h&]uh1juhj[hhhjthMsubeh}(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 being linked with othersh](j{)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMwhjBubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjgh]h#struct snd_pcm_substream *substream}(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.hhMthjaubj)}(hhh]j{)}(hsubstream to checkh]hsubstream to check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hMthj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMthj^ubah}(h]h ]h"]h$]h&]uh1jhjBubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMvhjBubj{)}(h7true if the given substream is being linked with othersh]h7true if the given substream is being linked with others}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMvhjBubeh}(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](j)}(hsnd_pcm_stream_lock_irqsaveh]j )}(hsnd_pcm_stream_lock_irqsaveh]j3)}(hsnd_pcm_stream_lock_irqsaveh]j9)}(hjh]hsnd_pcm_stream_lock_irqsave}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj^hhubj)}(hLock the PCM stream h]j{)}(hLock the PCM streamh]hLock the PCM stream}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj3ubah}(h]h ]h"]h$]h&]uh1jhjEhMhj^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](j{)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjLubj)}(hhh](j)}(h``substream`` PCM substream h](j)}(h ``substream``h]j)}(hjqh]h substream}(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]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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]j{)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubeh}(h]h ]h"]h$]h&]uh1jhjLubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjLubj{)}(hThis locks the PCM stream like snd_pcm_stream_lock() but with the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().h]hThis locks the PCM stream like snd_pcm_stream_lock() but with the local IRQ (only when nonatomic is false). In nonatomic case, this is identical as snd_pcm_stream_lock().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](h,snd_pcm_stream_lock_irqsave_nested (C macro)$c.snd_pcm_stream_lock_irqsave_nestedhNtauh1hhj^hhhNhNubh)}(hhh](j)}(h"snd_pcm_stream_lock_irqsave_nestedh]j )}(h"snd_pcm_stream_lock_irqsave_nestedh]j3)}(h"snd_pcm_stream_lock_irqsave_nestedh]j9)}(hj$h]h"snd_pcm_stream_lock_irqsave_nested}(hj.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj&hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj"hhhjAhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjAhMhjhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjhhhjAhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjZjjZjjjuh1hhhhj^hNhNubj{)}(h9``snd_pcm_stream_lock_irqsave_nested (substream, flags)``h]j)}(hj`h]h5snd_pcm_stream_lock_irqsave_nested (substream, flags)}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h Single-nested PCM stream lockingh]h Single-nested PCM stream locking}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjvubah}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(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]j{)}(h irq flagsh]h irq flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj(h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(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.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hsnd_pcm_group_for_each_entryh]j )}(hsnd_pcm_group_for_each_entryh]j3)}(hsnd_pcm_group_for_each_entryh]j9)}(hjgh]hsnd_pcm_group_for_each_entry}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjihhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjehhhjhMubah}(h]j`ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjbhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjbhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj{)}(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&]uh1jzhd/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]j{)}(h"iterate over the linked substreamsh]h"iterate over the linked substreams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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** ``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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h``s`` the iterator h](j)}(h``s``h]j)}(hjh]hs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(h the iteratorh]h the iterator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h``substream`` the substream h](j)}(h ``substream``h]j)}(hj0h]h substream}(hj2hhhNhNubah}(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]j{)}(h the substreamh]h the substream}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjEhMhjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjkh]h Description}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(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&]uh1jzhd/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](hsnd_pcm_running (C function)c.snd_pcm_runninghNtauh1hhj^hhhNhNubh)}(hhh](j)}(h9int snd_pcm_running (struct snd_pcm_substream *substream)h]j )}(h8int snd_pcm_running(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_runningh]j9)}(hsnd_pcm_runningh]hsnd_pcm_running}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj#hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjCmodnameN classnameNjj)}j]j)}jj sbc.snd_pcm_runningasbuh1hhjubj")}(h h]h }(hjahhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h1Check whether the substream is in a running stateh]h1Check whether the substream is in a running state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h;``struct snd_pcm_substream *substream`` substream to check h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hsubstream to checkh]hsubstream to check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hj"h]hReturn}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h __snd_pcm_set_state (C function)c.__snd_pcm_set_statehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hQvoid __snd_pcm_set_state (struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h]j )}(hPvoid __snd_pcm_set_state(struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h](j)}(hvoidh]hvoid}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjchhhjuhMubj3)}(h__snd_pcm_set_stateh]j9)}(h__snd_pcm_set_stateh]h__snd_pcm_set_state}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjchhhjuhMubjT)}(h8(struct snd_pcm_runtime *runtime, snd_pcm_state_t state)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.__snd_pcm_set_stateasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_state_t stateh](h)}(hhh]j9)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.__snd_pcm_set_stateasbuh1hhjubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hstateh]hstate}(hjEhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjchhhjuhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj_hhhjuhMubah}(h]jZah ](jmjneh"]h$]h&]jrjs)jthuh1jhjuhMhj\hhubjv)}(hhh]j{)}(hChange the current PCM stateh]hChange the current PCM state}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjlhhubah}(h]h ]h"]h$]h&]uh1juhj\hhhjuhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hPCM runtime to seth]hPCM runtime to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h3``snd_pcm_state_t state`` the current state to set h](j)}(h``snd_pcm_state_t state``h]j)}(hjh]hsnd_pcm_state_t state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hthe current state to seth]hthe current state to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj$h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hCall within the stream lockh]hCall within the stream lock}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hHssize_t bytes_to_samples (struct snd_pcm_runtime *runtime, ssize_t size)h]j )}(hGssize_t bytes_to_samples(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j9)}(hssize_th]hssize_t}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jbytes_to_samplessbc.bytes_to_samplesasbuh1hhjehhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjehhhjhMubj3)}(hbytes_to_samplesh]j9)}(hjh]hbytes_to_samples}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjehhhjhMubjT)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.bytes_to_samplesasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h ssize_t sizeh](h)}(hhh]j9)}(hssize_th]hssize_t}(hj.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]jc.bytes_to_samplesasbuh1hhj'ubj")}(h h]h }(hjLhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj9)}(hsizeh]hsize}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjehhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjahhhjhMubah}(h]j\ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhj^hhubjv)}(hhh]j{)}(h1Unit conversion of the size from bytes to samplesh]h1Unit conversion of the size from bytes to samples}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhj^hhhjhMubeh}(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 samplesh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``ssize_t size`` size in bytes h](j)}(h``ssize_t size``h]j)}(hjh]h ssize_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(h size in bytesh]h size in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hj9h]hReturn}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe size in samplesh]hthe size in samples}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_frames (C function)c.bytes_to_frameshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hQsnd_pcm_sframes_t bytes_to_frames (struct snd_pcm_runtime *runtime, ssize_t size)h]j )}(hPsnd_pcm_sframes_t bytes_to_frames(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j9)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jbytes_to_framessbc.bytes_to_framesasbuh1hhjzhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzhhhjhMubj3)}(hbytes_to_framesh]j9)}(hjh]hbytes_to_frames}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjzhhhjhMubjT)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.bytes_to_framesasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h ssize_t sizeh](h)}(hhh]j9)}(hssize_th]hssize_t}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEmodnameN classnameNjj)}j]jc.bytes_to_framesasbuh1hhj<ubj")}(h h]h }(hjahhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj9)}(hsizeh]hsize}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjzhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjvhhhjhMubah}(h]jqah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjshhubjv)}(hhh]j{)}(h0Unit conversion of the size from bytes to framesh]h0Unit conversion of the size from bytes to frames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjshhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``ssize_t size`` size in bytes h](j)}(h``ssize_t size``h]j)}(hjh]h ssize_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj)}(hhh]j{)}(h size in bytesh]h size in bytes}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj(hMhj)ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj(hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjNh]hReturn}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe size in framesh]hthe size in frames}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](hsamples_to_bytes (C function)c.samples_to_byteshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hHssize_t samples_to_bytes (struct snd_pcm_runtime *runtime, ssize_t size)h]j )}(hGssize_t samples_to_bytes(struct snd_pcm_runtime *runtime, ssize_t size)h](h)}(hhh]j9)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(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 }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsamples_to_bytesh]j9)}(hjh]hsamples_to_bytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h/(struct snd_pcm_runtime *runtime, ssize_t size)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.samples_to_bytesasbuh1hhjubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h ssize_t sizeh](h)}(hhh]j9)}(hssize_th]hssize_t}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNjj)}j]jc.samples_to_bytesasbuh1hhjQubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubj9)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h1Unit conversion of the size from samples to bytesh]h1Unit conversion of the size from samples to bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``ssize_t size`` size in samples **Return** the byte sizeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h!``ssize_t size`` size in samples h](j)}(h``ssize_t size``h]j)}(hj(h]h ssize_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.hhMhj"ubj)}(hhh]j{)}(hsize in samplesh]hsize in samples}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj=hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjch]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h the byte sizeh]h the byte size}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](hframes_to_bytes (C function)c.frames_to_byteshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hQssize_t frames_to_bytes (struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h]j )}(hPssize_t frames_to_bytes(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](h)}(hhh]j9)}(hssize_th]hssize_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jframes_to_bytessbc.frames_to_bytesasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hframes_to_bytesh]j9)}(hjh]hframes_to_bytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h9(struct snd_pcm_runtime *runtime, snd_pcm_sframes_t size)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.frames_to_bytesasbuh1hhjubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjQhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_sframes_t sizeh](h)}(hhh]j9)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNjj)}j]jc.frames_to_bytesasbuh1hhjfubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubj9)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h0Unit conversion of the size from frames to bytesh]h0Unit conversion of the size from frames to bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``snd_pcm_sframes_t size`` size in frames **Return** the byte sizeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h*``snd_pcm_sframes_t size`` size in frames h](j)}(h``snd_pcm_sframes_t size``h]j)}(hj=h]hsnd_pcm_sframes_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.hhMhj7ubj)}(hhh]j{)}(hsize in framesh]hsize in frames}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjxh]hReturn}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjubj{)}(h the byte sizeh]h the byte size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](hframe_aligned (C function)c.frame_alignedhNtauh1hhj^hhhNhNubh)}(hhh](j)}(hBint frame_aligned (struct snd_pcm_runtime *runtime, ssize_t bytes)h]j )}(hAint frame_aligned(struct snd_pcm_runtime *runtime, ssize_t bytes)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(h frame_alignedh]j9)}(h frame_alignedh]h frame_aligned}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h0(struct snd_pcm_runtime *runtime, ssize_t bytes)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.frame_alignedasbuh1hhjubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h ssize_t bytesh](h)}(hhh]j9)}(hssize_th]hssize_t}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j4c.frame_alignedasbuh1hhjhubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj9)}(hbytesh]hbytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h0Check whether the byte size is aligned to framesh]h0Check whether the byte size is aligned to frames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjh]hstruct snd_pcm_runtime *runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h ``ssize_t bytes`` size in bytes h](j)}(h``ssize_t bytes``h]j)}(hj?h]h ssize_t bytes}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj9ubj)}(hhh]j{)}(h size in bytesh]h size in bytes}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjThMhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjzh]hReturn}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h true if aligned, or false if noth]h true if aligned, or false if not}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_buffer_bytes (C function)c.snd_pcm_lib_buffer_byteshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hEsize_t snd_pcm_lib_buffer_bytes (struct snd_pcm_substream *substream)h]j )}(hDsize_t snd_pcm_lib_buffer_bytes(struct snd_pcm_substream *substream)h](h)}(hhh]j9)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_lib_buffer_bytessbc.snd_pcm_lib_buffer_bytesasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_lib_buffer_bytesh]j9)}(hjh]hsnd_pcm_lib_buffer_bytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]jc.snd_pcm_lib_buffer_bytesasbuh1hhj ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h substreamh]h substream}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** buffer byte sizeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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.hhMhjubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjubj{)}(hbuffer byte sizeh]hbuffer byte size}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_lib_period_bytes (C function)c.snd_pcm_lib_period_byteshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hEsize_t snd_pcm_lib_period_bytes (struct snd_pcm_substream *substream)h]j )}(hDsize_t snd_pcm_lib_period_bytes(struct snd_pcm_substream *substream)h](h)}(hhh]j9)}(hsize_th]hsize_t}(hjVhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]j)}jsnd_pcm_lib_period_bytessbc.snd_pcm_lib_period_bytesasbuh1hhjOhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM)ubj")}(h h]h }(hjxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOhhhjwhM)ubj3)}(hsnd_pcm_lib_period_bytesh]j9)}(hjth]hsnd_pcm_lib_period_bytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjOhhhjwhM)ubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jrc.snd_pcm_lib_period_bytesasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjOhhhjwhM)ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjKhhhjwhM)ubah}(h]jFah ](jmjneh"]h$]h&]jrjs)jthuh1jhjwhM)hjHhhubjv)}(hhh]j{)}(h/Get the period size of the current PCM in bytesh]h/Get the period size of the current PCM in bytes}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM)hj#hhubah}(h]h ]h"]h$]h&]uh1juhjHhhhjwhM)ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhj^hNhNubj)}(he**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** period byte sizeh](j{)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM-hjBubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjgh]h#struct snd_pcm_substream *substream}(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.hhM*hjaubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hM*hj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hM*hj^ubah}(h]h ]h"]h$]h&]uh1jhjBubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM,hjBubj{)}(hperiod byte sizeh]hperiod byte size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM,hjBubeh}(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](j)}(hJsnd_pcm_uframes_t snd_pcm_playback_avail (struct snd_pcm_runtime *runtime)h]j )}(hIsnd_pcm_uframes_t snd_pcm_playback_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j9)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_availsbc.snd_pcm_playback_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM5ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj hM5ubj3)}(hsnd_pcm_playback_availh]j9)}(hjh]hsnd_pcm_playback_avail}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj hM5ubjT)}(h!(struct snd_pcm_runtime *runtime)h]jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hj9hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj5ubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]jc.snd_pcm_playback_availasbuh1hhj5ubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj hM5ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj hM5ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hM5hjhhubjv)}(hhh]j{)}(h/Get the available (writable) space for playbackh]h/Get the available (writable) space for playback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM5hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hM5ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjjjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Description** Result is between 0 ... (boundary - 1) **Return** available frame sizeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM9hjubj)}(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.hhM6hjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj6h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM8hjubj{)}(h&Result is between 0 ... (boundary - 1)h]h&Result is between 0 ... (boundary - 1)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM7hjubj{)}(h **Return**h]j)}(hj]h]hReturn}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM9hjubj{)}(havailable frame sizeh]havailable frame size}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_capture_avail (C function)c.snd_pcm_capture_availhNtauh1hhj^hhhNhNubh)}(hhh](j)}(hIsnd_pcm_uframes_t snd_pcm_capture_avail (struct snd_pcm_runtime *runtime)h]j )}(hHsnd_pcm_uframes_t snd_pcm_capture_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j9)}(hsnd_pcm_uframes_th]hsnd_pcm_uframes_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_availsbc.snd_pcm_capture_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMGubj3)}(hsnd_pcm_capture_availh]j9)}(hjh]hsnd_pcm_capture_avail}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMGubjT)}(h!(struct snd_pcm_runtime *runtime)h]jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_pcm_capture_availasbuh1hhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMGubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMGubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMGhjhhubjv)}(hhh]j{)}(h.Get the available (readable) space for captureh]h.Get the available (readable) space for capture}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMGhjrhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMGubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMKhjubj)}(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.hhMHhjubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMJhjubj{)}(h&Result is between 0 ... (boundary - 1)h]h&Result is between 0 ... (boundary - 1)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMIhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMKhjubj{)}(havailable frame sizeh]havailable frame size}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMLhjubeh}(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](j)}(hMsnd_pcm_sframes_t snd_pcm_playback_hw_avail (struct snd_pcm_runtime *runtime)h]j )}(hLsnd_pcm_sframes_t snd_pcm_playback_hw_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j9)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jsnd_pcm_playback_hw_availsbc.snd_pcm_playback_hw_availasbuh1hhjYhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMWubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYhhhjhMWubj3)}(hsnd_pcm_playback_hw_availh]j9)}(hj~h]hsnd_pcm_playback_hw_avail}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjYhhhjhMWubjT)}(h!(struct snd_pcm_runtime *runtime)h]jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j|c.snd_pcm_playback_hw_availasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjYhhhjhMWubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjUhhhjhMWubah}(h]jPah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMWhjRhhubjv)}(hhh]j{)}(h!Get the queued space for playbackh]h!Get the queued space for playback}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMWhj-hhubah}(h]h ]h"]h$]h&]uh1juhjRhhhjhMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhj^hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](j{)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM[hjLubj)}(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.hhMXhjkubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjhubah}(h]h ]h"]h$]h&]uh1jhjLubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMZhjLubj{)}(havailable frame sizeh]havailable frame size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMZhjLubeh}(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](j)}(hLsnd_pcm_sframes_t snd_pcm_capture_hw_avail (struct snd_pcm_runtime *runtime)h]j )}(hKsnd_pcm_sframes_t snd_pcm_capture_hw_avail(struct snd_pcm_runtime *runtime)h](h)}(hhh]j9)}(hsnd_pcm_sframes_th]hsnd_pcm_sframes_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_pcm_capture_hw_availsbc.snd_pcm_capture_hw_availasbuh1hhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMbubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj hMbubj3)}(hsnd_pcm_capture_hw_availh]j9)}(hj h]hsnd_pcm_capture_hw_avail}(hj( hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj hMbubjT)}(h!(struct snd_pcm_runtime *runtime)h]jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjC hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj? ubj")}(h h]h }(hjP hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj? ubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hja hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjc modnameN classnameNjj)}j]j c.snd_pcm_capture_hw_availasbuh1hhj? ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj? ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj? ubj9)}(hruntimeh]hruntime}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj? ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj; ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj hMbubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj hMbubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMbhjhhubjv)}(hhh]j{)}(hGet the free space for captureh]hGet the free space for capture}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMbhj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhj hMbubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhj^hNhNubj)}(hl**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance **Return** available frame sizeh](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMfhj 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.hhMchj ubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMchj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMchj ubah}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h **Return**h]j)}(hj@ h]hReturn}(hjB hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj> ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMehj ubj{)}(havailable frame sizeh]havailable frame size}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMehj ubeh}(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](j)}(h@int snd_pcm_playback_ready (struct snd_pcm_substream *substream)h]j )}(h?int snd_pcm_playback_ready(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhj hMmubj3)}(hsnd_pcm_playback_readyh]j9)}(hsnd_pcm_playback_readyh]hsnd_pcm_playback_ready}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hMmubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_pcm_playback_readyasbuh1hhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubah}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hMmubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj} hhhj hMmubah}(h]jx ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMmhjz hhubjv)}(hhh]j{)}(h.check whether the playback buffer is availableh]h.check whether the playback buffer is available}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmhjB hhubah}(h]h ]h"]h$]h&]uh1juhjz hhhj hMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj] jj] jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjg h]h Parameters}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMqhja 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.hhMnhj ubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMnhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMnhj} ubah}(h]h ]h"]h$]h&]uh1jhja ubj{)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMphja ubj{)}(hEChecks whether enough free space is available on the playback buffer.h]hEChecks whether enough free space is available on the playback buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMohja ubj{)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMqhja ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMrhja ubeh}(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](j)}(h?int snd_pcm_capture_ready (struct snd_pcm_substream *substream)h]j )}(h>int snd_pcm_capture_ready(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj- hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj) 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 ]j.ah"]h$]h&]uh1j!hj) hhhj; hM{ubj3)}(hsnd_pcm_capture_readyh]j9)}(hsnd_pcm_capture_readyh]hsnd_pcm_capture_ready}(hjN hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJ ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj) hhhj; hM{ubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjf ubj")}(h h]h }(hjw hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjf ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjP sbc.snd_pcm_capture_readyasbuh1hhjf ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjf ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjf ubj9)}(h substreamh]h substream}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjf ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjb ubah}(h]h ]h"]h$]h&]jQjRuh1jShj) hhhj; hM{ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj% hhhj; hM{ubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj; hM{hj" hhubjv)}(hhh]j{)}(h-check whether the capture buffer is availableh]h-check whether the capture buffer is available}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM{hj hhubah}(h]h ]h"]h$]h&]uh1juhj" hhhj; hM{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj 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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/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}(hj0 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]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjC hM|hjD ubah}(h]h ]h"]h$]h&]uh1jhj( ubeh}(h]h ]h"]h$]h&]uh1jhjC hM|hj% ubah}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hji h]h Description}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM~hj ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM}hj ubj{)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj ubj{)}(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&]uh1jzhd/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_data (C function)c.snd_pcm_playback_datahNtauh1hhj^hhhNhNubh)}(hhh](j)}(h?int snd_pcm_playback_data (struct snd_pcm_substream *substream)h]j )}(h>int snd_pcm_playback_data(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j.ah"]h$]h&]uh1j!hj hhhj hMubj3)}(hsnd_pcm_playback_datah]j9)}(hsnd_pcm_playback_datah]hsnd_pcm_playback_data}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jj sbc.snd_pcm_playback_dataasbuh1hhjubj")}(h h]h }(hjPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubah}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhj hhubjv)}(hhh]j{)}(h4check whether any data exists on the playback bufferh]h4check whether any data exists on the playback buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h **Return**h]j)}(hj8h]hReturn}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(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.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_playback_empty (C function)c.snd_pcm_playback_emptyhNtauh1hhj^hhhNhNubh)}(hhh](j)}(h@int snd_pcm_playback_empty (struct snd_pcm_substream *substream)h]j )}(h?int snd_pcm_playback_empty(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjyhhhjhMubj3)}(hsnd_pcm_playback_emptyh]j9)}(hsnd_pcm_playback_emptyh]hsnd_pcm_playback_empty}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjyhhhjhMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_pcm_playback_emptyasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjyhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjuhhhjhMubah}(h]jpah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjrhhubjv)}(hhh]j{)}(h*check whether the playback buffer is emptyh]h*check whether the playback buffer is empty}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj:hhubah}(h]h ]h"]h$]h&]uh1juhjrhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj_h]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYubj)}(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}(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.hhMhjxubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjhMhjuubah}(h]h ]h"]h$]h&]uh1jhjYubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYubj{)}(h,Checks whether the playback buffer is empty.h]h,Checks whether the playback buffer is empty.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYubj{)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjYubeh}(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](j)}(h?int snd_pcm_capture_empty (struct snd_pcm_substream *substream)h]j )}(h>int snd_pcm_capture_empty(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!hhhj3hMubj3)}(hsnd_pcm_capture_emptyh]j9)}(hsnd_pcm_capture_emptyh]hsnd_pcm_capture_empty}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjBubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj!hhhj3hMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjbhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj^ubj")}(h h]h }(hjohhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjHsbc.snd_pcm_capture_emptyasbuh1hhj^ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubah}(h]h ]h"]h$]h&]jQjRuh1jShj!hhhj3hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj3hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj3hMhjhhubjv)}(hhh]j{)}(h)check whether the capture buffer is emptyh]h)check whether the capture buffer is empty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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)}(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]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj;hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjah]h Description}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h+Checks whether the capture buffer is empty.h]h+Checks whether the capture buffer is empty.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(h"Non-zero if empty, or zero if not.h]h"Non-zero if empty, or zero if not.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_trigger_done (C function)c.snd_pcm_trigger_donehNtauh1hhj^hhhNhNubh)}(hhh](j)}(havoid snd_pcm_trigger_done (struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h]j )}(h`void snd_pcm_trigger_done(struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_pcm_trigger_doneh]j9)}(hsnd_pcm_trigger_doneh]hsnd_pcm_trigger_done}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hG(struct snd_pcm_substream *substream, struct snd_pcm_substream *master)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj%ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNjj)}j]j)}jjsbc.snd_pcm_trigger_doneasbuh1hhjubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h struct snd_pcm_substream *masterh](j`)}(hjch]hstruct}(hj|hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjxubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jDc.snd_pcm_trigger_doneasbuh1hhjxubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj9)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hMark the master substreamh]hMark the master substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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)}(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.hhMhj8ubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjShMhjTubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhjShMhj5ubj)}(hA``struct snd_pcm_substream *master`` the linked master substream h](j)}(h$``struct snd_pcm_substream *master``h]j)}(hjwh]h struct snd_pcm_substream *master}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjqubj)}(hhh]j{)}(hthe linked master substreamh]hthe linked master substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhMhj5ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hX$When multiple substreams of the same card are linked and the hardware supports the single-shot operation, the driver calls this in the loop in snd_pcm_group_for_each_entry() for marking the substream as "done". Then most of trigger operations are performed only to the given master substream.h]hX(When multiple substreams of the same card are linked and the hardware supports the single-shot operation, the driver calls this in the loop in snd_pcm_group_for_each_entry() for marking the substream as “done”. Then most of trigger operations are performed only to the given master substream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hYThe trigger_master mark is cleared at timestamp updates at the end of trigger operations.h]hYThe trigger_master mark is cleared at timestamp updates at the end of trigger operations.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(h@unsigned int params_channels (const struct snd_pcm_hw_params *p)h]j )}(h?unsigned int params_channels(const struct snd_pcm_hw_params *p)h](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj)}(hinth]hint}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hparams_channelsh]j9)}(hparams_channelsh]hparams_channels}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hj_hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj`)}(hjch]hstruct}(hjzhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjEsbc.params_channelsasbuh1hhj[ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hjh]hp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjWubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h-Get the number of channels from the hw paramsh]h-Get the number of channels from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(he**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the number of channelsh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hj=h]h!const struct snd_pcm_hw_params *p}(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.hhMhj7ubj)}(hhh]j{)}(h hw paramsh]h hw params}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjRhMhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhMhj4ubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjxh]hReturn}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe number of channelsh]hthe number of channels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjOhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jjsb c.params_rateasbuh1hhjubj")}(h h]h }(hjohhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjh]hp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h&Get the sample rate from the hw paramsh]h&Get the sample rate from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(h^**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the sample rateh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h hw paramsh]h hw params}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hj/h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe sample rateh]hthe sample rate}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_period_size (C function)c.params_period_sizehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hCunsigned int params_period_size (const struct snd_pcm_hw_params *p)h]j )}(hBunsigned int params_period_size(const struct snd_pcm_hw_params *p)h](j)}(hunsignedh]hunsigned}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjphhhjhMubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjphhhjhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjphhhjhMubj3)}(hparams_period_sizeh]j9)}(hparams_period_sizeh]hparams_period_size}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjphhhjhMubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.params_period_sizeasbuh1hhjubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjh]hp}(hjAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjphhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjlhhhjhMubah}(h]jgah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjihhubjv)}(hhh]j{)}(h2Get the period size (in frames) from the hw paramsh]h2Get the period size (in frames) from the hw params}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjghhubah}(h]h ]h"]h$]h&]uh1juhjihhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the period size in framesh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj)}(hhh]j{)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe period size in framesh]hthe period size in frames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(h?unsigned int params_periods (const struct snd_pcm_hw_params *p)h]j )}(h>unsigned int params_periods(const struct snd_pcm_hw_params *p)h](j)}(hunsignedh]hunsigned}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'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 ]j.ah"]h$]h&]uh1j!hj'hhhj9hMubj)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj9hMubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'hhhj9hMubj3)}(hparams_periodsh]j9)}(hparams_periodsh]hparams_periods}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj'hhhj9hMubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsbc.params_periodsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjh]hp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubah}(h]h ]h"]h$]h&]jQjRuh1jShj'hhhj9hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj#hhhj9hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj9hMhj hhubjv)}(hhh]j{)}(h,Get the number of periods from the hw paramsh]h,Get the number of periods from the hw params}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj9jj9jjjuh1hhhhj^hNhNubj)}(hd**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the number of periodsh](j{)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jzhd/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)}(hjbh]h!const struct snd_pcm_hw_params *p}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj\ubj)}(hhh]j{)}(h hw paramsh]h hw params}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjwhMhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhMhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj=ubj{)}(hthe number of periodsh]hthe number of periods}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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_buffer_size (C function)c.params_buffer_sizehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hCunsigned int params_buffer_size (const struct snd_pcm_hw_params *p)h]j )}(hBunsigned int params_buffer_size(const struct snd_pcm_hw_params *p)h](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hparams_buffer_sizeh]j9)}(hparams_buffer_sizeh]hparams_buffer_size}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hj;hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj`)}(hjch]hstruct}(hjVhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jj!sbc.params_buffer_sizeasbuh1hhj7ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(hjh]hp}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj3ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h2Get the buffer size (in frames) from the hw paramsh]h2Get the buffer size (in frames) from the hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhj^hNhNubj)}(hh**Parameters** ``const struct snd_pcm_hw_params *p`` hw params **Return** the buffer size in framesh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h hw paramsh]h hw params}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj.hMhj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjTh]hReturn}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjubj{)}(hthe buffer size in framesh]hthe buffer size in frames}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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 params_buffer_bytes (C function)c.params_buffer_byteshNtauh1hhj^hhhNhNubh)}(hhh](j)}(hDunsigned int params_buffer_bytes (const struct snd_pcm_hw_params *p)h]j )}(hCunsigned int params_buffer_bytes(const struct snd_pcm_hw_params *p)h](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM&ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM&ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhM&ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM&ubj3)}(hparams_buffer_bytesh]j9)}(hparams_buffer_bytesh]hparams_buffer_bytes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM&ubjT)}(h#(const struct snd_pcm_hw_params *p)h]jZ)}(h!const struct snd_pcm_hw_params *ph](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jjsbc.params_buffer_bytesasbuh1hhjubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hjh]hp}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM&ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM&ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM&hjhhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM&hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM&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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM*hjubj)}(hhh]j)}(h0``const struct snd_pcm_hw_params *p`` hw params h](j)}(h%``const struct snd_pcm_hw_params *p``h]j)}(hjh]h!const struct snd_pcm_hw_params *p}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM'hjubj)}(hhh]j{)}(h hw paramsh]h hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM)hjubj{)}(hthe buffer size in bytesh]hthe buffer size in bytes}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](j)}(hlint snd_pcm_hw_constraint_single (struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h]j )}(hkint snd_pcm_hw_constraint_single(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h](j)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLhhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMgubj")}(h h]h }(hj_hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjLhhhj^hMgubj3)}(hsnd_pcm_hw_constraint_singleh]j9)}(hsnd_pcm_hw_constraint_singleh]hsnd_pcm_hw_constraint_single}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjLhhhj^hMgubjT)}(hK(struct snd_pcm_runtime *runtime, snd_pcm_hw_param_t var, unsigned int val)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjssbc.snd_pcm_hw_constraint_singleasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hsnd_pcm_hw_param_t varh](h)}(hhh]j9)}(hsnd_pcm_hw_param_th]hsnd_pcm_hw_param_t}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_pcm_hw_constraint_singleasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvarh]hvar}(hj. hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int valh](j)}(hunsignedh]hunsigned}(hjG hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC ubj")}(h h]h }(hjU hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjC ubj)}(hinth]hint}(hjc hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjC ubj")}(h h]h }(hjq hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjC ubj9)}(hvalh]hval}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjC ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjLhhhj^hMgubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjHhhhj^hMgubah}(h]jCah ](jmjneh"]h$]h&]jrjs)jthuh1jhj^hMghjEhhubjv)}(hhh]j{)}(h%Constrain parameter to a single valueh]h%Constrain parameter to a single value}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghj hhubah}(h]h ]h"]h$]h&]uh1juhjEhhhj^hMgubeh}(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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhj 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.hhMhhj ubj)}(hhh]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhhj ubj)}(h?``snd_pcm_hw_param_t var`` The hw_params variable to constrain 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&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihj!ubj)}(hhh]j{)}(h#The hw_params variable to constrainh]h#The hw_params variable to constrain}(hjdma_buffer when **bufp** is non-NULL. Otherwise it clears the current buffer information.h](j{)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj &hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubj)}(hhh](j)}(h=``struct snd_pcm_substream *substream`` PCM substream to set h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj'&h]h#struct snd_pcm_substream *substream}(hj)&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%&ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj!&ubj)}(hhh]j{)}(hPCM substream to seth]hPCM substream to set}(hj@&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<&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}(hjb&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^&ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjZ&ubj)}(hhh]j{)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjy&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhju&hMhjv&ubah}(h]h ]h"]h$]h&]uh1jhjZ&ubeh}(h]h ]h"]h$]h&]uh1jhju&hMhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubj{)}(h**Description**h]j)}(hj&h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_pcm_gettime (C function)c.snd_pcm_gettimehNtauh1hhj^hhhNhNubh)}(hhh](j)}(hMvoid snd_pcm_gettime (struct snd_pcm_runtime *runtime, struct timespec64 *tv)h]j )}(hLvoid snd_pcm_gettime(struct snd_pcm_runtime *runtime, struct timespec64 *tv)h](j)}(hvoidh]hvoid}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&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 ]j.ah"]h$]h&]uh1j!hj&hhhj'hMubj3)}(hsnd_pcm_gettimeh]j9)}(hsnd_pcm_gettimeh]hsnd_pcm_gettime}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj&hhhj'hMubjT)}(h8(struct snd_pcm_runtime *runtime, struct timespec64 *tv)h](jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hj/'hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj+'ubj")}(h h]h }(hj<'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+'ubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjM'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJ'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjO'modnameN classnameNjj)}j]j)}jj'sbc.snd_pcm_gettimeasbuh1hhj+'ubj")}(h h]h }(hjm'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+'ubj)}(hjh]h*}(hj{'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+'ubj9)}(hruntimeh]hruntime}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj''ubjZ)}(hstruct timespec64 *tvh](j`)}(hjch]hstruct}(hj'hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj'ubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubh)}(hhh]j9)}(h timespec64h]h timespec64}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]ji'c.snd_pcm_gettimeasbuh1hhj'ubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj9)}(htvh]htv}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj''ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj&hhhj'hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj&hhhj'hMubah}(h]j&ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj'hMhj&hhubjv)}(hhh]j{)}(h3Fill the timespec64 depending on the timestamp modeh]h3Fill the timespec64 depending on the timestamp mode}(hj"(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj(hhubah}(h]h ]h"]h$]h&]uh1juhj&hhhj'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:(jj:(jjjuh1hhhhj^hNhNubj)}(hz**Parameters** ``struct snd_pcm_runtime *runtime`` PCM runtime instance ``struct timespec64 *tv`` timespec64 to fillh](j{)}(h**Parameters**h]j)}(hjD(h]h Parameters}(hjF(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB(ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM hj>(ubj)}(hhh](j)}(h9``struct snd_pcm_runtime *runtime`` PCM runtime instance h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjc(h]hstruct snd_pcm_runtime *runtime}(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]j{)}(hPCM runtime instanceh]hPCM runtime instance}(hj|(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjx(hMhjy(ubah}(h]h ]h"]h$]h&]uh1jhj](ubeh}(h]h ]h"]h$]h&]uh1jhjx(hMhjZ(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]j{)}(htimespec64 to fillh]htimespec64 to fill}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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(hMhjZ(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](j)}(hnint snd_pcm_set_fixed_buffer (struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h]j )}(hmint snd_pcm_set_fixed_buffer(struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h](j)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(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 ]j.ah"]h$]h&]uh1j!hj(hhhj)hM/ubj3)}(hsnd_pcm_set_fixed_bufferh]j9)}(hsnd_pcm_set_fixed_bufferh]hsnd_pcm_set_fixed_buffer}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj(hhhj)hM/ubjT)}(hQ(struct snd_pcm_substream *substream, int type, struct device *data, size_t size)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj3)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj/)ubj")}(h h]h }(hj@)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/)ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjQ)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjN)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjS)modnameN classnameNjj)}j]j)}jj)sbc.snd_pcm_set_fixed_bufferasbuh1hhj/)ubj")}(h h]h }(hjq)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/)ubj9)}(h substreamh]h substream}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+)ubjZ)}(hint typeh](j)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj9)}(htypeh]htype}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+)ubjZ)}(hstruct device *datah](j`)}(hjch]hstruct}(hj)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]jm)c.snd_pcm_set_fixed_bufferasbuh1hhj)ubj")}(h h]h }(hj*hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hj$*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(hdatah]hdata}(hj1*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+)ubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjM*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJ*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjO*modnameN classnameNjj)}j]jm)c.snd_pcm_set_fixed_bufferasbuh1hhjF*ubj")}(h h]h }(hjk*hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjF*ubj9)}(hsizeh]hsize}(hjy*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjF*ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj+)ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj(hhhj)hM/ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj(hhhj)hM/ubah}(h]j(ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj)hM/hj(hhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM/hj*hhubah}(h]h ]h"]h$]h&]uh1juhj(hhhj)hM/ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhj^hNhNubj)}(hXM**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes **Description** This is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn't allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it. **Return** zero if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM3hj*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.hhM0hj*ubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hM0hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hM0hj*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.hhM1hj+ubj)}(hhh]j{)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj6+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2+hM1hj3+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj2+hM1hj*ubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjV+h]hstruct device *data}(hjX+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT+ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM2hjP+ubj)}(hhh]j{)}(hDMA type dependent datah]hDMA type dependent data}(hjo+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjk+hM2hjl+ubah}(h]h ]h"]h$]h&]uh1jhjP+ubeh}(h]h ]h"]h$]h&]uh1jhjk+hM2hj*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.hhM3hj+ubj)}(hhh]j{)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+hM3hj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+hM3hj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubj{)}(h**Description**h]j)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM5hj*ubj{)}(hXThis is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn't allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it.h]hXThis is a variant of snd_pcm_set_managed_buffer(), but this pre-allocates only the given sized buffer and doesn’t allow re-allocation nor dynamic allocation of a larger buffer unlike the standard one. The function may return -ENOMEM error, hence the caller must check it.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM4hj*ubj{)}(h **Return**h]j)}(hj+h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM9hj*ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM:hj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_pcm_set_fixed_buffer_all (C function)c.snd_pcm_set_fixed_buffer_allhNtauh1hhj^hhhNhNubh)}(hhh](j)}(hbint snd_pcm_set_fixed_buffer_all (struct snd_pcm *pcm, int type, struct device *data, size_t size)h]j )}(haint snd_pcm_set_fixed_buffer_all(struct snd_pcm *pcm, int type, struct device *data, size_t size)h](j)}(hinth]hint}(hj6,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2,hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDubj")}(h h]h }(hjE,hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2,hhhjD,hMDubj3)}(hsnd_pcm_set_fixed_buffer_allh]j9)}(hsnd_pcm_set_fixed_buffer_allh]hsnd_pcm_set_fixed_buffer_all}(hjW,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjS,ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj2,hhhjD,hMDubjT)}(hA(struct snd_pcm *pcm, int type, struct device *data, size_t size)h](jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hjs,hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjo,ubj")}(h h]h }(hj,hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjo,ubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hj,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjY,sbc.snd_pcm_set_fixed_buffer_allasbuh1hhjo,ubj")}(h h]h }(hj,hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjo,ubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjo,ubj9)}(hpcmh]hpcm}(hj,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjo,ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjk,ubjZ)}(hint typeh](j)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj")}(h h]h }(hj,hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,ubj9)}(htypeh]htype}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjk,ubjZ)}(hstruct device *datah](j`)}(hjch]hstruct}(hj-hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj-ubj")}(h h]h }(hj'-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj8-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:-modnameN classnameNjj)}j]j,c.snd_pcm_set_fixed_buffer_allasbuh1hhj-ubj")}(h h]h }(hjV-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hjd-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(hdatah]hdata}(hjq-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjk,ubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-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 ]j.ah"]h$]h&]uh1j!hj-ubj9)}(hsizeh]hsize}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjk,ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj2,hhhjD,hMDubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj.,hhhjD,hMDubah}(h]j),ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjD,hMDhj+,hhubjv)}(hhh]j{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMDhj-hhubah}(h]h ]h"]h$]h&]uh1juhj+,hhhjD,hMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhj^hNhNubj)}(hX**Parameters** ``struct snd_pcm *pcm`` the pcm instance ``int type`` DMA type (SNDRV_DMA_TYPE_*) ``struct device *data`` DMA type dependent data ``size_t size`` the requested pre-allocation size in bytes **Description** Apply the set up of the fixed buffer via snd_pcm_set_fixed_buffer() for all substream. If any of allocation fails, it returns -ENOMEM, hence the caller must check the return value. **Return** zero if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hj.h]h Parameters}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMHhj-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.hhMEhj.ubj)}(hhh]j{)}(hthe pcm instanceh]hthe pcm instance}(hj=.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9.hMEhj:.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj9.hMEhj.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.hhMFhjW.ubj)}(hhh]j{)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjv.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjr.hMFhjs.ubah}(h]h ]h"]h$]h&]uh1jhjW.ubeh}(h]h ]h"]h$]h&]uh1jhjr.hMFhj.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.hhMGhj.ubj)}(hhh]j{)}(hDMA type dependent datah]hDMA type dependent data}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj.hMGhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMGhj.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.hhMHhj.ubj)}(hhh]j{)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj.hMHhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMHhj.ubeh}(h]h ]h"]h$]h&]uh1jhj-ubj{)}(h**Description**h]j)}(hj /h]h Description}(hj /hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMJhj-ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMIhj-ubj{)}(h **Return**h]j)}(hj1/h]hReturn}(hj3/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj//ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMMhj-ubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjG/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMNhj-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](j)}(hYdma_addr_t snd_pcm_sgbuf_get_addr (struct snd_pcm_substream *substream, unsigned int ofs)h]j )}(hXdma_addr_t snd_pcm_sgbuf_get_addr(struct snd_pcm_substream *substream, unsigned int ofs)h](h)}(hhh]j9)}(h dma_addr_th]h dma_addr_t}(hjy/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjv/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{/modnameN classnameNjj)}j]j)}jsnd_pcm_sgbuf_get_addrsbc.snd_pcm_sgbuf_get_addrasbuh1hhjr/hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMZubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjr/hhhj/hMZubj3)}(hsnd_pcm_sgbuf_get_addrh]j9)}(hj/h]hsnd_pcm_sgbuf_get_addr}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjr/hhhj/hMZubjT)}(h7(struct snd_pcm_substream *substream, unsigned int ofs)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j/c.snd_pcm_sgbuf_get_addrasbuh1hhj/ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj9)}(h substreamh]h substream}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubjZ)}(hunsigned int ofsh](j)}(hunsignedh]hunsigned}(hj80hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj40ubj")}(h h]h }(hjF0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj40ubj)}(hinth]hint}(hjT0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj40ubj")}(h h]h }(hjb0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj40ubj9)}(hofsh]hofs}(hjp0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj40ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjr/hhhj/hMZubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjn/hhhj/hMZubah}(h]ji/ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj/hMZhjk/hhubjv)}(hhh]j{)}(h/Get the DMA address at the corresponding offseth]h/Get the DMA address at the corresponding offset}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMZhj0hhubah}(h]h ]h"]h$]h&]uh1juhjk/hhhj/hMZubeh}(h]h ](jfunctioneh"]h$]h&]jjjj0jj0jjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream ``unsigned int ofs`` byte offset **Return** DMA addressh](j{)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^hj0ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj0h]h#struct snd_pcm_substream *substream}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM[hj0ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hM[hj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hM[hj0ubj)}(h!``unsigned int ofs`` byte offset h](j)}(h``unsigned int ofs``h]j)}(hj1h]hunsigned int ofs}(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.hhM\hj1ubj)}(hhh]j{)}(h byte offseth]h byte offset}(hj-1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj)1hM\hj*1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj)1hM\hj0ubeh}(h]h ]h"]h$]h&]uh1jhj0ubj{)}(h **Return**h]j)}(hjO1h]hReturn}(hjQ1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM1ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^hj0ubj{)}(h DMA addressh]h DMA address}(hje1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhM^hj0ubeh}(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](j)}(htunsigned int snd_pcm_sgbuf_get_chunk_size (struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h]j )}(hsunsigned int snd_pcm_sgbuf_get_chunk_size(struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h](j)}(hunsignedh]hunsigned}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMgubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1hhhj1hMgubj)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhj1hMgubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1hhhj1hMgubj3)}(hsnd_pcm_sgbuf_get_chunk_sizeh]j9)}(hsnd_pcm_sgbuf_get_chunk_sizeh]hsnd_pcm_sgbuf_get_chunk_size}(hj1hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj1hhhj1hMgubjT)}(hJ(struct snd_pcm_substream *substream, unsigned int ofs, unsigned int size)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj1hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj1ubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj 2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj 2modnameN classnameNjj)}j]j)}jj1sbc.snd_pcm_sgbuf_get_chunk_sizeasbuh1hhj1ubj")}(h h]h }(hj+2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubj)}(hjh]h*}(hj92hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj9)}(h substreamh]h substream}(hjF2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubjZ)}(hunsigned int ofsh](j)}(hunsignedh]hunsigned}(hj_2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[2ubj")}(h h]h }(hjm2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[2ubj)}(hinth]hint}(hj{2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[2ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[2ubj9)}(hofsh]hofs}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubjZ)}(hunsigned int sizeh](j)}(hunsignedh]hunsigned}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2ubj)}(hinth]hint}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2ubj9)}(hsizeh]hsize}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj1hhhj1hMgubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj1hhhj1hMgubah}(h]j1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hMghj1hhubjv)}(hhh]j{)}(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}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMghj3hhubah}(h]h ]h"]h$]h&]uh1juhj1hhhj1hMgubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*3jj*3jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj43h]h Parameters}(hj63hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj23ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhj.3ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjS3h]h#struct snd_pcm_substream *substream}(hjU3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMihjM3ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjl3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjh3hMihji3ubah}(h]h ]h"]h$]h&]uh1jhjM3ubeh}(h]h ]h"]h$]h&]uh1jhjh3hMihjJ3ubj)}(h!``unsigned int ofs`` byte offset h](j)}(h``unsigned int ofs``h]j)}(hj3h]hunsigned int ofs}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMjhj3ubj)}(hhh]j{)}(h byte offseth]h byte offset}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj3hMjhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMjhjJ3ubj)}(h+``unsigned int size`` byte size to examine h](j)}(h``unsigned int size``h]j)}(hj3h]hunsigned int size}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMkhj3ubj)}(hhh]j{)}(hbyte size to examineh]hbyte size to examine}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj3hMkhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMkhjJ3ubeh}(h]h ]h"]h$]h&]uh1jhj.3ubj{)}(h **Return**h]j)}(hj4h]hReturn}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmhj.3ubj{)}(h chunk sizeh]h chunk size}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMmhj.3ubeh}(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](j)}(h6void snd_pcm_limit_isa_dma_size (int dma, size_t *max)h]j )}(h5void snd_pcm_limit_isa_dma_size(int dma, size_t *max)h](j)}(hvoidh]hvoid}(hjE4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjA4hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjT4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjA4hhhjS4hMubj3)}(hsnd_pcm_limit_isa_dma_sizeh]j9)}(hsnd_pcm_limit_isa_dma_sizeh]hsnd_pcm_limit_isa_dma_size}(hjf4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjb4ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjA4hhhjS4hMubjT)}(h(int dma, size_t *max)h](jZ)}(hint dmah](j)}(hinth]hint}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~4ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~4ubj9)}(hdmah]hdma}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjz4ubjZ)}(h size_t *maxh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjh4sbc.snd_pcm_limit_isa_dma_sizeasbuh1hhj4ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj9)}(hmaxh]hmax}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjz4ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjA4hhhjS4hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=4hhhjS4hMubah}(h]j84ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjS4hMhj:4hhubjv)}(hhh]j{)}(h.Get the max size fitting with ISA DMA transferh]h.Get the max size fitting with ISA DMA transfer}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5hhubah}(h]h ]h"]h$]h&]uh1juhj:4hhhjS4hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj75jj75jjjuh1hhhhj^hNhNubj)}(hY**Parameters** ``int dma`` DMA number ``size_t *max`` pointer to store the max sizeh](j{)}(h**Parameters**h]j)}(hjA5h]h Parameters}(hjC5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?5ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj;5ubj)}(hhh](j)}(h``int dma`` DMA number h](j)}(h ``int dma``h]j)}(hj`5h]hint dma}(hjb5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^5ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjZ5ubj)}(hhh]j{)}(h DMA numberh]h DMA number}(hjy5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhju5hMhjv5ubah}(h]h ]h"]h$]h&]uh1jhjZ5ubeh}(h]h ]h"]h$]h&]uh1jhju5hMhjW5ubj)}(h-``size_t *max`` pointer to store the max sizeh](j)}(h``size_t *max``h]j)}(hj5h]h size_t *max}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5ubj)}(hhh]j{)}(hpointer to store the max sizeh]hpointer to store the max size}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhjW5ubeh}(h]h ]h"]h$]h&]uh1jhj;5ubeh}(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](j)}(h3const char * snd_pcm_direction_name (int direction)h]j )}(h1const char *snd_pcm_direction_name(int direction)h](j`)}(hjph]hconst}(hj5hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj5hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5hhhj6hMubj)}(hcharh]hchar}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj6hMubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5hhhj6hMubj)}(hjh]h*}(hj+6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj6hMubj3)}(hsnd_pcm_direction_nameh]j9)}(hsnd_pcm_direction_nameh]hsnd_pcm_direction_name}(hj<6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj86ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj5hhhj6hMubjT)}(h(int direction)h]jZ)}(h int directionh](j)}(hinth]hint}(hjX6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT6ubj")}(h h]h }(hjf6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT6ubj9)}(h directionh]h direction}(hjt6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjT6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjP6ubah}(h]h ]h"]h$]h&]jQjRuh1jShj5hhhj6hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj5hhhj6hMubah}(h]j5ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj6hMhj5hhubjv)}(hhh]j{)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6hhubah}(h]h ]h"]h$]h&]uh1juhj5hhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubj)}(hhh]j)}(hB``int direction`` Stream's direction, one of SNDRV_PCM_STREAM_XXX h](j)}(h``int direction``h]j)}(hj6h]h int direction}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubj)}(hhh]j{)}(h/Stream's direction, one of SNDRV_PCM_STREAM_XXXh]h1Stream’s direction, one of SNDRV_PCM_STREAM_XXX}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubj{)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj6ubj{)}(h4Returns a string naming the direction of the stream.h]h4Returns a string naming the direction of the stream.}(hj07hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](hsnd_pcm_stream_str (C function)c.snd_pcm_stream_strhNtauh1hhj^hhhNhNubh)}(hhh](j)}(hEconst char * snd_pcm_stream_str (struct snd_pcm_substream *substream)h]j )}(hCconst char *snd_pcm_stream_str(struct snd_pcm_substream *substream)h](j`)}(hjph]hconst}(hj_7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[7hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjm7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[7hhhjl7hMubj)}(hcharh]hchar}(hj{7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[7hhhjl7hMubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[7hhhjl7hMubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[7hhhjl7hMubj3)}(hsnd_pcm_stream_strh]j9)}(hsnd_pcm_stream_strh]hsnd_pcm_stream_str}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj[7hhhjl7hMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jj7sbc.snd_pcm_stream_strasbuh1hhj7ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(h substreamh]h substream}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubah}(h]h ]h"]h$]h&]jQjRuh1jShj[7hhhjl7hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjW7hhhjl7hMubah}(h]jR7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjl7hMhjT7hhubjv)}(hhh]j{)}(h-Get a string naming the direction of a streamh]h-Get a string naming the direction of a stream}(hjG8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjD8hhubah}(h]h ]h"]h$]h&]uh1juhjT7hhhjl7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_8jj_8jjjuh1hhhhj^hNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` the pcm substream instance **Return** A string naming the direction of the stream.h](j{)}(h**Parameters**h]j)}(hji8h]h Parameters}(hjk8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg8ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjc8ubj)}(hhh]j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj8h]h#struct snd_pcm_substream *substream}(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]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjc8ubj{)}(h **Return**h]j)}(hj8h]hReturn}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjc8ubj{)}(h,A string naming the direction of the stream.h]h,A string naming the direction of the stream.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjc8ubeh}(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](j)}(hastruct snd_pcm_substream * snd_pcm_chmap_substream (struct snd_pcm_chmap *info, unsigned int idx)h]j )}(h_struct snd_pcm_substream *snd_pcm_chmap_substream(struct snd_pcm_chmap *info, unsigned int idx)h](j`)}(hjch]hstruct}(hj9hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj9hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9hhhj9hMubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj'9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)9modnameN classnameNjj)}j]j)}jsnd_pcm_chmap_substreamsbc.snd_pcm_chmap_substreamasbuh1hhj9hhhj9hMubj")}(h h]h }(hjH9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9hhhj9hMubj)}(hjh]h*}(hjV9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhhj9hMubj3)}(hsnd_pcm_chmap_substreamh]j9)}(hjE9h]hsnd_pcm_chmap_substream}(hjg9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjc9ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj9hhhj9hMubjT)}(h.(struct snd_pcm_chmap *info, unsigned int idx)h](jZ)}(hstruct snd_pcm_chmap *infoh](j`)}(hjch]hstruct}(hj9hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~9ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~9ubh)}(hhh]j9)}(h snd_pcm_chmaph]h snd_pcm_chmap}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jC9c.snd_pcm_chmap_substreamasbuh1hhj~9ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~9ubj)}(hjh]h*}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~9ubj9)}(hinfoh]hinfo}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~9ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjz9ubjZ)}(hunsigned int idxh](j)}(hunsignedh]hunsigned}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9ubj)}(hinth]hint}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9ubj9)}(hidxh]hidx}(hj*:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjz9ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj9hhhj9hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj9hhhj9hMubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj9hMhj8hhubjv)}(hhh]j{)}(h6get the PCM substream assigned to the given chmap infoh]h6get the PCM substream assigned to the given chmap info}(hjT:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjQ:hhubah}(h]h ]h"]h$]h&]uh1juhj8hhhj9hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjl:jjl:jjjuh1hhhhj^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](j{)}(h**Parameters**h]j)}(hjv:h]h Parameters}(hjx:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt:ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjp:ubj)}(hhh](j)}(h1``struct snd_pcm_chmap *info`` chmap information h](j)}(h``struct snd_pcm_chmap *info``h]j)}(hj:h]hstruct snd_pcm_chmap *info}(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]j{)}(hchmap informationh]hchmap information}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj:ubj)}(h0``unsigned int idx`` the substream number index h](j)}(h``unsigned int idx``h]j)}(hj:h]hunsigned int idx}(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]j{)}(hthe substream number indexh]hthe substream number index}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj:ubeh}(h]h ]h"]h$]h&]uh1jhjp:ubj{)}(h **Return**h]j)}(hj ;h]hReturn}(hj ;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjp:ubj{)}(h/the matched PCM substream, or NULL if not foundh]h/the matched PCM substream, or NULL if not found}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjp:ubeh}(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](j)}(h4u64 pcm_format_to_bits (snd_pcm_format_t pcm_format)h]j )}(h3u64 pcm_format_to_bits(snd_pcm_format_t pcm_format)h](h)}(hhh]j9)}(hu64h]hu64}(hjQ;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjN;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjS;modnameN classnameNjj)}j]j)}jpcm_format_to_bitssbc.pcm_format_to_bitsasbuh1hhjJ;hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubj")}(h h]h }(hjs;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJ;hhhjr;hMubj3)}(hpcm_format_to_bitsh]j9)}(hjo;h]hpcm_format_to_bits}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjJ;hhhjr;hMubjT)}(h(snd_pcm_format_t pcm_format)h]jZ)}(hsnd_pcm_format_t pcm_formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]jm;c.pcm_format_to_bitsasbuh1hhj;ubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubj9)}(h pcm_formath]h pcm_format}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubah}(h]h ]h"]h$]h&]jQjRuh1jShjJ;hhhjr;hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjF;hhhjr;hMubah}(h]jA;ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjr;hMhjC;hhubjv)}(hhh]j{)}(h0Strong-typed conversion of pcm_format to bitwiseh]h0Strong-typed conversion of pcm_format to bitwise}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj;hhubah}(h]h ]h"]h$]h&]uh1juhjC;hhhjr;hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj<jj<jjjuh1hhhhj^hNhNubj)}(hz**Parameters** ``snd_pcm_format_t pcm_format`` PCM format **Return** 64bit mask corresponding to the given PCM formath](j{)}(h**Parameters**h]j)}(hj<h]h Parameters}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj<ubj)}(hhh]j)}(h+``snd_pcm_format_t pcm_format`` PCM format h](j)}(h``snd_pcm_format_t pcm_format``h]j)}(hj:<h]hsnd_pcm_format_t pcm_format}(hj<<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8<ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj4<ubj)}(hhh]j{)}(h PCM formath]h PCM format}(hjS<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjO<hMhjP<ubah}(h]h ]h"]h$]h&]uh1jhj4<ubeh}(h]h ]h"]h$]h&]uh1jhjO<hMhj1<ubah}(h]h ]h"]h$]h&]uh1jhj<ubj{)}(h **Return**h]j)}(hju<h]hReturn}(hjw<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs<ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj<ubj{)}(h064bit mask corresponding to the given PCM formath]h064bit mask corresponding to the given PCM format}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/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](hpcm_for_each_format (C macro)c.pcm_for_each_formathNtauh1hhj^hhhNhNubh)}(hhh](j)}(hpcm_for_each_formath]j )}(hpcm_for_each_formath]j3)}(hpcm_for_each_formath]j9)}(hj<h]hpcm_for_each_format}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj<hhhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMubah}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj<hhhj<hMubah}(h]j<ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hMhj<hhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhj<hhhj<hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj<jj<jjjuh1hhhhj^hNhNubj{)}(h``pcm_for_each_format (f)``h]j)}(hj<h]hpcm_for_each_format (f)}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jzhd/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]j{)}(h&helper to iterate for each format typeh]h&helper to iterate for each format type}(hj =hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=hMhj^hhubj)}(hF**Parameters** ``f`` the iterator variable in snd_pcm_format_t typeh](j{)}(h**Parameters**h]j)}(hj%=h]h Parameters}(hj'=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#=ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhj=ubj)}(hhh]j)}(h4``f`` the iterator variable in snd_pcm_format_t typeh](j)}(h``f``h]j)}(hjD=h]hf}(hjF=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB=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]j{)}(h.the iterator variable in snd_pcm_format_t typeh]h.the iterator variable in snd_pcm_format_t type}(hj]=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:34: ./include/sound/pcm.hhMhjZ=ubah}(h]h ]h"]h$]h&]uh1jhj>=ubeh}(h]h ]h"]h$]h&]uh1jhjY=hMhj;=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj^hhhNhNubeh}(h]pcm-coreah ]h"]pcm coreah$]h&]uh1hhj]hhhhhKubh)}(hhh](h)}(hPCM Format Helpersh]hPCM Format Helpers}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hhhhhK%ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_signed (C function)c.snd_pcm_format_signedhNtauh1hhj=hhhNhNubh)}(hhh](j)}(h3int snd_pcm_format_signed (snd_pcm_format_t format)h]j )}(h2int snd_pcm_format_signed(snd_pcm_format_t format)h](j)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chKubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=hhhj=hKubj3)}(hsnd_pcm_format_signedh]j9)}(hsnd_pcm_format_signedh]hsnd_pcm_format_signed}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj=hhhj=hKubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j)}jj=sbc.snd_pcm_format_signedasbuh1hhj=ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubj9)}(hformath]hformat}(hj%>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj=ubah}(h]h ]h"]h$]h&]jQjRuh1jShj=hhhj=hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=hhhj=hKubah}(h]j=ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj=hKhj=hhubjv)}(hhh]j{)}(h%Check the PCM format is signed linearh]h%Check the PCM format is signed linear}(hjO>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chKhjL>hhubah}(h]h ]h"]h$]h&]uh1juhj=hhhj=hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjg>jjg>jjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.h](j{)}(h**Parameters**h]j)}(hjq>h]h Parameters}(hjs>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo>ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chKhjk>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.chKhj>ubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hKhj>ubah}(h]h ]h"]h$]h&]uh1jhjk>ubj{)}(h **Return**h]j)}(hj>h]hReturn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chKhjk>ubj{)}(hs1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.h]hs1 if the given PCM format is signed linear, 0 if unsigned linear, and a negative error code for non-linear formats.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chKhjk>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_pcm_format_unsigned (C function)c.snd_pcm_format_unsignedhNtauh1hhj=hhhNhNubh)}(hhh](j)}(h5int snd_pcm_format_unsigned (snd_pcm_format_t format)h]j )}(h4int snd_pcm_format_unsigned(snd_pcm_format_t format)h](j)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ?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 ]j.ah"]h$]h&]uh1j!hj ?hhhj?hMubj3)}(hsnd_pcm_format_unsignedh]j9)}(hsnd_pcm_format_unsignedh]hsnd_pcm_format_unsigned}(hj1?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-?ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj ?hhhj?hMubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjP?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjM?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjR?modnameN classnameNjj)}j]j)}jj3?sbc.snd_pcm_format_unsignedasbuh1hhjI?ubj")}(h h]h }(hjp?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjI?ubj9)}(hformath]hformat}(hj~?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjI?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjE?ubah}(h]h ]h"]h$]h&]jQjRuh1jShj ?hhhj?hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj?hhhj?hMubah}(h]j?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj?hMhj?hhubjv)}(hhh]j{)}(h'Check the PCM format is unsigned linearh]h'Check the PCM format is unsigned linear}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj?hhubah}(h]h ]h"]h$]h&]uh1juhj?hhhj?hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj?jj?jjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is unsigned linear, 0 if signed linear, and a negative error code for non-linear formats.h](j{)}(h**Parameters**h]j)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jzhf/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.chMhj?ubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubj{)}(h **Return**h]j)}(hj$@h]hReturn}(hj&@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"@ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM hj?ubj{)}(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&]uh1jzhf/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&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_pcm_format_linear (C function)c.snd_pcm_format_linearhNtauh1hhj=hhhNhNubh)}(hhh](j)}(h3int snd_pcm_format_linear (snd_pcm_format_t format)h]j )}(h2int snd_pcm_format_linear(snd_pcm_format_t format)h](j)}(hinth]hint}(hji@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje@hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj")}(h h]h }(hjx@hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hje@hhhjw@hMubj3)}(hsnd_pcm_format_linearh]j9)}(hsnd_pcm_format_linearh]hsnd_pcm_format_linear}(hj@hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hje@hhhjw@hMubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj@hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jj@sbc.snd_pcm_format_linearasbuh1hhj@ubj")}(h h]h }(hj@hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@ubj9)}(hformath]hformat}(hj@hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj@ubah}(h]h ]h"]h$]h&]jQjRuh1jShje@hhhjw@hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihja@hhhjw@hMubah}(h]j\@ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjw@hMhj^@hhubjv)}(hhh]j{)}(hCheck the PCM format is linearh]hCheck the PCM format is linear}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj@hhubah}(h]h ]h"]h$]h&]uh1juhj^@hhhjw@hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjAjjAjjjuh1hhhhj=hNhNubj)}(h}**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is linear, 0 if not.h](j{)}(h**Parameters**h]j)}(hj#Ah]h Parameters}(hj%AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Aubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjAubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjBAh]hsnd_pcm_format_t format}(hjDAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Aubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjCsbc.snd_pcm_format_big_endianasbuh1hhjTCubj")}(h h]h }(hj{ChhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjTCubj9)}(hformath]hformat}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTCubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjPCubah}(h]h ]h"]h$]h&]jQjRuh1jShjChhhj)ChM7ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjChhhj)ChM7ubah}(h]jCah ](jmjneh"]h$]h&]jrjs)jthuh1jhj)ChM7hjChhubjv)}(hhh]j{)}(h"Check the PCM format is big-endianh]h"Check the PCM format is big-endian}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM7hjChhubah}(h]h ]h"]h$]h&]uh1juhjChhhj)ChM7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** 1 if the given PCM format is big-endian, 0 if little-endian, or a negative error code if endian not specified.h](j{)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM;hjCubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(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.chM8hjCubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hj DhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj DhM8hj Dubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj DhM8hjCubah}(h]h ]h"]h$]h&]uh1jhjCubj{)}(h **Return**h]j)}(hj/Dh]hReturn}(hj1DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Dubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM:hjCubj{)}(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.}(hjEDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM:hjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_pcm_format_width (C function)c.snd_pcm_format_widthhNtauh1hhj=hhhNhNubh)}(hhh](j)}(h2int snd_pcm_format_width (snd_pcm_format_t format)h]j )}(h1int snd_pcm_format_width(snd_pcm_format_t format)h](j)}(hinth]hint}(hjtDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpDhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMIubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjpDhhhjDhMIubj3)}(hsnd_pcm_format_widthh]j9)}(hsnd_pcm_format_widthh]hsnd_pcm_format_width}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjpDhhhjDhMIubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jjDsbc.snd_pcm_format_widthasbuh1hhjDubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubj9)}(hformath]hformat}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDubah}(h]h ]h"]h$]h&]jQjRuh1jShjpDhhhjDhMIubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjlDhhhjDhMIubah}(h]jgDah ](jmjneh"]h$]h&]jrjs)jthuh1jhjDhMIhjiDhhubjv)}(hhh]j{)}(h"return the bit-width of the formath]h"return the bit-width of the format}(hj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMIhj Ehhubah}(h]h ]h"]h$]h&]uh1juhjiDhhhjDhMIubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$Ejj$Ejjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The bit-width of the format, or a negative error code if unknown format.h](j{)}(h**Parameters**h]j)}(hj.Eh]h Parameters}(hj0EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Eubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMMhj(Eubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjMEh]hsnd_pcm_format_t format}(hjOEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKEubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMJhjGEubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hjfEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjbEhMJhjcEubah}(h]h ]h"]h$]h&]uh1jhjGEubeh}(h]h ]h"]h$]h&]uh1jhjbEhMJhjDEubah}(h]h ]h"]h$]h&]uh1jhj(Eubj{)}(h **Return**h]j)}(hjEh]hReturn}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMLhj(Eubj{)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMLhj(Eubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_format_physical_width (C function)c.snd_pcm_format_physical_widthhNtauh1hhj=hhhNhNubh)}(hhh](j)}(h;int snd_pcm_format_physical_width (snd_pcm_format_t format)h]j )}(h:int snd_pcm_format_physical_width(snd_pcm_format_t format)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM\ubj")}(h h]h }(hjEhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEhhhjEhM\ubj3)}(hsnd_pcm_format_physical_widthh]j9)}(hsnd_pcm_format_physical_widthh]hsnd_pcm_format_physical_width}(hjEhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjEhhhjEhM\ubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj FhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Fubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFmodnameN classnameNjj)}j]j)}jjEsbc.snd_pcm_format_physical_widthasbuh1hhjFubj")}(h h]h }(hj-FhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFubj9)}(hformath]hformat}(hj;FhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubah}(h]h ]h"]h$]h&]jQjRuh1jShjEhhhjEhM\ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjEhhhjEhM\ubah}(h]jEah ](jmjneh"]h$]h&]jrjs)jthuh1jhjEhM\hjEhhubjv)}(hhh]j{)}(h+return the physical bit-width of the formath]h+return the physical bit-width of the format}(hjeFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM\hjbFhhubah}(h]h ]h"]h$]h&]uh1juhjEhhhjEhM\ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}Fjj}Fjjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The physical bit-width of the format, or a negative error code if unknown format.h](j{)}(h**Parameters**h]j)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM`hjFubj)}(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.chM]hjFubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjFhM]hjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhM]hjFubah}(h]h ]h"]h$]h&]uh1jhjFubj{)}(h **Return**h]j)}(hjFh]hReturn}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM_hjFubj{)}(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.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM_hjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_pcm_format_size (C function)c.snd_pcm_format_sizehNtauh1hhj=hhhNhNubh)}(hhh](j)}(hEssize_t snd_pcm_format_size (snd_pcm_format_t format, size_t samples)h]j )}(hDssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples)h](h)}(hhh]j9)}(hssize_th]hssize_t}(hj)GhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&Gubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+GmodnameN classnameNjj)}j]j)}jsnd_pcm_format_sizesbc.snd_pcm_format_sizeasbuh1hhj"Ghhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMoubj")}(h h]h }(hjKGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"GhhhjJGhMoubj3)}(hsnd_pcm_format_sizeh]j9)}(hjGGh]hsnd_pcm_format_size}(hj]GhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYGubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj"GhhhjJGhMoubjT)}(h)(snd_pcm_format_t format, size_t samples)h](jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hj{GhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}GmodnameN classnameNjj)}j]jEGc.snd_pcm_format_sizeasbuh1hhjtGubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtGubj9)}(hformath]hformat}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjpGubjZ)}(hsize_t samplesh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNjj)}j]jEGc.snd_pcm_format_sizeasbuh1hhjGubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj9)}(hsamplesh]hsamples}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjpGubeh}(h]h ]h"]h$]h&]jQjRuh1jShj"GhhhjJGhMoubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjGhhhjJGhMoubah}(h]jGah ](jmjneh"]h$]h&]jrjs)jthuh1jhjJGhMohjGhhubjv)}(hhh]j{)}(h3return the byte size of samples on the given formath]h3return the byte size of samples on the given format}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMohjHhhubah}(h]h ]h"]h$]h&]uh1juhjGhhhjJGhMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1Hjj1Hjjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check ``size_t samples`` sampling rate **Return** The byte size of the given samples for the format, or a negative error code if unknown format.h](j{)}(h**Parameters**h]j)}(hj;Hh]h Parameters}(hj=HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Hubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMshj5Hubj)}(hhh](j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hjZHh]hsnd_pcm_format_t format}(hj\HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXHubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMphjTHubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hjsHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjoHhMphjpHubah}(h]h ]h"]h$]h&]uh1jhjTHubeh}(h]h ]h"]h$]h&]uh1jhjoHhMphjQHubj)}(h!``size_t samples`` sampling rate h](j)}(h``size_t samples``h]j)}(hjHh]hsize_t samples}(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.chMqhjHubj)}(hhh]j{)}(h sampling rateh]h sampling rate}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjHhMqhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMqhjQHubeh}(h]h ]h"]h$]h&]uh1jhj5Hubj{)}(h **Return**h]j)}(hjHh]hReturn}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMshj5Hubj{)}(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.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMshj5Hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_pcm_format_silence_64 (C function)c.snd_pcm_format_silence_64hNtauh1hhj=hhhNhNubh)}(hhh](j)}(hIconst unsigned char * snd_pcm_format_silence_64 (snd_pcm_format_t format)h]j )}(hGconst unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format)h](j`)}(hjph]hconst}(hjIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjIhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj")}(h h]h }(hj!IhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIhhhj IhMubj)}(hunsignedh]hunsigned}(hj/IhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhj IhMubj")}(h h]h }(hj=IhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIhhhj IhMubj)}(hcharh]hchar}(hjKIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhj IhMubj")}(h h]h }(hjYIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIhhhj IhMubj)}(hjh]h*}(hjgIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIhhhj IhMubj3)}(hsnd_pcm_format_silence_64h]j9)}(hsnd_pcm_format_silence_64h]hsnd_pcm_format_silence_64}(hjxIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtIubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjIhhhj IhMubjT)}(h(snd_pcm_format_t format)h]jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjzIsbc.snd_pcm_format_silence_64asbuh1hhjIubj")}(h h]h }(hjIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubj9)}(hformath]hformat}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubah}(h]h ]h"]h$]h&]jQjRuh1jShjIhhhj IhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj Ihhhj IhMubah}(h]jIah ](jmjneh"]h$]h&]jrjs)jthuh1jhj IhMhjIhhubjv)}(hhh]j{)}(h'return the silent data in 8 bytes arrayh]h'return the silent data in 8 bytes array}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjIhhubah}(h]h ]h"]h$]h&]uh1juhjIhhhj IhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjJjjJjjjuh1hhhhj=hNhNubj)}(h**Parameters** ``snd_pcm_format_t format`` the format to check **Return** The format pattern to fill or ``NULL`` if error.h](j{)}(h**Parameters**h]j)}(hjJh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Jubj)}(hhh]j)}(h0``snd_pcm_format_t format`` the format to check h](j)}(h``snd_pcm_format_t format``h]j)}(hj0Jh]hsnd_pcm_format_t format}(hj2JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Jubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj*Jubj)}(hhh]j{)}(hthe format to checkh]hthe format to check}(hjIJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjEJhMhjFJubah}(h]h ]h"]h$]h&]uh1jhj*Jubeh}(h]h ]h"]h$]h&]uh1jhjEJhMhj'Jubah}(h]h ]h"]h$]h&]uh1jhj Jubj{)}(h **Return**h]j)}(hjkJh]hReturn}(hjmJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiJubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Jubj{)}(h0The format pattern to fill or ``NULL`` if error.h](hThe format pattern to fill or }(hjJhhhNhNubj)}(h``NULL``h]hNULL}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh if error.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_format_set_silence (C function)c.snd_pcm_format_set_silencehNtauh1hhj=hhhNhNubh)}(hhh](j)}(hZint snd_pcm_format_set_silence (snd_pcm_format_t format, void *data, unsigned int samples)h]j )}(hYint snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int samples)h](j)}(hinth]hint}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJhhhjJhMubj3)}(hsnd_pcm_format_set_silenceh]j9)}(hsnd_pcm_format_set_silenceh]hsnd_pcm_format_set_silence}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjJhhhjJhMubjT)}(h;(snd_pcm_format_t format, void *data, unsigned int samples)h](jZ)}(hsnd_pcm_format_t formath](h)}(hhh]j9)}(hsnd_pcm_format_th]hsnd_pcm_format_t}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNjj)}j]j)}jjJsbc.snd_pcm_format_set_silenceasbuh1hhjJubj")}(h h]h }(hj"KhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJubj9)}(hformath]hformat}(hj0KhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJubjZ)}(h void *datah](j)}(hvoidh]hvoid}(hjIKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEKubj")}(h h]h }(hjWKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEKubj)}(hjh]h*}(hjeKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEKubj9)}(hdatah]hdata}(hjrKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEKubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJubjZ)}(hunsigned int samplesh](j)}(hunsignedh]hunsigned}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKubj)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKubj9)}(hsamplesh]hsamples}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJubeh}(h]h ]h"]h$]h&]jQjRuh1jShjJhhhjJhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjJhhhjJhMubah}(h]jJah ](jmjneh"]h$]h&]jrjs)jthuh1jhjJhMhjJhhubjv)}(hhh]j{)}(h"set the silence data on the bufferh]h"set the silence data on the buffer}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjKhhubah}(h]h ]h"]h$]h&]uh1juhjJhhhjJhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1hhhhj=hNhNubj)}(hX5**Parameters** ``snd_pcm_format_t format`` the PCM format ``void *data`` the buffer pointer ``unsigned int samples`` the number of samples to set silence **Description** Sets the silence data on the buffer for the given samples. **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Lubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Lubj)}(hhh](j)}(h+``snd_pcm_format_t format`` the PCM format h](j)}(h``snd_pcm_format_t format``h]j)}(hj.Lh]hsnd_pcm_format_t format}(hj0LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,Lubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj(Lubj)}(hhh]j{)}(hthe PCM formath]hthe PCM format}(hjGLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjCLhMhjDLubah}(h]h ]h"]h$]h&]uh1jhj(Lubeh}(h]h ]h"]h$]h&]uh1jhjCLhMhj%Lubj)}(h"``void *data`` the buffer pointer h](j)}(h``void *data``h]j)}(hjgLh]h void *data}(hjiLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjaLubj)}(hhh]j{)}(hthe buffer pointerh]hthe buffer pointer}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|LhMhj}Lubah}(h]h ]h"]h$]h&]uh1jhjaLubeh}(h]h ]h"]h$]h&]uh1jhj|LhMhj%Lubj)}(h>``unsigned int samples`` the number of samples to set silence h](j)}(h``unsigned int samples``h]j)}(hjLh]hunsigned int samples}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjLubj)}(hhh]j{)}(h$the number of samples to set silenceh]h$the number of samples to set silence}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjLhMhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMhj%Lubeh}(h]h ]h"]h$]h&]uh1jhj Lubj{)}(h**Description**h]j)}(hjLh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Lubj{)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Lubj{)}(h **Return**h]j)}(hjMh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Lubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhj Lubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_hw_limit_rates (C function)c.snd_pcm_hw_limit_rateshNtauh1hhj=hhhNhNubh)}(hhh](j)}(h8int snd_pcm_hw_limit_rates (struct snd_pcm_hardware *hw)h]j )}(h7int snd_pcm_hw_limit_rates(struct snd_pcm_hardware *hw)h](j)}(hinth]hint}(hjGMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCMhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMubj")}(h h]h }(hjVMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjCMhhhjUMhMubj3)}(hsnd_pcm_hw_limit_ratesh]j9)}(hsnd_pcm_hw_limit_ratesh]hsnd_pcm_hw_limit_rates}(hjhMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdMubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjCMhhhjUMhMubjT)}(h(struct snd_pcm_hardware *hw)h]jZ)}(hstruct snd_pcm_hardware *hwh](j`)}(hjch]hstruct}(hjMhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjMubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubh)}(hhh]j9)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]j)}jjjMsbc.snd_pcm_hw_limit_ratesasbuh1hhjMubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj9)}(hhwh]hhw}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|Mubah}(h]h ]h"]h$]h&]jQjRuh1jShjCMhhhjUMhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj?MhhhjUMhMubah}(h]j:Mah ](jmjneh"]h$]h&]jrjs)jthuh1jhjUMhMhjQjj>Qjjjuh1hhhhj=hNhNubj)}(h**Parameters** ``unsigned int rate_bit`` the rate bit to convert **Return** The sample rate that corresponds to the given SNDRV_PCM_RATE_xxx flag or 0 for an unknown rate bit.h](j{)}(h**Parameters**h]j)}(hjHQh]h Parameters}(hjJQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFQubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM hjBQubj)}(hhh]j)}(h2``unsigned int rate_bit`` the rate bit to convert h](j)}(h``unsigned int rate_bit``h]j)}(hjgQh]hunsigned int rate_bit}(hjiQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeQubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chMhjaQubj)}(hhh]j{)}(hthe rate bit to converth]hthe rate bit to convert}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|QhMhj}Qubah}(h]h ]h"]h$]h&]uh1jhjaQubeh}(h]h ]h"]h$]h&]uh1jhj|QhMhj^Qubah}(h]h ]h"]h$]h&]uh1jhjBQubj{)}(h **Return**h]j)}(hjQh]hReturn}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM hjBQubj{)}(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.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM hjBQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj=hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_pcm_rate_mask_intersect (C function)c.snd_pcm_rate_mask_intersecthNtauh1hhj=hhhNhNubh)}(hhh](j)}(hUunsigned int snd_pcm_rate_mask_intersect (unsigned int rates_a, unsigned int rates_b)h]j )}(hTunsigned int snd_pcm_rate_mask_intersect(unsigned int rates_a, unsigned int rates_b)h](j)}(hunsignedh]hunsigned}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:38: ./sound/core/pcm_misc.chM"ubj")}(h h]h }(hjQhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQhhhjQhM"ubj)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhjQhM"ubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQhhhjQhM"ubj3)}(hsnd_pcm_rate_mask_intersecth]j9)}(hsnd_pcm_rate_mask_intersecth]hsnd_pcm_rate_mask_intersect}(hj$RhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Rubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjQhhhjQhM"ubjT)}(h,(unsigned int rates_a, unsigned int rates_b)h](jZ)}(hunsigned int rates_ah](j)}(hunsignedh]hunsigned}(hj@RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvoid snd_pcm_lib_preallocate_free_for_all(struct snd_pcm *pcm)h](j)}(hvoidh]hvoid}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUhhhjUhKubj3)}(h$snd_pcm_lib_preallocate_free_for_allh]j9)}(h$snd_pcm_lib_preallocate_free_for_allh]h$snd_pcm_lib_preallocate_free_for_all}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjUhhhjUhKubjT)}(h(struct snd_pcm *pcm)h]jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hjUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjUubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubh)}(hhh]j9)}(hsnd_pcmh]hsnd_pcm}(hj VhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj VmodnameN classnameNjj)}j]j)}jjUsb&c.snd_pcm_lib_preallocate_free_for_allasbuh1hhjUubj")}(h h]h }(hj)VhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubj)}(hjh]h*}(hj7VhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj9)}(hpcmh]hpcm}(hjDVhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubah}(h]h ]h"]h$]h&]jQjRuh1jShjUhhhjUhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjUhhhjUhKubah}(h]jUah ](jmjneh"]h$]h&]jrjs)jthuh1jhjUhKhjUhhubjv)}(hhh]j{)}(h,release all pre-allocated buffers on the pcmh]h,release all pre-allocated buffers on the pcm}(hjnVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjkVhhubah}(h]h ]h"]h$]h&]uh1juhjUhhhjUhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhjThNhNubj)}(h**Parameters** ``struct snd_pcm *pcm`` the pcm instance **Description** Releases all the pre-allocated buffers on the given pcm.h](j{)}(h**Parameters**h]j)}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubj)}(hhh]j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjVh]hstruct snd_pcm *pcm}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubj)}(hhh]j{)}(hthe pcm instanceh]hthe pcm instance}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubj{)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubj{)}(h8Releases all the pre-allocated buffers on the given pcm.h]h8Releases all the pre-allocated buffers on the given pcm.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chKhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_pcm_lib_preallocate_pages (C function)c.snd_pcm_lib_preallocate_pageshNtauh1hhjThhhNhNubh)}(hhh](j)}(hvoid snd_pcm_lib_preallocate_pages (struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h]j )}(hvoid snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](j)}(hvoidh]hvoid}(hj/WhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+Whhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9ubj")}(h h]h }(hj>WhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+Whhhj=WhM9ubj3)}(hsnd_pcm_lib_preallocate_pagesh]j9)}(hsnd_pcm_lib_preallocate_pagesh]hsnd_pcm_lib_preallocate_pages}(hjPWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLWubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj+Whhhj=WhM9ubjT)}(h](struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjlWhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhWubj")}(h h]h }(hjyWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhWubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjRWsbc.snd_pcm_lib_preallocate_pagesasbuh1hhjhWubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhWubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhWubj9)}(h substreamh]h substream}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdWubjZ)}(hint typeh](j)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj9)}(htypeh]htype}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdWubjZ)}(hstruct device *datah](j`)}(hjch]hstruct}(hjXhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjXubj")}(h h]h }(hj XhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubh)}(hhh]j9)}(hdeviceh]hdevice}(hj1XhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3XmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj")}(h h]h }(hjOXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj)}(hjh]h*}(hj]XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj9)}(hdatah]hdata}(hjjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdWubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj9)}(hsizeh]hsize}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdWubjZ)}(h size_t maxh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jWc.snd_pcm_lib_preallocate_pagesasbuh1hhjXubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj9)}(hmaxh]hmax}(hjXhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdWubeh}(h]h ]h"]h$]h&]jQjRuh1jShj+Whhhj=WhM9ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj'Whhhj=WhM9ubah}(h]j"Wah ](jmjneh"]h$]h&]jrjs)jthuh1jhj=WhM9hj$Whhubjv)}(hhh]j{)}(h%pre-allocation for the given DMA typeh]h%pre-allocation for the given DMA type}(hj$YhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM9hj!Yhhubah}(h]h ]h"]h$]h&]uh1juhj$Whhhj=WhM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjCZubj)}(hhh]j{)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjbZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^ZhM>hj_Zubah}(h]h ]h"]h$]h&]uh1jhjCZubeh}(h]h ]h"]h$]h&]uh1jhj^ZhM>hj\Yubeh}(h]h ]h"]h$]h&]uh1jhj@Yubj{)}(h**Description**h]j)}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM@hj@Yubj{)}(h0Do pre-allocation for the given DMA buffer type.h]h0Do pre-allocation for the given DMA buffer type.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM?hj@Yubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h2snd_pcm_lib_preallocate_pages_for_all (C function)'c.snd_pcm_lib_preallocate_pages_for_allhNtauh1hhjThhhNhNubh)}(hhh](j)}(hovoid snd_pcm_lib_preallocate_pages_for_all (struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h]j )}(hnvoid snd_pcm_lib_preallocate_pages_for_all(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](j)}(hvoidh]hvoid}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZhhhjZhMKubj3)}(h%snd_pcm_lib_preallocate_pages_for_allh]j9)}(h%snd_pcm_lib_preallocate_pages_for_allh]h%snd_pcm_lib_preallocate_pages_for_all}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjZhhhjZhMKubjT)}(hD(struct snd_pcm *pcm, int type, void *data, size_t size, size_t max)h](jZ)}(hstruct snd_pcm *pcmh](j`)}(hjch]hstruct}(hj[hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubh)}(hhh]j9)}(hsnd_pcmh ]hsnd_pcm}(hj$[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj![ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&[modnameN classnameNjj)}j]j)}jjZsb'c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj[ubj")}(h h]h }(hjD[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj)}(hjh]h*}(hjR[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hpcmh]hpcm}(hj_[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubjZ)}(hint typeh](j)}(hinth]hint}(hjx[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjt[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjt[ubj9)}(htypeh]htype}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjt[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubjZ)}(h void *datah](j)}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hdatah]hdata}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j@['c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj[ubj")}(h h]h }(hj\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj9)}(hsizeh]hsize}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubjZ)}(h size_t maxh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj:\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<\modnameN classnameNjj)}j]j@['c.snd_pcm_lib_preallocate_pages_for_allasbuh1hhj3\ubj")}(h h]h }(hjX\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3\ubj9)}(hmaxh]hmax}(hjf\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3\ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZubeh}(h]h ]h"]h$]h&]jQjRuh1jShjZhhhjZhMKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjZhhhjZhMKubah}(h]jZah ](jmjneh"]h$]h&]jrjs)jthuh1jhjZhMKhjZhhubjv)}(hhh]j{)}(h:pre-allocation for continuous memory type (all substreams)h]h:pre-allocation for continuous memory type (all substreams)}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMKhj\hhubah}(h]h ]h"]h$]h&]uh1juhjZhhhjZhMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjThNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhj\ubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hj\h]hstruct snd_pcm *pcm}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMLhj\ubj)}(hhh]j{)}(hthe pcm instanceh]hthe pcm instance}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj\hMLhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMLhj\ubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hj ]h]hint type}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMMhj]ubj)}(hhh]j{)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj#]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hMMhj ]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMMhj\ubj)}(h'``void *data`` DMA type dependent data h](j)}(h``void *data``h]j)}(hjC]h]h void *data}(hjE]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMNhj=]ubj)}(hhh]j{)}(hDMA type dependent datah]hDMA type dependent data}(hj\]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjX]hMNhjY]ubah}(h]h ]h"]h$]h&]uh1jhj=]ubeh}(h]h ]h"]h$]h&]uh1jhjX]hMNhj\ubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hj|]h]h size_t size}(hj~]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMOhjv]ubj)}(hhh]j{)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hMOhj]ubah}(h]h ]h"]h$]h&]uh1jhjv]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMOhj\ubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hj]h]h size_t max}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMPhj]ubj)}(hhh]j{)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hMPhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMPhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\ubj{)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMRhj\ubj{)}(hPDo pre-allocation to all substreams of the given pcm for the specified DMA type.h]hPDo pre-allocation to all substreams of the given pcm for the specified DMA type.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMQhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_pcm_set_managed_buffer (C function)c.snd_pcm_set_managed_bufferhNtauh1hhjThhhNhNubh)}(hhh](j)}(h|int snd_pcm_set_managed_buffer (struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h]j )}(h{int snd_pcm_set_managed_buffer(struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](j)}(hinth]hint}(hj5^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1^hhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chM^ubj")}(h h]h }(hjD^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1^hhhjC^hM^ubj3)}(hsnd_pcm_set_managed_bufferh]j9)}(hsnd_pcm_set_managed_bufferh]hsnd_pcm_set_managed_buffer}(hjV^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjR^ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj1^hhhjC^hM^ubjT)}(h](struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjr^hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjn^ubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn^ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jjX^sbc.snd_pcm_set_managed_bufferasbuh1hhjn^ubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn^ubj9)}(h substreamh]h substream}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjn^ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjj^ubjZ)}(hint typeh](j)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^ubj9)}(htypeh]htype}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjj^ubjZ)}(hstruct device *datah](j`)}(hjch]hstruct}(hj_hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj_ubj")}(h h]h }(hj&_hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj7_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9_modnameN classnameNjj)}j]j^c.snd_pcm_set_managed_bufferasbuh1hhj_ubj")}(h h]h }(hjU_hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_ubj)}(hjh]h*}(hjc_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubj9)}(hdatah]hdata}(hjp_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjj^ubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_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 ]j.ah"]h$]h&]uh1j!hj_ubj9)}(hsizeh]hsize}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjj^ubjZ)}(h size_t maxh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_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 ]j.ah"]h$]h&]uh1j!hj_ubj9)}(hmaxh]hmax}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjj^ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj1^hhhjC^hM^ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj-^hhhjC^hM^ubah}(h]j(^ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjC^hM^hj*^hhubjv)}(hhh]j{)}(h(set up buffer management for a substreamh]h(set up buffer management for a substream}(hj*`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/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&]uh1juhj*^hhhjC^hM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjB`jjB`jjjuh1hhhhjThNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjL`h]h Parameters}(hjN`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ`ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMbhjF`ubj)}(hhh](j)}(hC``struct snd_pcm_substream *substream`` the pcm substream instance h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjk`h]h#struct snd_pcm_substream *substream}(hjm`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji`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_hje`ubj)}(hhh]j{)}(hthe pcm substream instanceh]hthe pcm substream instance}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj`hM_hj`ubah}(h]h ]h"]h$]h&]uh1jhje`ubeh}(h]h ]h"]h$]h&]uh1jhj`hM_hjb`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]j{)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj`hM`hj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hM`hjb`ubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hj`h]hstruct device *data}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMahj`ubj)}(hhh]j{)}(hDMA type dependent datah]hDMA type dependent data}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj`hMahj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMahjb`ubj)}(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.chMbhjaubj)}(hhh]j{)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hj/ahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+ahMbhj,aubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj+ahMbhjb`ubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjOah]h size_t max}(hjQahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMaubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMchjIaubj)}(hhh]j{)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjhahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdahMchjeaubah}(h]h ]h"]h$]h&]uh1jhjIaubeh}(h]h ]h"]h$]h&]uh1jhjdahMchjb`ubeh}(h]h ]h"]h$]h&]uh1jhjF`ubj{)}(h**Description**h]j)}(hjah]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMehjF`ubj{)}(hXDo pre-allocation for the given DMA buffer type, and set the managed buffer allocation mode to the given substream. In this mode, PCM core will allocate a buffer automatically before PCM hw_params ops call, and release the buffer after PCM hw_free ops call as well, so that the driver doesn't need to invoke the allocation and the release explicitly in its callback. When a buffer is actually allocated before the PCM hw_params call, it turns on the runtime buffer_changed flag for drivers changing their h/w parameters accordingly.h]hXDo pre-allocation for the given DMA buffer type, and set the managed buffer allocation mode to the given substream. In this mode, PCM core will allocate a buffer automatically before PCM hw_params ops call, and release the buffer after PCM hw_free ops call as well, so that the driver doesn’t need to invoke the allocation and the release explicitly in its callback. When a buffer is actually allocated before the PCM hw_params call, it turns on the runtime buffer_changed flag for drivers changing their h/w parameters accordingly.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMdhjF`ubj{)}(hXWhen **size** is non-zero and **max** is zero, this tries to allocate for only the exact buffer size without fallback, and may return -ENOMEM. Otherwise, the function tries to allocate smaller chunks if the allocation fails. This is the behavior of snd_pcm_set_fixed_buffer().h](hWhen }(hjahhhNhNubj)}(h**size**h]hsize}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh is non-zero and }(hjahhhNhNubj)}(h**max**h]hmax}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh is zero, this tries to allocate for only the exact buffer size without fallback, and may return -ENOMEM. Otherwise, the function tries to allocate smaller chunks if the allocation fails. This is the behavior of snd_pcm_set_fixed_buffer().}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMnhjF`ubj{)}(hWhen both **size** and **max** are zero, the function only sets up the buffer for later dynamic allocations. It's used typically for buffers with SNDRV_DMA_TYPE_VMALLOC type.h](h When both }(hjahhhNhNubj)}(h**size**h]hsize}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh and }(hjahhhNhNubj)}(h**max**h]hmax}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh are zero, the function only sets up the buffer for later dynamic allocations. It’s used typically for buffers with SNDRV_DMA_TYPE_VMALLOC type.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMshjF`ubj{)}(hDUpon successful buffer allocation and setup, the function returns 0.h]hDUpon successful buffer allocation and setup, the function returns 0.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMwhjF`ubj{)}(h **Return**h]j)}(hj&bh]hReturn}(hj(bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$bubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMyhjF`ubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjset up buffer management for all substreams for all substreamsh]h>set up buffer management for all substreams for all substreams}(hj`dhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj]dhhubah}(h]h ]h"]h$]h&]uh1juhj`bhhhjybhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjxdjjxdjjjuh1hhhhjThNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj|dubj)}(hhh](j)}(h)``struct snd_pcm *pcm`` the pcm instance h](j)}(h``struct snd_pcm *pcm``h]j)}(hjdh]hstruct snd_pcm *pcm}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubj)}(hhh]j{)}(hthe pcm instanceh]hthe pcm instance}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h)``int type`` DMA type (SNDRV_DMA_TYPE_*) h](j)}(h ``int type``h]j)}(hjdh]hint type}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjdubj)}(hhh]j{)}(hDMA type (SNDRV_DMA_TYPE_*)h]hDMA type (SNDRV_DMA_TYPE_*)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjdubj)}(h0``struct device *data`` DMA type dependent data h](j)}(h``struct device *data``h]j)}(hjeh]hstruct device *data}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj eubj)}(hhh]j{)}(hDMA type dependent datah]hDMA type dependent data}(hj,ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj(ehMhj)eubah}(h]h ]h"]h$]h&]uh1jhj eubeh}(h]h ]h"]h$]h&]uh1jhj(ehMhjdubj)}(h;``size_t size`` the requested pre-allocation size in bytes h](j)}(h``size_t size``h]j)}(hjLeh]h size_t size}(hjNehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjFeubj)}(hhh]j{)}(h*the requested pre-allocation size in bytesh]h*the requested pre-allocation size in bytes}(hjeehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjaehMhjbeubah}(h]h ]h"]h$]h&]uh1jhjFeubeh}(h]h ]h"]h$]h&]uh1jhjaehMhjdubj)}(h4``size_t max`` the max. allowed pre-allocation size h](j)}(h``size_t max``h]j)}(hjeh]h size_t max}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjeubj)}(hhh]j{)}(h$the max. allowed pre-allocation sizeh]h$the max. allowed pre-allocation size}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjdubeh}(h]h ]h"]h$]h&]uh1jhj|dubj{)}(h**Description**h]j)}(hjeh]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj|dubj{)}(hDo pre-allocation to all substreams of the given pcm for the specified DMA type and size, and set the managed_buffer_alloc flag to each substream.h]hDo pre-allocation to all substreams of the given pcm for the specified DMA type and size, and set the managed_buffer_alloc flag to each substream.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj|dubj{)}(h **Return**h]j)}(hjeh]hReturn}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj|dubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj|dubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_pcm_lib_malloc_pages (C function)c.snd_pcm_lib_malloc_pageshNtauh1hhjThhhNhNubh)}(hhh](j)}(hOint snd_pcm_lib_malloc_pages (struct snd_pcm_substream *substream, size_t size)h]j )}(hNint snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size)h](j)}(hinth]hint}(hj,fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(fhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj")}(h h]h }(hj;fhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(fhhhj:fhMubj3)}(hsnd_pcm_lib_malloc_pagesh]j9)}(hsnd_pcm_lib_malloc_pagesh]hsnd_pcm_lib_malloc_pages}(hjMfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIfubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj(fhhhj:fhMubjT)}(h2(struct snd_pcm_substream *substream, size_t size)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjifhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjefubj")}(h h]h }(hjvfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjefubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j)}jjOfsbc.snd_pcm_lib_malloc_pagesasbuh1hhjefubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjefubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjefubj9)}(h substreamh]h substream}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjefubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjafubjZ)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]jfc.snd_pcm_lib_malloc_pagesasbuh1hhjfubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubj9)}(hsizeh]hsize}(hj ghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjafubeh}(h]h ]h"]h$]h&]jQjRuh1jShj(fhhhj:fhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj$fhhhj:fhMubah}(h]jfah ](jmjneh"]h$]h&]jrjs)jthuh1jhj:fhMhj!fhhubjv)}(hhh]j{)}(hallocate the DMA bufferh]hallocate the DMA buffer}(hj4ghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1ghhubah}(h]h ]h"]h$]h&]uh1juhj!fhhhj:fhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLgjjLgjjjuh1hhhhjThNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjVgh]h Parameters}(hjXghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTgubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPgubj)}(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)}(hjugh]h#struct snd_pcm_substream *substream}(hjwghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsgubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjogubj)}(hhh]j{)}(h+the substream to allocate the DMA buffer toh]h+the substream to allocate the DMA buffer to}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjogubeh}(h]h ]h"]h$]h&]uh1jhjghMhjlgubj)}(h3``size_t size`` the requested buffer size in bytes h](j)}(h``size_t size``h]j)}(hjgh]h size_t size}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjgubj)}(hhh]j{)}(h"the requested buffer size in bytesh]h"the requested buffer size in bytes}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjlgubeh}(h]h ]h"]h$]h&]uh1jhjPgubj{)}(h**Description**h]j)}(hjgh]h Description}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPgubj{)}(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().}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPgubj{)}(h **Return**h]j)}(hjhh]hReturn}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPgubj{)}(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.}(hj&hhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_pcm_lib_free_pages (C function)c.snd_pcm_lib_free_pageshNtauh1hhjThhhNhNubh)}(hhh](j)}(h@int snd_pcm_lib_free_pages (struct snd_pcm_substream *substream)h]j )}(h?int snd_pcm_lib_free_pages(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjUhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMubj")}(h h]h }(hjdhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQhhhhjchhMubj3)}(hsnd_pcm_lib_free_pagesh]j9)}(hsnd_pcm_lib_free_pagesh]hsnd_pcm_lib_free_pages}(hjvhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjrhubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjQhhhhjchhMubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjhhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]j)}jjxhsbc.snd_pcm_lib_free_pagesasbuh1hhjhubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj9)}(h substreamh]h substream}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubah}(h]h ]h"]h$]h&]jQjRuh1jShjQhhhhjchhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjMhhhhjchhMubah}(h]jHhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjchhMhjJhhhubjv)}(hhh]j{)}(h!release the allocated DMA buffer.h]h!release the allocated DMA buffer.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjihhubah}(h]h ]h"]h$]h&]uh1juhjJhhhhjchhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-ijj-ijjjuh1hhhhjThNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj7ih]h Parameters}(hj9ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5iubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1iubj)}(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)}(hjVih]h#struct snd_pcm_substream *substream}(hjXihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTiubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhjPiubj)}(hhh]j{)}(h'the substream to release the DMA bufferh]h'the substream to release the DMA buffer}(hjoihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjkihMhjliubah}(h]h ]h"]h$]h&]uh1jhjPiubeh}(h]h ]h"]h$]h&]uh1jhjkihMhjMiubah}(h]h ]h"]h$]h&]uh1jhj1iubj{)}(h**Description**h]j)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1iubj{)}(hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().h]hAReleases the DMA buffer allocated via snd_pcm_lib_malloc_pages().}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1iubj{)}(h **Return**h]j)}(hjih]hReturn}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1iubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:42: ./sound/core/pcm_memory.chMhj1iubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjThhhNhNubeh}(h]pcm-memory-managementah ]h"]pcm memory managementah$]h&]uh1hhj]hhhhhK)ubh)}(hhh](h)}(hPCM DMA Engine APIh]hPCM DMA Engine API}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihhhhhK-ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_hwparams_to_dma_slave_config (C function)"c.snd_hwparams_to_dma_slave_confighNtauh1hhjihhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,ubj")}(h h]h }(hj%jhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjhhhj$jhK,ubj3)}(h snd_hwparams_to_dma_slave_configh]j9)}(h snd_hwparams_to_dma_slave_configh]h snd_hwparams_to_dma_slave_config}(hj7jhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3jubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjjhhhj$jhK,ubjT)}(hz(const struct snd_pcm_substream *substream, const struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](jZ)}(h)const struct snd_pcm_substream *substreamh](j`)}(hjph]hconst}(hjSjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjOjubj")}(h h]h }(hj`jhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOjubj`)}(hjch]hstruct}(hjnjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjOjubj")}(h h]h }(hj{jhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjjmodnameN classnameNjj)}j]j)}jj9jsb"c.snd_hwparams_to_dma_slave_configasbuh1hhjOjubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOjubj)}(hjh]h*}(hjjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOjubj9)}(h substreamh]h substream}(hjjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjOjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjKjubjZ)}(h&const struct snd_pcm_hw_params *paramsh](j`)}(hjph]hconst}(hjjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjjubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj`)}(hjch]hstruct}(hjjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjjubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jj"c.snd_hwparams_to_dma_slave_configasbuh1hhjjubj")}(h h]h }(hj7khhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hjh]h*}(hjEkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj9)}(hparamsh]hparams}(hjRkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjKjubjZ)}(h%struct dma_slave_config *slave_configh](j`)}(hjch]hstruct}(hjkkhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjgkubj")}(h h]h }(hjxkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjgkubh)}(hhh]j9)}(hdma_slave_configh]hdma_slave_config}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jj"c.snd_hwparams_to_dma_slave_configasbuh1hhjgkubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjgkubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgkubj9)}(h slave_configh]h slave_config}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjgkubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjKjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjjhhhj$jhK,ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjjhhhj$jhK,ubah}(h]j jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj$jhK,hj jhhubjv)}(hhh]j{)}(h%Convert hw_params to dma_slave_configh]h%Convert hw_params to dma_slave_config}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK,hjkhhubah}(h]h ]h"]h$]h&]uh1juhj jhhhj$jhK,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjihNhNubj)}(hX**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream ``const struct snd_pcm_hw_params *params`` hw_params ``struct dma_slave_config *slave_config`` DMA slave config **Description** This function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation. **Return** zero if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj lubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjlubj)}(hhh](j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hj-lh]h)const struct snd_pcm_substream *substream}(hj/lhhhNhNubah}(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-hj'lubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjFlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBlhK-hjClubah}(h]h ]h"]h$]h&]uh1jhj'lubeh}(h]h ]h"]h$]h&]uh1jhjBlhK-hj$lubj)}(h5``const struct snd_pcm_hw_params *params`` hw_params h](j)}(h*``const struct snd_pcm_hw_params *params``h]j)}(hjflh]h&const struct snd_pcm_hw_params *params}(hjhlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK.hj`lubj)}(hhh]j{)}(h hw_paramsh]h hw_params}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj{lhK.hj|lubah}(h]h ]h"]h$]h&]uh1jhj`lubeh}(h]h ]h"]h$]h&]uh1jhj{lhK.hj$lubj)}(h;``struct dma_slave_config *slave_config`` DMA slave config h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hjlh]h%struct dma_slave_config *slave_config}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK/hjlubj)}(hhh]j{)}(hDMA slave configh]hDMA slave config}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjlhK/hjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhK/hj$lubeh}(h]h ]h"]h$]h&]uh1jhjlubj{)}(h**Description**h]j)}(hjlh]h Description}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK1hjlubj{)}(hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.h]hThis function can be used to initialize a dma_slave_config from a substream and hw_params in a dmaengine based PCM driver implementation.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK0hjlubj{)}(h **Return**h]j)}(hjmh]hReturn}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK3hjlubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chK4hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h7snd_dmaengine_pcm_set_config_from_dai_data (C function),c.snd_dmaengine_pcm_set_config_from_dai_datahNtauh1hhjihhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hvoidh]hvoid}(hjFmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBmhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZubj")}(h h]h }(hjUmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjBmhhhjTmhKZubj3)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]j9)}(h*snd_dmaengine_pcm_set_config_from_dai_datah]h*snd_dmaengine_pcm_set_config_from_dai_data}(hjgmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcmubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjBmhhhjTmhKZubjT)}(h(const struct snd_pcm_substream *substream, const struct snd_dmaengine_dai_dma_data *dma_data, struct dma_slave_config *slave_config)h](jZ)}(h)const struct snd_pcm_substream *substreamh](j`)}(hjph]hconst}(hjmhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjmubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubj`)}(hjch]hstruct}(hjmhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjmubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j)}jjimsb,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjmubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj9)}(h substreamh]h substream}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj{mubjZ)}(h1const struct snd_dmaengine_dai_dma_data *dma_datah](j`)}(hjph]hconst}(hjnhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj nubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj nubj`)}(hjch]hstruct}(hj+nhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj nubj")}(h h]h }(hj8nhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj nubh)}(hhh]j9)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjInhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKnmodnameN classnameNjj)}j]jm,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhj nubj")}(h h]h }(hjgnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj nubj)}(hjh]h*}(hjunhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj nubj9)}(hdma_datah]hdma_data}(hjnhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj nubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj{mubjZ)}(h%struct dma_slave_config *slave_configh](j`)}(hjch]hstruct}(hjnhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjnubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjnubh)}(hhh]j9)}(hdma_slave_configh]hdma_slave_config}(hjnhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]jm,c.snd_dmaengine_pcm_set_config_from_dai_dataasbuh1hhjnubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjnubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnubj9)}(h slave_configh]h slave_config}(hjnhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjnubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj{mubeh}(h]h ]h"]h$]h&]jQjRuh1jShjBmhhhjTmhKZubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj>mhhhjTmhKZubah}(h]j9mah ](jmjneh"]h$]h&]jrjs)jthuh1jhjTmhKZhj;mhhubjv)}(hhh]j{)}(h2Initializes a dma slave config using DAI DMA data.h]h2Initializes a dma slave config using DAI DMA data.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chKZhjohhubah}(h]h ]h"]h$]h&]uh1juhj;mhhhjTmhKZubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4ojj4ojjjuh1hhhhjihNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj>oh]h Parameters}(hj@ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhhubah}(h]h ]h"]h$]h&]uh1juhjxhhhjxhM)ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYyjjYyjjjuh1hhhhjihNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjcyh]h Parameters}(hjeyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjayubah}(h]h ]h"]h$]h&]uh1jzhk/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)}(hjyh]h#struct snd_pcm_substream *substream}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM*hj|yubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyhM*hjyubah}(h]h ]h"]h$]h&]uh1jhj|yubeh}(h]h ]h"]h$]h&]uh1jhjyhM*hjyyubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hjyh]hstruct dma_chan *chan}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM+hjyubj)}(hhh]j{)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyhM+hjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhM+hjyyubeh}(h]h ]h"]h$]h&]uh1jhj]yubj{)}(h**Description**h]j)}(hjyh]h Description}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM-hj]yubj{)}(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.}(hj zhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM,hj]yubj{)}(h **Return**h]j)}(hjzh]hReturn}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM0hj]yubj{)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj3zhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM1hj]yubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_dmaengine_pcm_close (C function)c.snd_dmaengine_pcm_closehNtauh1hhjihhhNhNubh)}(hhh](j)}(hAint snd_dmaengine_pcm_close (struct snd_pcm_substream *substream)h]j )}(h@int snd_dmaengine_pcm_close(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hjbzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^zhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMmubj")}(h h]h }(hjqzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^zhhhjpzhMmubj3)}(hsnd_dmaengine_pcm_closeh]j9)}(hsnd_dmaengine_pcm_closeh]hsnd_dmaengine_pcm_close}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj^zhhhjpzhMmubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hjzhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjzubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjzmodnameN classnameNjj)}j]j)}jjzsbc.snd_dmaengine_pcm_closeasbuh1hhjzubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj9)}(h substreamh]h substream}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubah}(h]h ]h"]h$]h&]jQjRuh1jShj^zhhhjpzhMmubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjZzhhhjpzhMmubah}(h]jUzah ](jmjneh"]h$]h&]jrjs)jthuh1jhjpzhMmhjWzhhubjv)}(hhh]j{)}(h%Close a dmaengine based PCM substreamh]h%Close a dmaengine based PCM substream}(hj"{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMmhj{hhubah}(h]h ]h"]h$]h&]uh1juhjWzhhhjpzhMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:{jj:{jjjuh1hhhhjihNhNubj)}(h**Parameters** ``struct snd_pcm_substream *substream`` PCM substream **Return** 0 on success, a negative error code otherwiseh](j{)}(h**Parameters**h]j)}(hjD{h]h Parameters}(hjF{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB{ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMqhj>{ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream 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&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMnhj]{ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hj|{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjx{hMnhjy{ubah}(h]h ]h"]h$]h&]uh1jhj]{ubeh}(h]h ]h"]h$]h&]uh1jhjx{hMnhjZ{ubah}(h]h ]h"]h$]h&]uh1jhj>{ubj{)}(h **Return**h]j)}(hj{h]hReturn}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMphj>{ubj{)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMphj>{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1snd_dmaengine_pcm_close_release_chan (C function)&c.snd_dmaengine_pcm_close_release_chanhNtauh1hhjihhhNhNubh)}(hhh](j)}(hNint snd_dmaengine_pcm_close_release_chan (struct snd_pcm_substream *substream)h]j )}(hMint snd_dmaengine_pcm_close_release_chan(struct snd_pcm_substream *substream)h](j)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMzubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{hhhj{hMzubj3)}(h$snd_dmaengine_pcm_close_release_chanh]j9)}(h$snd_dmaengine_pcm_close_release_chanh]h$snd_dmaengine_pcm_close_release_chan}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj{hhhj{hMzubjT)}(h%(struct snd_pcm_substream *substream)h]jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj |hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj|ubj")}(h h]h }(hj-|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj>|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@|modnameN classnameNjj)}j]j)}jj|sb&c.snd_dmaengine_pcm_close_release_chanasbuh1hhj|ubj")}(h h]h }(hj^|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|ubj)}(hjh]h*}(hjl|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|ubj9)}(h substreamh]h substream}(hjy|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubah}(h]h ]h"]h$]h&]jQjRuh1jShj{hhhj{hMzubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj{hhhj{hMzubah}(h]j{ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj{hMzhj{hhubjv)}(hhh]j{)}(h9Close a dmaengine based PCM substream and release channelh]h9Close a dmaengine based PCM substream and release channel}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMzhj|hhubah}(h]h ]h"]h$]h&]uh1juhj{hhhj{hMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|jj|jjjuh1hhhhjihNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj|h]h Parameters}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM~hj|ubj)}(hhh]j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj|h]h#struct snd_pcm_substream *substream}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM|hj|ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|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|ubj{)}(h**Description**h]j)}(hj}h]h Description}(hj!}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM~hj|ubj{)}(h;Releases the DMA channel associated with the PCM substream.h]h;Releases the DMA channel associated with the PCM substream.}(hj5}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chM}hj|ubj{)}(h **Return**h]j)}(hjF}h]hReturn}(hjH}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD}ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj|ubj{)}(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&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h6snd_dmaengine_pcm_refine_runtime_hwparams (C function)+c.snd_dmaengine_pcm_refine_runtime_hwparamshNtauh1hhjihhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}hhhj}hMubj3)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]j9)}(h)snd_dmaengine_pcm_refine_runtime_hwparamsh]h)snd_dmaengine_pcm_refine_runtime_hwparams}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj}hhhj}hMubjT)}(h(struct snd_pcm_substream *substream, struct snd_dmaengine_dai_dma_data *dma_data, struct snd_pcm_hardware *hw, struct dma_chan *chan)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj}ubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jj}sb+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj}ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(h substreamh]h substream}(hj!~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj}ubjZ)}(h+struct snd_dmaengine_dai_dma_data *dma_datah](j`)}(hjch]hstruct}(hj:~hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj6~ubj")}(h h]h }(hjG~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6~ubh)}(hhh]j9)}(hsnd_dmaengine_dai_dma_datah]hsnd_dmaengine_dai_dma_data}(hjX~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjU~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZ~modnameN classnameNjj)}j]j~+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj6~ubj")}(h h]h }(hjv~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6~ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6~ubj9)}(hdma_datah]hdma_data}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj}ubjZ)}(hstruct snd_pcm_hardware *hwh](j`)}(hjch]hstruct}(hj~hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubh)}(hhh]j9)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j~+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhj~ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj9)}(hhwh]hhw}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj}ubjZ)}(hstruct dma_chan *chanh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hdma_chanh]hdma_chan}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j~+c.snd_dmaengine_pcm_refine_runtime_hwparamsasbuh1hhjubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hchanh]hchan}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj}ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj}hhhj}hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj}hhhj}hMubah}(h]j~}ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj}hMhj}hhubjv)}(hhh]j{)}(hRefine runtime hw paramsh]hRefine runtime hw params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj}hhhj}hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjihNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hjh]h#struct snd_pcm_substream *substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h=``struct snd_dmaengine_dai_dma_data *dma_data`` DAI DMA data h](j)}(h/``struct snd_dmaengine_dai_dma_data *dma_data``h]j)}(hjh]h+struct snd_dmaengine_dai_dma_data *dma_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]j{)}(h DAI DMA datah]h DAI DMA data}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhjubj)}(h.``struct snd_pcm_hardware *hw`` PCM hw params h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hjNh]hstruct snd_pcm_hardware *hw}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjHubj)}(hhh]j{)}(h PCM hw paramsh]h PCM hw params}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjchMhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMhjubj)}(h@``struct dma_chan *chan`` DMA channel to use for data transfers h](j)}(h``struct dma_chan *chan``h]j)}(hjh]hstruct dma_chan *chan}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj)}(hhh]j{)}(h%DMA channel to use for data transfersh]h%DMA channel to use for data transfers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj€h]h Description}(hjĀhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj{)}(hQThis function will query DMA capability, then refine the pcm hardware parameters.h]hQThis function will query DMA capability, then refine the pcm hardware parameters.}(hj؀hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubj{)}(h-0 on success, a negative error code otherwiseh]h-0 on success, a negative error code otherwise}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:46: ./sound/core/pcm_dmaengine.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_pcm_substream_to_dma_direction (C function)$c.snd_pcm_substream_to_dma_directionhNtauh1hhjihhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhNubh)}(hhh](j)}(hjenum dma_transfer_direction snd_pcm_substream_to_dma_direction (const struct snd_pcm_substream *substream)h]j )}(hienum dma_transfer_direction snd_pcm_substream_to_dma_direction(const struct snd_pcm_substream *substream)h](j`)}(hj(h]henum}(hj/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj+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 ]j.ah"]h$]h&]uh1j!hj+hhhj<hKubh)}(hhh]j9)}(hdma_transfer_directionh]hdma_transfer_direction}(hjNhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]j)}j"snd_pcm_substream_to_dma_directionsb$c.snd_pcm_substream_to_dma_directionasbuh1hhj+hhhj<hKubj")}(h h]h }(hjohhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+hhhj<hKubj3)}(h"snd_pcm_substream_to_dma_directionh]j9)}(hjlh]h"snd_pcm_substream_to_dma_direction}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj+hhhj<hKubjT)}(h+(const struct snd_pcm_substream *substream)h]jZ)}(h)const struct snd_pcm_substream *substreamh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjāhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hjՁhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjҁubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjׁmodnameN classnameNjj)}j]jj$c.snd_pcm_substream_to_dma_directionasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShj+hhhj<hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj'hhhj<hKubah}(h]j!ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hKhj$hhubjv)}(hhh]j{)}(h.Get dma_transfer_direction for a PCM substreamh]h.Get dma_transfer_direction for a PCM substream}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj5hhubah}(h]h ]h"]h$]h&]uh1juhj$hhhj<hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjihj#hNubj)}(hq**Parameters** ``const struct snd_pcm_substream *substream`` PCM substream **Return** DMA transfer directionh](j{)}(h**Parameters**h]j)}(hjZh]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjTubj)}(hhh]j)}(h<``const struct snd_pcm_substream *substream`` PCM substream h](j)}(h-``const struct snd_pcm_substream *substream``h]j)}(hjyh]h)const struct snd_pcm_substream *substream}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjsubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhKhjpubah}(h]h ]h"]h$]h&]uh1jhjTubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjTubj{)}(hDMA transfer directionh]hDMA transfer direction}(hjʂhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhj#hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_dmaengine_dai_dma_data (C struct)c.snd_dmaengine_dai_dma_datahNtauh1hhjihhhj#hNubh)}(hhh](j)}(hsnd_dmaengine_dai_dma_datah]j )}(h!struct snd_dmaengine_dai_dma_datah](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_dmaengine_dai_dma_datah]j9)}(hjh]hsnd_dmaengine_dai_dma_data}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(hDAI DMA configuration datah]hDAI DMA configuration data}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK:hj8hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jstructeh"]h$]h&]jjjjSjjSjjjuh1hhhhjihj#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](j{)}(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&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK>hjWubh 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; };}hjzsbah}(h]h ]h"]h$]h&]jQjRuh1jxhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK@hjWubj{)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKMhjWubj)}(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.hhKhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hK@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)}(hjVh]h filter_data}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKBhjPubj)}(hhh]j{)}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKAhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhKBhjubj)}(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]j{)}(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&]uh1jzhjhKChjubah}(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)}(hjɄh]h fifo_size}(hj˄hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDŽubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKDhjÄubj)}(hhh]j{)}(h(FIFO size of the DAI controller in bytesh]h(FIFO size of the DAI controller in bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjބhKDhj߄ubah}(h]h ]h"]h$]h&]uh1jhjÄubeh}(h]h ]h"]h$]h&]uh1jhjބhKDhjubj)}(hF``flags`` PCM_DAI flags, only SND_DMAENGINE_PCM_DAI_FLAG_PACK for now h](j)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKEhjubj)}(hhh]j{)}(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&]uh1jzhjhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKEhjubj)}(ha``peripheral_config`` peripheral configuration for programming peripheral for dmaengine transfer h](j)}(h``peripheral_config``h]j)}(hj;h]hperipheral_config}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKGhj5ubj)}(hhh]j{)}(hJperipheral configuration for programming peripheral for dmaengine transferh]hJperipheral configuration for programming peripheral for dmaengine transfer}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKFhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhKGhjubj)}(h9``peripheral_size`` peripheral configuration buffer size h](j)}(h``peripheral_size``h]j)}(hjuh]hperipheral_size}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKHhjoubj)}(hhh]j{)}(h$peripheral configuration buffer sizeh]h$peripheral configuration buffer size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(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]j{)}(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.}(hjDžhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKIhjąubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjÅhKKhjubeh}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhj#hNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_dmaengine_pcm_config (C struct)c.snd_dmaengine_pcm_confighNtauh1hhjihhhj#hNubh)}(hhh](j)}(hsnd_dmaengine_pcm_configh]j )}(hstruct snd_dmaengine_pcm_configh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKRubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKRubj3)}(hsnd_dmaengine_pcm_configh]j9)}(hjh]hsnd_dmaengine_pcm_config}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKRubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKRubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKRhjhhubjv)}(hhh]j{)}(h*Configuration data for dmaengine based PCMh]h*Configuration data for dmaengine based PCM}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKvhjGhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKRubeh}(h]h ](jstructeh"]h$]h&]jjjjbjjbjjjuh1hhhhjihj#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](j{)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh:}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjfubjy)}(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&]jQjRuh1jxhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK|hjfubj{)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjfubj)}(hhh](j)}(h``prepare_slave_config`` Callback used to fill in the DMA slave_config for a PCM substream. Will be called from the PCM drivers hwparams callback. h](j)}(h``prepare_slave_config``h]j)}(hjh]hprepare_slave_config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKyhjubj)}(hhh]j{)}(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&]uh1jzhn/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&]uh1jhj̆hKyhjubj)}(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)}(hjh]hcompat_request_channel}(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]j{)}(hLCallback to request a DMA channel for platforms which do not use devicetree.h]hLCallback to request a DMA channel for platforms which do not use devicetree.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK{hjubj)}(hY``process`` Callback used to apply processing on samples transferred from/to user space. h](j)}(h ``process``h]j)}(hj+h]hprocess}(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]j{)}(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.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhK|hjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj@hK}hjubj)}(h9``name`` Component name. If null, dev_name will be used. h](j)}(h``name``h]j)}(hjeh]hname}(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.hhK~hj_ubj)}(hhh]j{)}(h/Component name. If null, dev_name will be used.h]h/Component name. If null, dev_name will be used.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjzhK~hj{ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjzhK~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)}(hjh]hcompat_filter_fn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubj)}(hhh]j{)}(hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI's DMA data.h]hWill be used as the filter function when requesting a channel for platforms which do not use devicetree. The filter parameter will be the DAI’s DMA data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/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&]uh1jhjhKhjubj)}(hS``dma_dev`` If set, request DMA channel on this device rather than the DAI device. h](j)}(h ``dma_dev``h]j)}(hj؇h]hdma_dev}(hjڇhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjևubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj҇ubj)}(hhh]j{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjubah}(h]h ]h"]h$]h&]uh1jhj҇ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h^``chan_names`` If set, these custom DMA channel names will be requested at registration time. h](j)}(h``chan_names``h]j)}(hjh]h chan_names}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj ubj)}(hhh]j{)}(hNIf set, these custom DMA channel names will be requested at registration time.h]hNIf set, these custom DMA channel names will be requested at registration time.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hKhjubj)}(hA``pcm_hardware`` snd_pcm_hardware struct to be used for the PCM. h](j)}(h``pcm_hardware``h]j)}(hjLh]h pcm_hardware}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjFubj)}(hhh]j{)}(h/snd_pcm_hardware struct to be used for the PCM.h]h/snd_pcm_hardware struct to be used for the PCM.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjahKhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahKhjubj)}(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]j{)}(h&Size of the preallocated audio buffer.h]h&Size of the preallocated audio buffer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/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&]uh1jhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjihhhj#hNubj{)}(h**Note**h]j)}(hjȈh]hNote}(hjʈhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjƈubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjihhubj{)}(hX If both compat_request_channel and compat_filter_fn are set compat_request_channel will be used to request the channel and compat_filter_fn will be ignored. Otherwise the channel will be requested using dma_request_channel with compat_filter_fn as the filter function.h]hX If both compat_request_channel and compat_filter_fn are set compat_request_channel will be used to request the channel and compat_filter_fn will be ignored. Otherwise the channel will be requested using dma_request_channel with compat_filter_fn as the filter function.}(hjވhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:47: ./include/sound/dmaengine_pcm.hhKhjihhubeh}(h]pcm-dma-engine-apiah ]h"]pcm dma engine apiah$]h&]uh1hhj]hhhhhK-ubeh}(h]pcm-apiah ]h"]pcm apiah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hControl/Mixer APIh]hControl/Mixer API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK2ubh)}(hhh](h)}(hGeneral Control Interfaceh]hGeneral Control Interface}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK5ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify (C function)c.snd_ctl_notifyhNtauh1hhjhhhNhNubh)}(hhh](j)}(hZvoid snd_ctl_notify (struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h]j )}(hYvoid snd_ctl_notify(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](j)}(hvoidh]hvoid}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4hhhjFhKubj3)}(hsnd_ctl_notifyh]j9)}(hsnd_ctl_notifyh]hsnd_ctl_notify}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj4hhhjFhKubjT)}(hF(struct snd_card *card, unsigned int mask, struct snd_ctl_elem_id *id)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjuhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjqubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj[sbc.snd_ctl_notifyasbuh1hhjqubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj9)}(hcardh]hcard}(hjΉhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjmubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjmubjZ)}(hstruct snd_ctl_elem_id *idh](j`)}(hjch]hstruct}(hj8hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj4ubj")}(h h]h }(hjEhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4ubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjVhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjSubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNjj)}j]jc.snd_ctl_notifyasbuh1hhj4ubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj9)}(hidh]hid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjmubeh}(h]h ]h"]h$]h&]jQjRuh1jShj4hhhjFhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj0hhhjFhKubah}(h]j+ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjFhKhj-hhubjv)}(hhh]j{)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhj-hhhjFhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjъjjъjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjۊh]h Parameters}(hj݊hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjيubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjՊubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(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.chKhjubj)}(hhh]j{)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hj3h]hunsigned int mask}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj-ubj)}(hhh]j{)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjHhKhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhKhjubj)}(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)}(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.chKhjfubj)}(hhh]j{)}(h'the ctl element id to send notificationh]h'the ctl element id to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjՊubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjՊubj{)}(hThis function adds an event record with the given id and mask, appends to the list and wakes up the user-space for notification. This can be called in the atomic context.h]hThis function adds an event record with the given id and mask, appends to the list and wakes up the user-space for notification. This can be called in the atomic context.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjՊubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_notify_one (C function)c.snd_ctl_notify_onehNtauh1hhjhhhNhNubh)}(hhh](j)}(hpvoid snd_ctl_notify_one (struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h]j )}(hovoid snd_ctl_notify_one(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_ctl_notify_oneh]j9)}(hsnd_ctl_notify_oneh]hsnd_ctl_notify_one}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(hX(struct snd_card *card, unsigned int mask, struct snd_kcontrol *kctl, unsigned int ioff)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj%ubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj%ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_notify_oneasbuh1hhj%ubj")}(h h]h }(hjghhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj%ubj)}(hjh]h*}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj%ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjŌhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hjӌhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubjZ)}(hstruct snd_kcontrol *kctlh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jcc.snd_ctl_notify_oneasbuh1hhjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkctlh]hkctl}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubjZ)}(hunsigned int ioffh](j)}(hunsignedh]hunsigned}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj)}(hinth]hint}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj9)}(hioffh]hioff}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jߋah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h4Send notification to user-space for a control changeh]h4Send notification to user-space for a control change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj֍jj֍jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjލubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjڍubj)}(hhh](j)}(h8``struct snd_card *card`` the card to send notification h](j)}(h``struct snd_card *card``h]j)}(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.chKhjubj)}(hhh]j{)}(hthe card to send notificationh]hthe card to send notification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h8``unsigned int mask`` the event mask, SNDRV_CTL_EVENT_* h](j)}(h``unsigned int mask``h]j)}(hj8h]hunsigned int mask}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj2ubj)}(hhh]j{)}(h!the event mask, SNDRV_CTL_EVENT_*h]h!the event mask, SNDRV_CTL_EVENT_*}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjMhKhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjubj)}(hD``struct snd_kcontrol *kctl`` the pointer with the control instance h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjqh]hstruct snd_kcontrol *kctl}(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.chKhjkubj)}(hhh]j{)}(h%the pointer with the control instanceh]h%the pointer with the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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]j{)}(h*the additional offset to the control indexh]h*the additional offset to the control index}(hjÎhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjڍubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjڍubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjڍubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new (C function) c.snd_ctl_newhNtauh1hhjhhhNhNubh)}(hhh](j)}(hpint snd_ctl_new (struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h]j )}(hoint snd_ctl_new(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](j)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&hhhj8hKubj3)}(h snd_ctl_newh]j9)}(h snd_ctl_newh]h snd_ctl_new}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj&hhhj8hKubjT)}(h`(struct snd_kcontrol **kctl, unsigned int count, unsigned int access, struct snd_ctl_file *file)h](jZ)}(hstruct snd_kcontrol **kctlh](j`)}(hjch]hstruct}(hjghhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjMsb c.snd_ctl_newasbuh1hhjcubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(hkctlh]hkctl}(hj͏hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(hunsigned int counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(hunsigned int accessh](j)}(hunsignedh]hunsigned}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj")}(h h]h }(hjEhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj")}(h h]h }(hjahhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj9)}(haccessh]haccess}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(hstruct snd_ctl_file *fileh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_ctl_fileh]h snd_ctl_file}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.snd_ctl_newasbuh1hhjubj")}(h h]h }(hjĐhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjҐhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hfileh]hfile}(hjߐhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj&hhhj8hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj"hhhj8hKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj8hKhjhhubjv)}(hhh]j{)}(h0create a new control instance with some elementsh]h0create a new control instance with some elements}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj8hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubj)}(hhh](j)}(hI``struct snd_kcontrol **kctl`` the pointer to store new control instance h](j)}(h``struct snd_kcontrol **kctl``h]j)}(hjJh]hstruct snd_kcontrol **kctl}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjDubj)}(hhh]j{)}(h)the pointer to store new control instanceh]h)the pointer to store new control instance}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_hKhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjAubj)}(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.chKhj}ubj)}(hhh]j{)}(h&the number of elements in this controlh]h&the number of elements in this control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjAubj)}(hN``unsigned int access`` the default access flags for elements in this control h](j)}(h``unsigned int access``h]j)}(hjh]hunsigned int access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhjubj)}(hhh]j{)}(h5the default access flags for elements in this controlh]h5the default access flags for elements in this control}(hjՑhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjёhKhjґubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjёhKhjAubj)}(h@``struct snd_ctl_file *file`` given when locking these elements 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.chKhjubj)}(hhh]j{)}(h!given when locking these elementsh]h!given when locking these elements}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjAubeh}(h]h ]h"]h$]h&]uh1jhj%ubj{)}(h**Description**h]j)}(hj0h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubj{)}(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 (}(hjFhhhNhNubj)}(h **count**h]hcount}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh.). Each element has given access permissions (}(hjFhhhNhNubj)}(h **access**h]haccess}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh). Each element is locked when }(hjFhhhNhNubj)}(h**file**h]hfile}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh is given.}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubj{)}(h#0 on success, error code on failureh]h#0 on success, error code on failure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chKhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_new1 (C function)c.snd_ctl_new1hNtauh1hhjhhhNhNubh)}(hhh](j)}(h`struct snd_kcontrol * snd_ctl_new1 (const struct snd_kcontrol_new *ncontrol, void *private_data)h]j )}(h^struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol, void *private_data)h](j`)}(hjch]hstruct}(hjҒhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjΒhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjΒhhhjߒhMubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j snd_ctl_new1sbc.snd_ctl_new1asbuh1hhjΒhhhjߒhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjΒhhhjߒhMubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjΒhhhjߒhMubj3)}(h snd_ctl_new1h]j9)}(hjh]h snd_ctl_new1}(hj1hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjΒhhhjߒhMubjT)}(h=(const struct snd_kcontrol_new *ncontrol, void *private_data)h](jZ)}(h'const struct snd_kcontrol_new *ncontrolh](j`)}(hjph]hconst}(hjLhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjHubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHubj`)}(hjch]hstruct}(hjghhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjHubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHubh)}(hhh]j9)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j c.snd_ctl_new1asbuh1hhjHubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj9)}(hncontrolh]hncontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDubjZ)}(hvoid *private_datah](j)}(hvoidh]hvoid}(hjדhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӓubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjӓubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjӓubj9)}(h private_datah]h private_data}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjӓubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDubeh}(h]h ]h"]h$]h&]jQjRuh1jShjΒhhhjߒhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjʒhhhjߒhMubah}(h]jŒah ](jmjneh"]h$]h&]jrjs)jthuh1jhjߒhMhjǒhhubjv)}(hhh]j{)}(h+create a control instance from the templateh]h+create a control instance from the template}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj'hhubah}(h]h ]h"]h$]h&]uh1juhjǒhhhjߒhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjFubj)}(hhh](j)}(hF``const struct snd_kcontrol_new *ncontrol`` the initialization record h](j)}(h+``const struct snd_kcontrol_new *ncontrol``h]j)}(hjkh]h'const struct snd_kcontrol_new *ncontrol}(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]j{)}(hthe initialization recordh]hthe initialization record}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubj)}(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.chMhjubj)}(hhh]j{)}(hthe private data to seth]hthe private data to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubeh}(h]h ]h"]h$]h&]uh1jhjFubj{)}(h**Description**h]j)}(hjߔh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjݔubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjFubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjFubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjFubj{)}(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}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh on failure.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_free_one (C function)c.snd_ctl_free_onehNtauh1hhjhhhNhNubh)}(hhh](j)}(h5void snd_ctl_free_one (struct snd_kcontrol *kcontrol)h]j )}(h4void snd_ctl_free_one(struct snd_kcontrol *kcontrol)h](j)}(hvoidh]hvoid}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMCubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYhhhjkhMCubj3)}(hsnd_ctl_free_oneh]j9)}(hsnd_ctl_free_oneh]hsnd_ctl_free_one}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjYhhhjkhMCubjT)}(h(struct snd_kcontrol *kcontrol)h]jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_free_oneasbuh1hhjubj")}(h h]h }(hjؕhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjYhhhjkhMCubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjUhhhjkhMCubah}(h]jPah ](jmjneh"]h$]h&]jrjs)jthuh1jhjkhMChjRhhubjv)}(hhh]j{)}(hrelease the control instanceh]hrelease the control instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMChjhhubah}(h]h ]h"]h$]h&]uh1juhjRhhhjkhMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj?h]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMGhj9ubj)}(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.chMDhjXubj)}(hhh]j{)}(hthe control instanceh]hthe control instance}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjshMDhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMDhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMFhj9ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMEhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_add (C function) c.snd_ctl_addhNtauh1hhjhhhNhNubh)}(hhh](j)}(hFint snd_ctl_add (struct snd_card *card, struct snd_kcontrol *kcontrol)h]j )}(hEint snd_ctl_add(struct snd_card *card, struct snd_kcontrol *kcontrol)h](j)}(hinth]hint}(hjޖhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjږhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjږhhhjhMubj3)}(h snd_ctl_addh]j9)}(h snd_ctl_addh]h snd_ctl_add}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjږhhhjhMubjT)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jjsb c.snd_ctl_addasbuh1hhjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jU c.snd_ctl_addasbuh1hhjubj")}(h h]h }(hjɗhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjחhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjږhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj֖hhhjhMubah}(h]jіah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjӖhhubjv)}(hhh]j{)}(h$add the control instance to the cardh]h$add the control instance to the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj hhubah}(h]h ]h"]h$]h&]uh1juhjӖhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj&jj&jjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kcontrol`` the control instance to 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](j{)}(h**Parameters**h]j)}(hj0h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hjOh]hstruct snd_card *card}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjIubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjFubj)}(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]j{)}(hthe control instance to addh]hthe control instance to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjFubeh}(h]h ]h"]h$]h&]uh1jhj*ubj{)}(h**Description**h]j)}(hjØh]h Description}(hjŘhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hj*ubj{)}(hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.h]hAdds the control instance created via snd_ctl_new() or snd_ctl_new1() to the given card. Assigns also an unique numid used for fast search.}(hj٘hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj*ubj{)}(h9It frees automatically the control which cannot be added.h]h9It frees automatically the control which cannot be added.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM#hj*ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM%hj*ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM&hj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_replace (C function)c.snd_ctl_replacehNtauh1hhjhhhNhNubh)}(hhh](j)}(h_int snd_ctl_replace (struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h]j )}(h^int snd_ctl_replace(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](j)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM0ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:hhhjLhM0ubj3)}(hsnd_ctl_replaceh]j9)}(hsnd_ctl_replaceh]hsnd_ctl_replace}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj:hhhjLhM0ubjT)}(hK(struct snd_card *card, struct snd_kcontrol *kcontrol, bool add_on_replace)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj{hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjwubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjwubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjasbc.snd_ctl_replaceasbuh1hhjwubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjwubj)}(hjh]h*}(hjǙhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwubj9)}(hcardh]hcard}(hjԙhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjwubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsubjZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_ctl_replaceasbuh1hhjubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsubjZ)}(hbool add_on_replaceh](j)}(hboolh]hbool}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj9)}(hadd_on_replaceh]hadd_on_replace}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjsubeh}(h]h ]h"]h$]h&]jQjRuh1jShj:hhhjLhM0ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj6hhhjLhM0ubah}(h]j1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjLhM0hj3hhubjv)}(hhh]j{)}(h(replace the control instance of the cardh]h(replace the control instance of the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM0hjhhubah}(h]h ]h"]h$]h&]uh1juhj3hhhjLhM0ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjŚh]h Parameters}(hjǚhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjÚubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hjubj)}(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.chM1hjޚubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM1hjubah}(h]h ]h"]h$]h&]uh1jhjޚubeh}(h]h ]h"]h$]h&]uh1jhjhM1hjۚubj)}(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.chM2hjubj)}(hhh]j{)}(hthe control instance to replaceh]hthe control instance to replace}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2hM2hj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hM2hjۚubj)}(h=``bool add_on_replace`` add the control if not already added h](j)}(h``bool add_on_replace``h]j)}(hjVh]hbool add_on_replace}(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:54: ./sound/core/control.chM3hjPubj)}(hhh]j{)}(h$add the control if not already addedh]h$add the control if not already added}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjkhM3hjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhM3hjۚubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM5hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hjubj{)}(hEIt frees automatically the control which cannot be added or replaced.h]hEIt frees automatically the control which cannot be added or replaced.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM8hjubj{)}(h **Return**h]j)}(hjǛh]hReturn}(hjɛhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjśubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM:hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM;hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove (C function)c.snd_ctl_removehNtauh1hhjhhhNhNubh)}(hhh](j)}(hIint snd_ctl_remove (struct snd_card *card, struct snd_kcontrol *kcontrol)h]j )}(hHint snd_ctl_remove(struct snd_card *card, struct snd_kcontrol *kcontrol)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMeubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMeubj3)}(hsnd_ctl_removeh]j9)}(hsnd_ctl_removeh]hsnd_ctl_remove}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMeubjT)}(h6(struct snd_card *card, struct snd_kcontrol *kcontrol)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjEubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.snd_ctl_removeasbuh1hhjEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubjZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjȜhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjٜhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj֜ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjۜmodnameN classnameNjj)}j]jc.snd_ctl_removeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMeubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMeubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMehjhhubjv)}(hhh]j{)}(h/remove the control from the card and release ith]h/remove the control from the card and release it}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMehj9hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjjTjjTjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMihjXubj)}(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}(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.chMfhjwubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjtubj)}(hA``struct snd_kcontrol *kcontrol`` the control instance to remove h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMghjubj)}(hhh]j{)}(hthe control instance to removeh]hthe control instance to remove}(hjϝhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj˝hMghj̝ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj˝hMghjtubeh}(h]h ]h"]h$]h&]uh1jhjXubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMihjXubj{)}(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 }(hjhhhNhNubj)}(h **kcontrol**h]hkcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh argument is allowed as noop.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhhjXubj{)}(hCNote that this function takes card->controls_rwsem lock internally.h]hCNote that this function takes card->controls_rwsem lock internally.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMmhjXubj{)}(h **Return**h]j)}(hj9h]hReturn}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMohjXubj{)}(h50 if successful, or a negative error code on failure.h]h50 if successful, or a negative error code on failure.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMmhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_remove_id (C function)c.snd_ctl_remove_idhNtauh1hhjhhhNhNubh)}(hhh](j)}(hIint snd_ctl_remove_id (struct snd_card *card, struct snd_ctl_elem_id *id)h]j )}(hHint snd_ctl_remove_id(struct snd_card *card, struct snd_ctl_elem_id *id)h](j)}(hinth]hint}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzhhhjhM{ubj3)}(hsnd_ctl_remove_idh]j9)}(hsnd_ctl_remove_idh]hsnd_ctl_remove_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjzhhhjhM{ubjT)}(h3(struct snd_card *card, struct snd_ctl_elem_id *id)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjȞhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjٞhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj֞ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj۞modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_remove_idasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_id *idh](j`)}(hjch]hstruct}(hj-hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj)ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]jc.snd_ctl_remove_idasbuh1hhj)ubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(hidh]hid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjzhhhjhM{ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjvhhhjhM{ubah}(h]jqah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM{hjshhubjv)}(hhh]j{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM{hjhhubah}(h]h ]h"]h$]h&]uh1juhjshhhjhM{ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjƟjjƟjjjuh1hhhhjhNhNubj)}(hX***Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *id`` the control id to remove **Description** Finds the control instance with the given id, removes it from the card list and releases it. **Return** 0 if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjПh]h Parameters}(hjҟhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjΟubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjʟubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjh]hstruct snd_card *card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM|hjubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM|hjubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hj(h]hstruct snd_ctl_elem_id *id}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM}hj"ubj)}(hhh]j{)}(hthe control id to removeh]hthe control id to remove}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj=hM}hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hM}hjubeh}(h]h ]h"]h$]h&]uh1jhjʟubj{)}(h**Description**h]j)}(hjch]h Description}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjʟubj{)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM~hjʟubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjʟubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjʟubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ctl_remove_user_ctl (C function)c.snd_ctl_remove_user_ctlhNtauh1hhjhhhNhNubh)}(hhh](j)}(hTint snd_ctl_remove_user_ctl (struct snd_ctl_file * file, struct snd_ctl_elem_id *id)h]j )}(hRint snd_ctl_remove_user_ctl(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](j)}(hinth]hint}(hjϠhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjˠhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjޠhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjˠhhhjݠhMubj3)}(hsnd_ctl_remove_user_ctlh]j9)}(hsnd_ctl_remove_user_ctlh]hsnd_ctl_remove_user_ctl}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjˠhhhjݠhMubjT)}(h7(struct snd_ctl_file *file, struct snd_ctl_elem_id *id)h](jZ)}(hstruct snd_ctl_file *fileh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_ctl_fileh]h snd_ctl_file}(hj*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj,modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_remove_user_ctlasbuh1hhjubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hfileh]hfile}(hjehhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_id *idh](j`)}(hjch]hstruct}(hj~hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjzubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jFc.snd_ctl_remove_user_ctlasbuh1hhjzubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubj)}(hjh]h*}(hjȡhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj9)}(hidh]hid}(hjաhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjˠhhhjݠhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjǠhhhjݠhMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjݠhMhjĠhhubjv)}(hhh]j{)}(h,remove and release the unlocked user controlh]h,remove and release the unlocked user control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjĠhhhjݠhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX3**Parameters** ``struct snd_ctl_file * file`` active control handle ``struct snd_ctl_elem_id *id`` the control id to remove **Description** Finds the control instance with the given id, removes it from the card list and releases it. **Return** 0 if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hj!h]h Parameters}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hj@h]hstruct snd_ctl_file * file}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj:ubj)}(hhh]j{)}(hactive control handleh]hactive control handle}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUhMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhj7ubj)}(h8``struct snd_ctl_elem_id *id`` the control id to remove h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(hjyh]hstruct snd_ctl_elem_id *id}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjsubj)}(hhh]j{)}(hthe control id to removeh]hthe control id to remove}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhj7ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(h\Finds the control instance with the given id, removes it from the card list and releases it.h]h\Finds the control instance with the given id, removes it from the card list and releases it.}(hjʢhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(h **Return**h]j)}(hjۢh]hReturn}(hjݢhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj٢ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ctl_activate_id (C function)c.snd_ctl_activate_idhNtauh1hhjhhhNhNubh)}(hhh](j)}(hWint snd_ctl_activate_id (struct snd_card *card, struct snd_ctl_elem_id *id, int active)h]j )}(hVint snd_ctl_activate_id(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj.hMubj3)}(hsnd_ctl_activate_idh]j9)}(hsnd_ctl_activate_idh]hsnd_ctl_activate_id}(hjAhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj.hMubjT)}(h?(struct snd_card *card, struct snd_ctl_elem_id *id, int active)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj]hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjYubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNjj)}j]j)}jjCsbc.snd_ctl_activate_idasbuh1hhjYubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubjZ)}(hstruct snd_ctl_elem_id *idh](j`)}(hjch]hstruct}(hjϣhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjˣubj")}(h h]h }(hjܣhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjˣubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_activate_idasbuh1hhjˣubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjˣubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjˣubj9)}(hidh]hid}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjˣubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubjZ)}(h int activeh](j)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubj9)}(hactiveh]hactive}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjUubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj.hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj.hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj.hMhjhhubjv)}(hhh]j{)}(h/activate/inactivate the control of the given idh]h/activate/inactivate the control of the given id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj.hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_card *card`` the card instance ``struct snd_ctl_elem_id *id`` the control id to activate/inactivate ``int active`` non-zero to activate **Description** Finds the control instance with the given id, and activate or inactivate the control together with notification, if changed. The given ID data is filled with full information. **Return** 0 if unchanged, 1 if changed, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjƤh]hstruct snd_card *card}(hjȤhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjĤubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjߤhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjۤhMhjܤubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjۤhMhjubj)}(hE``struct snd_ctl_elem_id *id`` the control id to activate/inactivate h](j)}(h``struct snd_ctl_elem_id *id``h]j)}(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]j{)}(h%the control id to activate/inactivateh]h%the control id to activate/inactivate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h$``int active`` non-zero to activate h](j)}(h``int active``h]j)}(hj8h]h int active}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj2ubj)}(hhh]j{)}(hnon-zero to activateh]hnon-zero to activate}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjMhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjsh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename_id (C function)c.snd_ctl_rename_idhNtauh1hhjhhhNhNubh)}(hhh](j)}(hmint snd_ctl_rename_id (struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h]j )}(hlint snd_ctl_rename_id(struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h](j)}(hinth]hint}(hjߥhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjۥhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjۥhhhjhMubj3)}(hsnd_ctl_rename_idh]j9)}(hsnd_ctl_rename_idh]hsnd_ctl_rename_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjۥhhhjhMubjT)}(hW(struct snd_card *card, struct snd_ctl_elem_id *src_id, struct snd_ctl_elem_id *dst_id)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjsbc.snd_ctl_rename_idasbuh1hhjubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjuhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_id *src_idh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.snd_ctl_rename_idasbuh1hhjubj")}(h h]h }(hjʦhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjئhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hsrc_idh]hsrc_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_id *dst_idh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jVc.snd_ctl_rename_idasbuh1hhjubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdst_idh]hdst_id}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjۥhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjץhhhjhMubah}(h]jҥah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjԥhhubjv)}(hhh]j{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj|hhubah}(h]h ]h"]h$]h&]uh1juhjԥhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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}(hj§hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj٧hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjէhMhj֧ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjէhMhjubj)}(h.``struct snd_ctl_elem_id *src_id`` the old id h](j)}(h"``struct snd_ctl_elem_id *src_id``h]j)}(hjh]hstruct snd_ctl_elem_id *src_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]j{)}(h the old idh]h the old id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h.``struct snd_ctl_elem_id *dst_id`` the new id h](j)}(h"``struct snd_ctl_elem_id *dst_id``h]j)}(hj2h]hstruct snd_ctl_elem_id *dst_id}(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]j{)}(h the new idh]h the new id}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjmh]h Description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_rename (C function)c.snd_ctl_renamehNtauh1hhjhhhNhNubh)}(hhh](j)}(hXvoid snd_ctl_rename (struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h]j )}(hWvoid snd_ctl_rename(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ctl_renameh]j9)}(hsnd_ctl_renameh]hsnd_ctl_rename}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_card *card, struct snd_kcontrol *kctl, const char *name)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj4hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj0ubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj0ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjRhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjOubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_renameasbuh1hhj0ubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj0ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj,ubjZ)}(hstruct snd_kcontrol *kctlh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjĩhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjƩmodnameN classnameNjj)}j]jnc.snd_ctl_renameasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkctlh]hkctl}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj,ubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hnameh]hname}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj,ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hrename the control on the cardh]hrename the control on the card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX+**Parameters** ``struct snd_card *card`` the card instance ``struct snd_kcontrol *kctl`` the control to rename ``const char *name`` the new name **Description** Renames the specified control on the card to the new name. Note that this function takes card->controls_rwsem lock internally.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjŪh]hstruct snd_card *card}(hjǪhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjêubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjުhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjڪhMhj۪ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjڪhMhjubj)}(h4``struct snd_kcontrol *kctl`` the control to rename h](j)}(h``struct snd_kcontrol *kctl``h]j)}(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.chMhjubj)}(hhh]j{)}(hthe control to renameh]hthe control to rename}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h"``const char *name`` the new name h](j)}(h``const char *name``h]j)}(hj7h]hconst char *name}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhj1ubj)}(hhh]j{)}(h the new nameh]h the new name}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjLhMhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjrh]h Description}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_numid (C function)c.snd_ctl_find_numidhNtauh1hhjhhhNhNubh)}(hhh](j)}(hTstruct snd_kcontrol * snd_ctl_find_numid (struct snd_card *card, unsigned int numid)h]j )}(hRstruct snd_kcontrol *snd_ctl_find_numid(struct snd_card *card, unsigned int numid)h](j`)}(hjch]hstruct}(hjƫhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj«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 ]j.ah"]h$]h&]uh1j!hj«hhhjӫhM,ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_find_numidsbc.snd_ctl_find_numidasbuh1hhj«hhhjӫhM,ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj«hhhjӫhM,ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj«hhhjӫhM,ubj3)}(hsnd_ctl_find_numidh]j9)}(hjh]hsnd_ctl_find_numid}(hj%hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj!ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj«hhhjӫhM,ubjT)}(h+(struct snd_card *card, unsigned int numid)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj@hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1Vj8hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jc.snd_ctl_find_numidasbuh1hhj<ubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(hunsigned int numidh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj̬hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjڬhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hnumidh]hnumid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj«hhhjӫhM,ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjӫhM,ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjӫhM,hjhhubjv)}(hhh]j{)}(h2find the control instance with the given number-idh]h2find the control instance with the given number-id}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM,hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjӫhM,ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM0hj.ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjSh]hstruct snd_card *card}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM-hjMubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhhM-hjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhM-hjJubj)}(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]j{)}(hthe number-id to searchh]hthe number-id to search}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM.hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM.hjJubeh}(h]h ]h"]h$]h&]uh1jhj.ubj{)}(h**Description**h]j)}(hjǭh]h Description}(hjɭhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjŭubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM0hj.ubj{)}(hBFinds the control instance with the given number-id from the card.h]hBFinds the control instance with the given number-id from the card.}(hjݭhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM/hj.ubj{)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM2hj.ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM4hj.ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM2hj.ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_find_id (C function)c.snd_ctl_find_idhNtauh1hhjhhhNhNubh)}(hhh](j)}(h_struct snd_kcontrol * snd_ctl_find_id (struct snd_card *card, const struct snd_ctl_elem_id *id)h]j )}(h]struct snd_kcontrol *snd_ctl_find_id(struct snd_card *card, const struct snd_ctl_elem_id *id)h](j`)}(hjch]hstruct}(hjThhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjPhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMEubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPhhhjahMEubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjumodnameN classnameNjj)}j]j)}jsnd_ctl_find_idsbc.snd_ctl_find_idasbuh1hhjPhhhjahMEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPhhhjahMEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhjahMEubj3)}(hsnd_ctl_find_idh]j9)}(hjh]hsnd_ctl_find_id}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjPhhhjahMEubjT)}(h9(struct snd_card *card, const struct snd_ctl_elem_id *id)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjήhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjʮubj")}(h h]h }(hjۮhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjʮubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhjʮubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjʮubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjʮubj9)}(hcardh]hcard}(hj%hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjʮubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjƮubjZ)}(h const struct snd_ctl_elem_id *idh](j`)}(hjph]hconst}(hj>hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj:ubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj`)}(hjch]hstruct}(hjYhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj:ubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubh)}(hhh]j9)}(hsnd_ctl_elem_idh]hsnd_ctl_elem_id}(hjwhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]jc.snd_ctl_find_idasbuh1hhj:ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj9)}(hidh]hid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjƮubeh}(h]h ]h"]h$]h&]jQjRuh1jShjPhhhjahMEubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjLhhhjahMEubah}(h]jGah ](jmjneh"]h$]h&]jrjs)jthuh1jhjahMEhjIhhubjv)}(hhh]j{)}(h+find the control instance with the given idh]h+find the control instance with the given id}(hjگhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMEhjׯhhubah}(h]h ]h"]h$]h&]uh1juhjIhhhjahMEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMIhjubj)}(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.chMFhjubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hMFhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMFhjubj)}(h6``const struct snd_ctl_elem_id *id`` the id to search h](j)}(h$``const struct snd_ctl_elem_id *id``h]j)}(hjTh]h const struct snd_ctl_elem_id *id}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMGhjNubj)}(hhh]j{)}(hthe id to searchh]hthe id to search}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjihMGhjjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjihMGhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMIhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMHhjubj{)}(hDNote that this function takes card->controls_rwlock lock internally.h]hDNote that this function takes card->controls_rwlock lock internally.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMKhjubj{)}(h **Return**h]j)}(hjŰh]hReturn}(hjǰhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjðubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMMhjubj{)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hj۰hhhNhNubj)}(h``NULL``h]hNULL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj۰ubh if not.}(hj۰hhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_ioctl (C function)c.snd_ctl_register_ioctlhNtauh1hhjhhhNhNubh)}(hhh](j)}(h6int snd_ctl_register_ioctl (snd_kctl_ioctl_func_t fcn)h]j )}(h5int snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMdubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj*hMdubj3)}(hsnd_ctl_register_ioctlh]j9)}(hsnd_ctl_register_ioctlh]hsnd_ctl_register_ioctl}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj*hMdubjT)}(h(snd_kctl_ioctl_func_t fcn)h]jZ)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j9)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj?sbc.snd_ctl_register_ioctlasbuh1hhjUubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubj9)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjQubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj*hMdubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj*hMdubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj*hMdhjhhubjv)}(hhh]j{)}(h+register the device-specific control-ioctlsh]h+register the device-specific control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMdhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj*hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj̱jj̱jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjֱh]h Parameters}(hjرhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjԱubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhhjбubj)}(hhh]j)}(h6``snd_kctl_ioctl_func_t fcn`` ioctl callback function h](j)}(h``snd_kctl_ioctl_func_t fcn``h]j)}(hjh]hsnd_kctl_ioctl_func_t fcn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMehjubj)}(hhh]j{)}(hioctl callback functionh]hioctl callback function}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMehj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMehjubah}(h]h ]h"]h$]h&]uh1jhjбubj{)}(h**Description**h]j)}(hj0h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMghjбubj{)}(h9called from each device manager like pcm.c, hwdep.c, etc.h]h9called from each device manager like pcm.c, hwdep.c, etc.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMfhjбubj{)}(h **Return**h]j)}(hjWh]hReturn}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhhjбubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMihjбubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_register_ioctl_compat (C function)c.snd_ctl_register_ioctl_compathNtauh1hhjhhhNhNubh)}(hhh](j)}(h=int snd_ctl_register_ioctl_compat (snd_kctl_ioctl_func_t fcn)h]j )}(hint snd_ctl_unregister_ioctl_compat(snd_kctl_ioctl_func_t fcn)h](j)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hj]hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJhhhj\hMubj3)}(hsnd_ctl_unregister_ioctl_compath]j9)}(hsnd_ctl_unregister_ioctl_compath]hsnd_ctl_unregister_ioctl_compat}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjJhhhj\hMubjT)}(h(snd_kctl_ioctl_func_t fcn)h]jZ)}(hsnd_kctl_ioctl_func_t fcnh](h)}(hhh]j9)}(hsnd_kctl_ioctl_func_th]hsnd_kctl_ioctl_func_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjqsb!c.snd_ctl_unregister_ioctl_compatasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hfcnh]hfcn}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjJhhhj\hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjFhhhj\hMubah}(h]jAah ](jmjneh"]h$]h&]jrjs)jthuh1jhj\hMhjChhubjv)}(hhh]j{)}(h;de-register the device-specific compat 32bit control-ioctlsh]h;de-register the device-specific compat 32bit control-ioctls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjChhhj\hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``snd_kctl_ioctl_func_t fcn`` ioctl callback function to unregister **Return** zero if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj)}(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&]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]j{)}(h%ioctl callback function to unregisterh]h%ioctl callback function to unregister}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjbh]hReturn}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_request_layer (C function)c.snd_ctl_request_layerhNtauh1hhjhhhNhNubh)}(hhh](j)}(h3int snd_ctl_request_layer (const char *module_name)h]j )}(h2int snd_ctl_request_layer(const char *module_name)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ctl_request_layerh]j9)}(hsnd_ctl_request_layerh]hsnd_ctl_request_layer}(hjȶhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjĶubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h(const char *module_name)h]jZ)}(hconst char *module_nameh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h module_nameh]h module_name}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjܶubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hrequest to use the layerh]hrequest to use the layer}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjOhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjnubj)}(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]j{)}(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&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubj{)}(h **Return**h]j)}(hjηh]hReturn}(hjзhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̷ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjnubj{)}(hEzero if successful, or an error code when the module cannot be loadedh]hEzero if successful, or an error code when the module cannot be loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chMhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ctl_register_layer (C function)c.snd_ctl_register_layerhNtauh1hhjhhhNhNubh)}(hhh](j)}(hvoid snd_ctl_disconnect_layer (struct snd_ctl_layer_ops *lops)h]j )}(h=void snd_ctl_disconnect_layer(struct snd_ctl_layer_ops *lops)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_ctl_disconnect_layerh]j9)}(hsnd_ctl_disconnect_layerh]hsnd_ctl_disconnect_layer}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h (struct snd_ctl_layer_ops *lops)h]jZ)}(hstruct snd_ctl_layer_ops *lopsh](j`)}(hjch]hstruct}(hjѹhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj͹ubj")}(h h]h }(hj޹hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj͹ubh)}(hhh]j9)}(hsnd_ctl_layer_opsh]hsnd_ctl_layer_ops}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_disconnect_layerasbuh1hhj͹ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj͹ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj͹ubj9)}(hlopsh]hlops}(hj*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj͹ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjɹubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hdisconnect control layerh]hdisconnect control layer}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjQhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjvh]h Parameters}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjpubj)}(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.chM hjubj)}(hhh]j{)}(hoperation structureh]hoperation structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjpubj{)}(h**Description**h]j)}(hjкh]h Description}(hjҺhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjκubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjpubj{)}(hIt is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).h]hIt is expected that the information about tracked cards is freed before this call (the disconnect callback is not called here).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_ctl_boolean_mono_info (C function)c.snd_ctl_boolean_mono_infohNtauh1hhjhhhNhNubh)}(hhh](j)}(h^int snd_ctl_boolean_mono_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(h]int snd_ctl_boolean_mono_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhj#hM ubj3)}(hsnd_ctl_boolean_mono_infoh]j9)}(hsnd_ctl_boolean_mono_infoh]hsnd_ctl_boolean_mono_info}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj#hM ubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjRhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjNubj")}(h h]h }(hj_hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjphhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]j)}jj8sbc.snd_ctl_boolean_mono_infoasbuh1hhjNubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjNubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjĻhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjѻhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj߻ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_boolean_mono_infoasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjJubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj#hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj#hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj#hM hj hhubjv)}(hhh]j{)}(hHHelper function for a standard boolean info callback with a mono channelh]hHHelper function for a standard boolean info callback with a mono channel}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjBhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj#hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhjhNhNubj)}(hX&**Parameters** ``struct snd_kcontrol *kcontrol`` the kcontrol instance ``struct snd_ctl_elem_info *uinfo`` info to store **Description** This is a function that can be used as info callback for a standard boolean control with a single mono channel. **Return** Zero (always successful)h](j{)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjaubj)}(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.chM hjubj)}(hhh]j{)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hj}ubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj)}(hhh]j{)}(h info to storeh]h info to store}(hjؼhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjԼhM hjռubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjԼhM hj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjaubj{)}(hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.h]hoThis is a function that can be used as info callback for a standard boolean control with a single mono channel.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjaubj{)}(h **Return**h]j)}(hj!h]hReturn}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjaubj{)}(hZero (always successful)h]hZero (always successful)}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_boolean_stereo_info (C function)c.snd_ctl_boolean_stereo_infohNtauh1hhjhhhNhNubh)}(hhh](j)}(h`int snd_ctl_boolean_stereo_info (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(h_int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM ubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbhhhjthM ubj3)}(hsnd_ctl_boolean_stereo_infoh]j9)}(hsnd_ctl_boolean_stereo_infoh]hsnd_ctl_boolean_stereo_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjbhhhjthM ubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjýmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_boolean_stereo_infoasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5modnameN classnameNjj)}j]jݽc.snd_ctl_boolean_stereo_infoasbuh1hhjubj")}(h h]h }(hjQhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(huinfoh]huinfo}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjbhhhjthM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj^hhhjthM ubah}(h]jYah ](jmjneh"]h$]h&]jrjs)jthuh1jhjthM hj[hhubjv)}(hhh]j{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhj[hhhjthM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj)}(hhh](j)}(h8``struct snd_kcontrol *kcontrol`` the kcontrol instance h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj׾h]hstruct snd_kcontrol *kcontrol}(hjپhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjվubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjѾubj)}(hhh]j{)}(hthe kcontrol instanceh]hthe kcontrol instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjѾubeh}(h]h ]h"]h$]h&]uh1jhjhM hjξubj)}(h2``struct snd_ctl_elem_info *uinfo`` info to store h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hj ubj)}(hhh]j{)}(h info to storeh]h info to store}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj%hM hj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hM hjξubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjKh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(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.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(h **Return**h]j)}(hjrh]hReturn}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(hZero (always successful)h]hZero (always successful)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ctl_enum_info (C function)c.snd_ctl_enum_infohNtauh1hhjhhhNhNubh)}(hhh](j)}(h|int snd_ctl_enum_info (struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h]j )}(h{int snd_ctl_enum_info(struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjſhM ubj3)}(hsnd_ctl_enum_infoh]j9)}(hsnd_ctl_enum_infoh]hsnd_ctl_enum_info}(hjؿhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjԿubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjſhM ubjT)}(hf(struct snd_ctl_elem_info *info, unsigned int channels, unsigned int items, const char *const names[])h](jZ)}(hstruct snd_ctl_elem_info *infoh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjڿsbc.snd_ctl_enum_infoasbuh1hhjubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hinfoh]hinfo}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int channelsh](j)}(hunsignedh]hunsigned}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubj9)}(hchannelsh]hchannels}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int itemsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hitemsh]hitems}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst char *const names[]h](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj`)}(hjph]hconst}(hjLhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hnamesh]hnames}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubj)}(h[h]h[}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h]h]h]}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjſhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjſhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjſhM hjhhubjv)}(hhh]j{)}(h2fills the info structure for an enumerated controlh]h2fills the info structure for an enumerated control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjſhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj)}(hhh](j)}(h>``struct snd_ctl_elem_info *info`` the structure to be filled h](j)}(h"``struct snd_ctl_elem_info *info``h]j)}(hjh]hstruct snd_ctl_elem_info *info}(hjhhhNhNubah}(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]j{)}(hthe structure to be filledh]hthe structure to be filled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hJ``unsigned int channels`` the number of the control's channels; often one h](j)}(h``unsigned int channels``h]j)}(hj'h]hunsigned int channels}(hj)hhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(h/the number of the control's channels; often oneh]h1the number of the control’s channels; often one}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<hM hj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hM hjubj)}(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}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjZubj)}(hhh]j{)}(h8the number of control values; also the size of **names**h](h/the number of control values; also the size of }(hjyhhhNhNubj)}(h **names**h]hnames}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jzhjuhM hjvubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjuhM hjubj)}(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]j{)}(h3an array containing the names of all control valuesh]h3an array containing the names of all control values}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(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 }(hjhhhNhNubj)}(h**info**h]hinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to their appropriate values. If the control’s accessibility is not the default (readable and writable), the caller has to fill }(hjhhhNhNubj)}(h**info->access**h]h info->access}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(h **Return**h]j)}(hj-h]hReturn}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubj{)}(hZero (always successful)h]hZero (always successful)}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:54: ./sound/core/control.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]general-control-interfaceah ]h"]general control interfaceah$]h&]uh1hhjhhhhhK5ubh)}(hhh](h)}(hAC97 Codec APIh]hAC97 Codec API}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahhhhhK9ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_write (C function)c.snd_ac97_writehNtauh1hhjahhhNhNubh)}(hhh](j)}(hUvoid snd_ac97_write (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]j )}(hTvoid snd_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ac97_writeh]j9)}(hsnd_ac97_writeh]hsnd_ac97_write}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_writeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short regh](j)}(hunsignedh]hunsigned}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6ubj)}(hshorth]hshort}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj")}(h h]h }(hjdhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj6ubj9)}(hregh]hreg}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short valueh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]j~ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h#write a value on the given registerh]h#write a value on the given register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hj.h]hstruct snd_ac97 *ac97}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj(ubj)}(hhh]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhj%ubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjgh]hunsigned short reg}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjaubj)}(hhh]j{)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhj%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.chMhjubj)}(hhh]j{)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj ubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_read (C function)c.snd_ac97_readhNtauh1hhjahhhNhNubh)}(hhh](j)}(hHunsigned short snd_ac97_read (struct snd_ac97 *ac97, unsigned short reg)h]j )}(hGunsigned short snd_ac97_read(struct snd_ac97 *ac97, unsigned short reg)h](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhj.hMubj)}(hshorth]hshort}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj.hMubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj.hMubj3)}(h snd_ac97_readh]j9)}(h snd_ac97_readh]h snd_ac97_read}(hj]hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj.hMubjT)}(h+(struct snd_ac97 *ac97, unsigned short reg)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjyhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjuubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjuubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj_sbc.snd_ac97_readasbuh1hhjuubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjuubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuubj9)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjuubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjqubjZ)}(hunsigned short regh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjqubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj.hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj.hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj.hMhjhhubjv)}(hhh]j{)}(h$read a value from the given registerh]h$read a value from the given register}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjJhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj.hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjejjejjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjoh]h Parameters}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM"hjiubj)}(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]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h,``unsigned short reg`` the register to read h](j)}(h``unsigned short reg``h]j)}(hjh]hunsigned short reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM!hjubj)}(hhh]j{)}(hthe register to readh]hthe register to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM!hjubeh}(h]h ]h"]h$]h&]uh1jhjiubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM#hjiubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM"hjiubj{)}(h **Return**h]j)}(hj)h]hReturn}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM%hjiubj{)}(hThe read value.h]hThe read value.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM&hjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_write_cache (C function)c.snd_ac97_write_cachehNtauh1hhjahhhNhNubh)}(hhh](j)}(h[void snd_ac97_write_cache (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]j )}(hZvoid snd_ac97_write_cache(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](j)}(hvoidh]hvoid}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjhhhl/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 ]j.ah"]h$]h&]uh1j!hjjhhhj|hM<ubj3)}(hsnd_ac97_write_cacheh]j9)}(hsnd_ac97_write_cacheh]hsnd_ac97_write_cache}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjjhhhj|hM<ubjT)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_write_cacheasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short regh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjGhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short valueh](j)}(hunsignedh]hunsigned}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj9)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjjhhhj|hM<ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjfhhhj|hM<ubah}(h]jaah ](jmjneh"]h$]h&]jrjs)jthuh1jhj|hM<hjchhubjv)}(hhh]j{)}(h8write a value on the given register and update the cacheh]h8write a value on the given register and update the cache}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1juhjchhhj|hM<ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/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]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj&hM=hj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hM=hjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(hjJh]hunsigned short reg}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM>hjDubj)}(hhh]j{)}(hthe register to changeh]hthe register to change}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_hM>hj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hM>hjubj)}(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?hj}ubj)}(hhh]j{)}(hthe value to seth]hthe value to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM?hjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhM?hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMAhjubj{)}(hWrites a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.h]hWrites a value on the given register and updates the register cache. The cached values are used for the cached-read and the suspend/resume.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_update (C function)c.snd_ac97_updatehNtauh1hhjahhhNhNubh)}(hhh](j)}(hUint snd_ac97_update (struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h]j )}(hTint snd_ac97_update(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhjhMRubj3)}(hsnd_ac97_updateh]j9)}(hsnd_ac97_updateh]hsnd_ac97_update}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMRubjT)}(hA(struct snd_ac97 *ac97, unsigned short reg, unsigned short value)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hj@hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]j)}jj&sbc.snd_ac97_updateasbuh1hhj<ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj9)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(hunsigned short regh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubjZ)}(hunsigned short valueh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvalueh]hvalue}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj8ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMRubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMRubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMRhjhhubjv)}(hhh]j{)}(h&update the value on the given registerh]h&update the value on the given register}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMRhjbhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMRubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hjh]hstruct snd_ac97 *ac97}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMShjubj)}(hhh]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMShjubj)}(h.``unsigned short reg`` the register to change h](j)}(h``unsigned short reg``h]j)}(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.chMThjubj)}(hhh]j{)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThjubj)}(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]j{)}(hthe value to seth]hthe value to set}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj-hMUhj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hMUhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjSh]h Description}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMWhjubj{)}(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.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMVhjubj{)}(h **Return**h]j)}(hjzh]hReturn}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMYhjubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMZhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ac97_update_bits (C function)c.snd_ac97_update_bitshNtauh1hhjahhhNhNubh)}(hhh](j)}(hoint snd_ac97_update_bits (struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h]j )}(hnint snd_ac97_update_bits(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMpubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMpubj3)}(hsnd_ac97_update_bitsh]j9)}(hsnd_ac97_update_bitsh]hsnd_ac97_update_bits}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMpubjT)}(hV(struct snd_ac97 *ac97, unsigned short reg, unsigned short mask, unsigned short value)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_update_bitsasbuh1hhjubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short regh](j)}(hunsignedh]hunsigned}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj9)}(hregh]hreg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short maskh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short valueh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hshorth]hshort}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(hvalueh]hvalue}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMpubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMpubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMphjhhubjv)}(hhh]j{)}(h%update the bits on the given registerh]h%update the bits on the given register}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMphjohhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/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)}(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.chMqhjubj)}(hhh]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhjubj)}(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.chMrhjubj)}(hhh]j{)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMrhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMrhjubj)}(h/``unsigned short mask`` the bit-mask to change h](j)}(h``unsigned short mask``h]j)}(hj%h]hunsigned short mask}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMshjubj)}(hhh]j{)}(hthe bit-mask to changeh]hthe bit-mask to change}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj:hMshj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hMshjubj)}(h*``unsigned short value`` the value to set h](j)}(h``unsigned short value``h]j)}(hj^h]hunsigned short value}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMthjXubj)}(hhh]j{)}(hthe value to seth]hthe value to set}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjshMthjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshMthjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMvhjubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMuhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMxhjubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMyhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_ac97_get_short_name (C function)c.snd_ac97_get_short_namehNtauh1hhjahhhNhNubh)}(hhh](j)}(hclock`` 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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj.h]hstruct snd_card *card}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj(ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjChMhjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChMhj%ubj)}(h``int num`` the bus number h](j)}(h ``int num``h]j)}(hjgh]hint num}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjaubj)}(hhh]j{)}(hthe bus numberh]hthe bus number}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hMhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMhj%ubj)}(h?``const struct snd_ac97_bus_ops *ops`` the bus callbacks table h](j)}(h&``const struct snd_ac97_bus_ops *ops``h]j)}(hjh]h"const struct snd_ac97_bus_ops *ops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]j{)}(hthe bus callbacks tableh]hthe bus callbacks table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubj)}(hA``void *private_data`` private data pointer for the new instance h](j)}(h``void *private_data``h]j)}(hjh]hvoid *private_data}(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]j{)}(h)private data pointer for the new instanceh]h)private data pointer for the new instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj%ubj)}(hO``struct snd_ac97_bus **rbus`` the pointer to store the new AC97 bus instance. h](j)}(h``struct snd_ac97_bus **rbus``h]j)}(hjh]hstruct snd_ac97_bus **rbus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj)}(hhh]j{)}(h/the pointer to store the new AC97 bus instance.h]h/the pointer to store the new AC97 bus instance.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjMh]h Description}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(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.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj ubj{)}(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&]uh1jzhl/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&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_mixer (C function)c.snd_ac97_mixerhNtauh1hhjahhhNhNubh)}(hhh](j)}(hjint snd_ac97_mixer (struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h]j )}(hiint snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ac97_mixerh]j9)}(hsnd_ac97_mixerh]hsnd_ac97_mixer}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hW(struct snd_ac97_bus *bus, struct snd_ac97_template *template, struct snd_ac97 **rac97)h](jZ)}(hstruct snd_ac97_bus *bush](j`)}(hjch]hstruct}(hj5hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj1ubj")}(h h]h }(hjBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubh)}(hhh]j9)}(h snd_ac97_bush]h snd_ac97_bus}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_mixerasbuh1hhj1ubj")}(h h]h }(hjshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj9)}(hbush]hbus}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj-ubjZ)}(h"struct snd_ac97_template *templateh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97_templateh]hsnd_ac97_template}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]joc.snd_ac97_mixerasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(htemplateh]htemplate}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj-ubjZ)}(hstruct snd_ac97 **rac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]joc.snd_ac97_mixerasbuh1hhjubj")}(h h]h }(hjShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrac97h]hrac97}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj-ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hcreate an Codec97 componenth]hcreate an Codec97 component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh](j)}(hE``struct snd_ac97_bus *bus`` the AC97 bus which codec is attached to h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hjh]hstruct snd_ac97_bus *bus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj)}(hhh]j{)}(h'the AC97 bus which codec is attached toh]h'the AC97 bus which codec is attached to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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}(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.chMhjubj)}(hhh]j{)}(hFthe template of ac97, including index, callbacks and the private data.h]hFthe template of ac97, including index, callbacks and the private data.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjubj)}(hH``struct snd_ac97 **rac97`` the pointer to store the new ac97 instance. h](j)}(h``struct snd_ac97 **rac97``h]j)}(hjYh]hstruct snd_ac97 **rac97}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjSubj)}(hhh]j{)}(h+the pointer to store the new ac97 instance.h]h+the pointer to store the new ac97 instance.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjnhMhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj{)}(hiThe template must include the codec number (num) and address (addr), and the private data (private_data).h]hiThe template must include the codec number (num) and address (addr), and the private data (private_data).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj{)}(h`The ac97 instance is registered as a low-level device, so you don't have to release it manually.h]hbThe ac97 instance is registered as a low-level device, so you don’t have to release it manually.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubj{)}(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&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ac97_update_power (C function)c.snd_ac97_update_powerhNtauh1hhjahhhNhNubh)}(hhh](j)}(hGint snd_ac97_update_power (struct snd_ac97 *ac97, int reg, int powerup)h]j )}(hFint snd_ac97_update_power(struct snd_ac97 *ac97, int reg, int powerup)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMs ubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj,hMs ubj3)}(hsnd_ac97_update_powerh]j9)}(hsnd_ac97_update_powerh]hsnd_ac97_update_power}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj,hMs ubjT)}(h-(struct snd_ac97 *ac97, int reg, int powerup)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hj[hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjWubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjAsbc.snd_ac97_update_powerasbuh1hhjWubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj9)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjSubjZ)}(hint regh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjSubjZ)}(h int poweruph](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hpoweruph]hpowerup}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjSubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj,hMs ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj,hMs ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj,hMs hjhhubjv)}(hhh]j{)}(hupdate the powerdown registerh]hupdate the powerdown register}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMs hjEhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj,hMs ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`jj`jjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMw hjdubj)}(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]j{)}(hthe codec instanceh]hthe codec instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMt hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMt hjubj)}(h<``int reg`` the rate register, e.g. AC97_PCM_FRONT_DAC_RATE h](j)}(h ``int reg``h]j)}(hjh]hint reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMu hjubj)}(hhh]j{)}(h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATEh]h/the rate register, e.g. AC97_PCM_FRONT_DAC_RATE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMu hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMu hjubj)}(h0``int powerup`` non-zero when power up the part h](j)}(h``int powerup``h]j)}(hjh]h int powerup}(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.chMv hjubj)}(hhh]j{)}(hnon-zero when power up the parth]hnon-zero when power up the part}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMv hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMv hjubeh}(h]h ]h"]h$]h&]uh1jhjdubj{)}(h**Description**h]j)}(hj6h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMx hjdubj{)}(h:Update the AC97 powerdown register bits of the given part.h]h:Update the AC97 powerdown register bits of the given part.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMw hjdubj{)}(h **Return**h]j)}(hj]h]hReturn}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMy hjdubj{)}(hZero.h]hZero.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chMz hjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_suspend (C function)c.snd_ac97_suspendhNtauh1hhjahhhNhNubh)}(hhh](j)}(h-void snd_ac97_suspend (struct snd_ac97 *ac97)h]j )}(h,void snd_ac97_suspend(struct snd_ac97 *ac97)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_ac97_suspendh]j9)}(hsnd_ac97_suspendh]hsnd_ac97_suspend}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h(struct snd_ac97 *ac97)h]jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_suspendasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(h'General suspend function for AC97 codech]h'General suspend function for AC97 codec}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1hhhhjahNhNubj)}(hx**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance **Description** Suspends the codec, power down the chip.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj~ubj)}(hhh]j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(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]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhj~ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj~ubj{)}(h(Suspends the codec, power down the chip.h]h(Suspends the codec, power down the chip.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hj~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_resume (C function)c.snd_ac97_resumehNtauh1hhjahhhNhNubh)}(hhh](j)}(h,void snd_ac97_resume (struct snd_ac97 *ac97)h]j )}(h+void snd_ac97_resume(struct snd_ac97 *ac97)h](j)}(hvoidh]hvoid}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj1hM ubj3)}(hsnd_ac97_resumeh]j9)}(hsnd_ac97_resumeh]hsnd_ac97_resume}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj1hM ubjT)}(h(struct snd_ac97 *ac97)h]jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hj`hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj\ubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj\ubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjFsbc.snd_ac97_resumeasbuh1hhj\ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj\ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj9)}(hac97h]hac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj\ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjXubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj1hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj1hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hM hjhhubjv)}(hhh]j{)}(h&General resume function for AC97 codech]h&General resume function for AC97 codec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1juhjhhhj1hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(h**Parameters** ``struct snd_ac97 *ac97`` the ac97 instance **Description** Do the standard resume procedure, power up and restoring the old register values.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhl/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)}(hj$h]hstruct snd_ac97 *ac97}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9hM hj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hM hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj_h]h Description}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj{)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/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&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_ac97_tune_hardware (C function)c.snd_ac97_tune_hardwarehNtauh1hhjahhhNhNubh)}(hhh](j)}(hhint snd_ac97_tune_hardware (struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h]j )}(hgint snd_ac97_tune_hardware(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhl/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_ac97_tune_hardwareh]j9)}(hsnd_ac97_tune_hardwareh]hsnd_ac97_tune_hardware}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(hM(struct snd_ac97 *ac97, const struct ac97_quirk *quirk, const char *override)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_tune_hardwareasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst struct ac97_quirk *quirkh](j`)}(hjph]hconst}(hjShhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjOubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOubj`)}(hjch]hstruct}(hjnhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjOubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOubh)}(hhh]j9)}(h ac97_quirkh]h ac97_quirk}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_tune_hardwareasbuh1hhjOubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj9)}(hquirkh]hquirk}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjOubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst char *overrideh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hoverrideh]hoverride}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(htune up the hardwareh]htune up the hardware}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjIhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhubj)}(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]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h.``const struct ac97_quirk *quirk`` quirk list h](j)}(h"``const struct ac97_quirk *quirk``h]j)}(hjh]hconst struct ac97_quirk *quirk}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjubj)}(hhh]j{)}(h quirk listh]h quirk list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(hO``const char *override`` explicit quirk value (overrides the list if non-NULL) h](j)}(h``const char *override``h]j)}(hjh]hconst char *override}(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]j{)}(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&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjhubj{)}(h**Description**h]j)}(hj:h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhubj{)}(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.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhubj{)}(h **Return**h]j)}(hjah]hReturn}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhl/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:58: ./sound/pci/ac97/ac97_codec.chM hjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_set_rate (C function)c.snd_ac97_set_ratehNtauh1hhjahhhNhNubh)}(hhh](j)}(hIint snd_ac97_set_rate (struct snd_ac97 *ac97, int reg, unsigned int rate)h]j )}(hHint snd_ac97_set_rate(struct snd_ac97 *ac97, int reg, unsigned int rate)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_ac97_set_rateh]j9)}(hsnd_ac97_set_rateh]hsnd_ac97_set_rate}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(h3(struct snd_ac97 *ac97, int reg, unsigned int rate)h](jZ)}(hstruct snd_ac97 *ac97h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ac97h]hsnd_ac97}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_set_rateasbuh1hhjubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hac97h]hac97}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint regh](j)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubj9)}(hregh]hreg}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int rateh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hrateh]hrate}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h*change the rate of the given input/output.h]h*change the rate of the given input/output.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh](j)}(h,``struct snd_ac97 *ac97`` the ac97 instance h](j)}(h``struct snd_ac97 *ac97``h]j)}(hj-h]hstruct snd_ac97 *ac97}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj'ubj)}(hhh]j{)}(hthe ac97 instanceh]hthe ac97 instance}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBhKhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhKhj$ubj)}(h#``int reg`` the register to change h](j)}(h ``int reg``h]j)}(hjfh]hint reg}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhj`ubj)}(hhh]j{)}(hthe register to changeh]hthe register to change}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj{hKhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hKhj$ubj)}(h-``unsigned int rate`` the sample rate to set h](j)}(h``unsigned int rate``h]j)}(hjh]hunsigned int rate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj)}(hhh]j{)}(hthe sample rate to seth]hthe sample rate to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj$ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj{)}(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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubj{)}(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&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_ac97_pcm_assign (C function)c.snd_ac97_pcm_assignhNtauh1hhjahhhNhNubh)}(hhh](j)}(hjint snd_ac97_pcm_assign (struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h]j )}(hiint snd_ac97_pcm_assign(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](j)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj")}(h h]h }(hjdhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQhhhjchMubj3)}(hsnd_ac97_pcm_assignh]j9)}(hsnd_ac97_pcm_assignh]hsnd_ac97_pcm_assign}(hjvhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjrubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjQhhhjchMubjT)}(hR(struct snd_ac97_bus *bus, unsigned short pcms_count, const struct ac97_pcm *pcms)h](jZ)}(hstruct snd_ac97_bus *bush](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_ac97_bush]h snd_ac97_bus}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjxsbc.snd_ac97_pcm_assignasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hbush]hbus}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short pcms_counth](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj.hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h pcms_counth]h pcms_count}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst struct ac97_pcm *pcmsh](j`)}(hjph]hconst}(hjUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjQubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubj`)}(hjch]hstruct}(hjphhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjQubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubh)}(hhh]j9)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ac97_pcm_assignasbuh1hhjQubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQubj9)}(hpcmsh]hpcms}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjQhhhjchMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjMhhhjchMubah}(h]jHah ](jmjneh"]h$]h&]jrjs)jthuh1jhjchMhjJhhubjv)}(hhh]j{)}(h&assign AC97 slots to given PCM streamsh]h&assign AC97 slots to given PCM streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjJhhhjchMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubj)}(hhh](j)}(h3``struct snd_ac97_bus *bus`` the ac97 bus instance h](j)}(h``struct snd_ac97_bus *bus``h]j)}(hj2h]hstruct snd_ac97_bus *bus}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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]j{)}(hthe ac97 bus instanceh]hthe ac97 bus instance}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhj)ubj)}(h;``unsigned short pcms_count`` count of PCMs to be assigned h](j)}(h``unsigned short pcms_count``h]j)}(hjkh]hunsigned short pcms_count}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjeubj)}(hhh]j{)}(hcount of PCMs to be assignedh]hcount of PCMs to be assigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhj)ubj)}(h4``const struct ac97_pcm *pcms`` PCMs to be assigned h](j)}(h``const struct ac97_pcm *pcms``h]j)}(hjh]hconst struct ac97_pcm *pcms}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj)}(hhh]j{)}(hPCMs to be assignedh]hPCMs to be assigned}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj)ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubj{)}(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&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_open (C function)c.snd_ac97_pcm_openhNtauh1hhjahhhNhNubh)}(hhh](j)}(hlint snd_ac97_pcm_open (struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h]j )}(hkint snd_ac97_pcm_open(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](j)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM ubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGhhhjYhM ubj3)}(hsnd_ac97_pcm_openh]j9)}(hsnd_ac97_pcm_openh]hsnd_ac97_pcm_open}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjGhhhjYhM ubjT)}(hV(struct ac97_pcm *pcm, unsigned int rate, enum ac97_pcm_cfg cfg, unsigned short slots)h](jZ)}(hstruct ac97_pcm *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjnsbc.snd_ac97_pcm_openasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int rateh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hrateh]hrate}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(henum ac97_pcm_cfg cfgh](j`)}(hj(h]henum}(hjKhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubh)}(hhh]j9)}(h ac97_pcm_cfgh]h ac97_pcm_cfg}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jc.snd_ac97_pcm_openasbuh1hhjGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj9)}(hcfgh]hcfg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned short slotsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hslotsh]hslots}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjGhhhjYhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjChhhjYhM ubah}(h]j>ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjYhM hj@hhubjv)}(hhh]j{)}(hopens the given AC97 pcmh]hopens the given AC97 pcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM hj hhubah}(h]h ]h"]h$]h&]uh1juhj@hhhjYhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM$hj,ubj)}(hhh](j)}(h/``struct ac97_pcm *pcm`` the ac97 pcm instance h](j)}(h``struct ac97_pcm *pcm``h]j)}(hjQh]hstruct ac97_pcm *pcm}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM!hjKubj)}(hhh]j{)}(hthe ac97 pcm instanceh]hthe ac97 pcm instance}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjfhM!hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhM!hjHubj)}(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]j{)}(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&]uh1jzhjhM"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM"hjHubj)}(h8``enum ac97_pcm_cfg cfg`` output stream characteristics h](j)}(h``enum ac97_pcm_cfg cfg``h]j)}(hjh]henum ac97_pcm_cfg cfg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM#hjubj)}(hhh]j{)}(houtput stream characteristicsh]houtput stream characteristics}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM#hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM#hjHubj)}(hX``unsigned short slots`` a subset of allocated slots (snd_ac97_pcm_assign) for this pcm h](j)}(h``unsigned short slots``h]j)}(hjh]hunsigned short slots}(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]j{)}(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&]uh1jzhjhM$hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM$hjHubeh}(h]h ]h"]h$]h&]uh1jhj,ubj{)}(h**Description**h]j)}(hj7h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM&hj,ubj{)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM%hj,ubj{)}(h **Return**h]j)}(hj^h]hReturn}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM'hj,ubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM(hj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_ac97_pcm_close (C function)c.snd_ac97_pcm_closehNtauh1hhjahhhNhNubh)}(hhh](j)}(h-int snd_ac97_pcm_close (struct ac97_pcm *pcm)h]j )}(h,int snd_ac97_pcm_close(struct ac97_pcm *pcm)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM|ubj3)}(hsnd_ac97_pcm_closeh]j9)}(hsnd_ac97_pcm_closeh]hsnd_ac97_pcm_close}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM|ubjT)}(h(struct ac97_pcm *pcm)h]jZ)}(hstruct ac97_pcm *pcmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hac97_pcmh]hac97_pcm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ac97_pcm_closeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hpcmh]hpcm}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM|ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM|ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM|hjhhubjv)}(hhh]j{)}(hcloses the given AC97 pcmh]hcloses the given AC97 pcm}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM|hj`hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM|ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjahNhNubj)}(h**Parameters** ``struct ac97_pcm *pcm`` the ac97 pcm instance **Description** It frees the locked AC97 slots. **Return** Zero.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/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}hjubj)}(hhh]j{)}(hthe ac97 pcm instanceh]hthe ac97 pcm instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM}hjubah}(h]h ]h"]h$']h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj{)}(hIt frees the locked AC97 slots.h]hIt frees the locked AC97 slots.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chM~hjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubj{)}(hZero.h]hZero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_ac97_pcm_double_rate_rules (C function) c.snd_ac97_pcm_double_rate_ruleshNtauh1hhjahhhNhNubh)}(hhh](j)}(hDint snd_ac97_pcm_double_rate_rules (struct snd_pcm_runtime *runtime)h]j )}(hCint snd_ac97_pcm_double_rate_rules(struct snd_pcm_runtime *runtime)h](j)}(hinth]hint}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGhhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGhhhjYhMubj3)}(hsnd_ac97_pcm_double_rate_rulesh]j9)}(hsnd_ac97_pcm_double_rate_rulesh]hsnd_ac97_pcm_double_rate_rules}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjGhhhjYhMubjT)}(h!(struct snd_pcm_runtime *runtime)h]jZ)}(hstruct snd_pcm_runtime *runtimeh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_runtimeh]hsnd_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjnsb c.snd_ac97_pcm_double_rate_rulesasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hruntimeh]hruntime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjGhhhjYhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjChhhjYhMubah}(h]j>ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjYhMhj@hhubjv)}(hhh]j{)}(hset double rate constraintsh]hset double rate constraints}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj@hhhjYhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj#jj#jjjuh1hhhhjahNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj-h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj'ubj)}(hhh]j)}(hO``struct snd_pcm_runtime *runtime`` the runtime of the ac97 front playback pcm h](j)}(h#``struct snd_pcm_runtime *runtime``h]j)}(hjLh]hstruct snd_pcm_runtime *runtime}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhjFubj)}(hhh]j{)}(h*the runtime of the ac97 front playback pcmh]h*the runtime of the ac97 front playback pcm}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjahMhjbubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjahMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj'ubj{)}(hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.h]hqInstalls the hardware constraint rules to prevent using double rates and more than two channels at the same time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj'ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj'ubj{)}(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&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:59: ./sound/pci/ac97/ac97_pcm.chMhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjahhhNhNubeh}(h]ac97-codec-apiah ]h"]ac97 codec apiah$]h&]uh1hhjhhhhhK9ubh)}(hhh](h)}(hVirtual Master Control APIh]hVirtual Master Control API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK>ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_add_followers (C function)c.snd_ctl_add_followershNtauh1hhjhhhNhNubh)}(hhh](j)}(hhint snd_ctl_add_followers (struct snd_card *card, struct snd_kcontrol *master, const char * const *list)h]j )}(hfint snd_ctl_add_followers(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ctl_add_followersh]j9)}(hsnd_ctl_add_followersh]hsnd_ctl_add_followers}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hM(struct snd_card *card, struct snd_kcontrol *master, const char *const *list)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjEubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjghhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjimodnameN classnameNjj)}j]j)}jj/sbc.snd_ctl_add_followersasbuh1hhjEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubjZ)}(hstruct snd_kcontrol *masterh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_add_followersasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubjZ)}(hconst char *const *listh](j`)}(hjph]hconst}(hj+hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj'ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hcharh]hchar}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj`)}(hjph]hconst}(hjohhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj'ubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj9)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjAubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h!add multiple followers to vmasterh]h!add multiple followers to vmaster}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(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&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]j{)}(h card instanceh]h card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hC``struct snd_kcontrol *master`` the target vmaster kcontrol object h](j)}(h``struct snd_kcontrol *master``h]j)}(hj;h]hstruct snd_kcontrol *master}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj5ubj)}(hhh]j{)}(h"the target vmaster kcontrol objecth]h"the target vmaster kcontrol object}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjPhMhjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhMhjubj)}(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)}(hjth]hconst char * const *list}(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]j{)}(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&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj{)}(hjAdds the multiple follower kcontrols with the given names. Returns 0 for success or a negative error code.h]hjAdds the multiple follower kcontrols with the given names. Returns 0 for success or a negative error code.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_ctl_make_virtual_master (C function)c.snd_ctl_make_virtual_masterhNtauh1hhjhhhNhNubh)}(hhh](j)}(hWstruct snd_kcontrol * snd_ctl_make_virtual_master (char *name, const unsigned int *tlv)h]j )}(hUstruct snd_kcontrol *snd_ctl_make_virtual_master(char *name, const unsigned int *tlv)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_make_virtual_mastersbc.snd_ctl_make_virtual_masterasbuh1hhjhhhjhMubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj)}(hjh]h*}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj3)}(hsnd_ctl_make_virtual_masterh]j9)}(hj1h]hsnd_ctl_make_virtual_master}(hjShhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjOubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h%(char *name, const unsigned int *tlv)h](jZ)}(h char *nameh](j)}(hcharh]hchar}(hjnhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj")}(h h]h }(hj|hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjjubj9)}(hnameh]hname}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubjZ)}(hconst unsigned int *tlvh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(htlvh]htlv}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjfubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hCreate a virtual master controlh]hCreate a virtual master control}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj7hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjVubj)}(hhh](j)}(h<``char *name`` name string of the control element to create h](j)}(h``char *name``h]j)}(hj{h]h char *name}(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:63: ./sound/core/vmaster.chMhjuubj)}(hhh]j{)}(h,name string of the control element to createh]h,name string of the control element to create}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhMhjrubj)}(hF``const unsigned int *tlv`` optional TLV int array for dB information h](j)}(h``const unsigned int *tlv``h]j)}(hjh]hconst unsigned int *tlv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]j{)}(h)optional TLV int array for dB informationh]h)optional TLV int array for dB information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjrubeh}(h]h ]h"]h$]h&]uh1jhjVubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjVubj{)}(hubah}(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]j{)}(hsync only the hookh]hsync only the hook}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUhMhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj{h]h Description}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_ctl_apply_vmaster_followers (C function)!c.snd_ctl_apply_vmaster_followershNtauh1hhjhhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_ctl_apply_vmaster_followersh]j9)}(hsnd_ctl_apply_vmaster_followersh]hsnd_ctl_apply_vmaster_followers}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h}(struct snd_kcontrol *kctl, int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg), void *arg)h](jZ)}(hstruct snd_kcontrol *kctlh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jjsb!c.snd_ctl_apply_vmaster_followersasbuh1hhj ubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hkctlh]hkctl}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(hfunch]hfunc}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj)}(hjjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jI!c.snd_ctl_apply_vmaster_followersasbuh1hhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(h vfollowerh]h vfollower}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubj)}(hjh]h,}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hjQhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj`)}(hjch]hstruct}(hj_hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj}ubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jI!c.snd_ctl_apply_vmaster_followersasbuh1hhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubj)}(hjh]h,}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(hargh]harg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h void *argh](j)}(hvoidh]hvoid}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj*ubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj9)}(hargh]harg}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h'Apply function to each vmaster followerh]h'Apply function to each vmaster follower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhj~hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXu**Parameters** ``struct snd_kcontrol *kctl`` vmaster kctl element ``int (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, void *arg)`` function to apply ``void *arg`` optional function argument **Description** Apply the function **func** to each follower kctl of the given vmaster kctl. **Return** 0 if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj)}(hhh](j)}(h3``struct snd_kcontrol *kctl`` vmaster kctl element h](j)}(h``struct snd_kcontrol *kctl``h]j)}(hjh]hstruct snd_kcontrol *kctl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubj)}(hhh]j{)}(hvmaster kctl elementh]hvmaster kctl element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(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)}(hjh]hUint (*func)(struct snd_kcontrol *vfollower, struct snd_kcontrol *follower, 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]j{)}(hfunction to applyh]hfunction to apply}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubj)}(h)``void *arg`` optional function argument h](j)}(h ``void *arg``h]j)}(hj4h]h void *arg}(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:63: ./sound/core/vmaster.chM hj.ubj)}(hhh]j{)}(hoptional function argumenth]hoptional function argument}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjIhM hjJubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjIhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjoh]h Description}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chM hjubj{)}(h)0 if successful, or a negative error codeh]h)0 if successful, or a negative error code}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:63: ./sound/core/vmaster.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_ctl_find_id_mixer (C function)c.snd_ctl_find_id_mixerhNtauh1hhjhhhNhNubh)}(hhh](j)}(hUstruct snd_kcontrol * snd_ctl_find_id_mixer (struct snd_card *card, const char *name)h]j )}(hSstruct snd_kcontrol *snd_ctl_find_id_mixer(struct snd_card *card, const char *name)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_ctl_find_id_mixersbc.snd_ctl_find_id_mixerasbuh1hhjhhhjhKubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj)}(hjh]h*}(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj3)}(hsnd_ctl_find_id_mixerh]j9)}(hj*h]hsnd_ctl_find_id_mixer}(hjLhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(h)(struct snd_card *card, const char *name)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjghhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j(c.snd_ctl_find_id_mixerasbuh1hhjcubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hnameh]hname}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj_ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h4find the control instance with the given name stringh]h4find the control instance with the given name string}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjBhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj]jj]jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjgh]h Parameters}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubj)}(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]j{)}(hthe card instanceh]hthe card instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj}ubj)}(h%``const char *name`` the name string h](j)}(h``const char *name``h]j)}(hjh]hconst char *name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh]j{)}(hthe name stringh]hthe name string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj}ubeh}(h]h ]h"]h$]h&]uh1jhjaubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubj{)}(hpFinds the control instance with the given name and **SNDRV_CTL_ELEM_IFACE_MIXER**. Other fields are set to zero.h](h3Finds the control instance with the given name and }(hjhhhNhNubj)}(h**SNDRV_CTL_ELEM_IFACE_MIXER**h]hSNDRV_CTL_ELEM_IFACE_MIXER}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. Other fields are set to zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubj{)}(h.This is merely a wrapper to snd_ctl_find_id().h]h.This is merely a wrapper to snd_ctl_find_id().}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubj{)}(h **Return**h]j)}(hjBh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubj{)}(h9The pointer of the instance if found, or ``NULL`` if not.h](h)The pointer of the instance if found, or }(hjXhhhNhNubj)}(h``NULL``h]hNULL}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh if not.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_ctl_add_follower (C function)c.snd_ctl_add_followerhNtauh1hhjhhhNhNubh)}(hhh](j)}(hUint snd_ctl_add_follower (struct snd_kcontrol *master, struct snd_kcontrol *follower)h]j )}(hTint snd_ctl_add_follower(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_ctl_add_followerh]j9)}(hsnd_ctl_add_followerh]hsnd_ctl_add_follower}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jZ)}(hstruct snd_kcontrol *masterh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_ctl_add_followerasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hmasterh]hmaster}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_kcontrol *followerh](j`)}(hjch]hstruct}(hjHhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjDubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjhmodnameN classnameNjj)}j]jc.snd_ctl_add_followerasbuh1hhjDubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjDubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj9)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX|**Parameters** ``struct snd_kcontrol *master`` vmaster element ``struct snd_kcontrol *follower`` follower element to add **Description** Add a virtual follower control to the given master element created via snd_ctl_create_virtual_master() beforehand. All followers must be the same type (returning the same information via info callback). The function doesn't check it, so it's your responsibility. Also, some additional limitations: at most two channels, logarithmic volume control (dB level) thus no linear volume, master can only attenuate the volume without gain **Return** Zero if successful or a negative error code.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hj h]hstruct snd_kcontrol *master}(hj hhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(hvmaster elementh]hvmaster element}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hjCh]hstruct snd_kcontrol *follower}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhj=ubj)}(hhh]j{)}(hfollower element to addh]hfollower element to add}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjXhKhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj~h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_ctl_add_follower_uncached (C function)c.snd_ctl_add_follower_uncachedhNtauh1hhjhhhNhNubh)}(hhh](j)}(h^int snd_ctl_add_follower_uncached (struct snd_kcontrol *master, struct snd_kcontrol *follower)h]j )}(h]int snd_ctl_add_follower_uncached(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_ctl_add_follower_uncachedh]j9)}(hsnd_ctl_add_follower_uncachedh]hsnd_ctl_add_follower_uncached}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj%ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h<(struct snd_kcontrol *master, struct snd_kcontrol *follower)h](jZ)}(hstruct snd_kcontrol *masterh](j`)}(hjch]hstruct}(hjEhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjAubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjemodnameN classnameNjj)}j]j)}jj+sbc.snd_ctl_add_follower_uncachedasbuh1hhjAubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj9)}(hmasterh]hmaster}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj=ubjZ)}(hstruct snd_kcontrol *followerh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_ctl_add_follower_uncachedasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hfollowerh]hfollower}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj=ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hAdd a virtual follower controlh]hAdd a virtual follower control}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hj5hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjZh]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubj)}(hhh](j)}(h0``struct snd_kcontrol *master`` vmaster element h](j)}(h``struct snd_kcontrol *master``h]j)}(hjyh]hstruct snd_kcontrol *master}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjsubj)}(hhh]j{)}(hvmaster elementh]hvmaster element}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhM hjpubj)}(h:``struct snd_kcontrol *follower`` follower element to add h](j)}(h!``struct snd_kcontrol *follower``h]j)}(hjh]hstruct snd_kcontrol *follower}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhM hjubj)}(hhh]j{)}(hfollower element to addh]hfollower element to add}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjpubeh}(h]h ]h"]h$]h&]uh1jhjTubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubj{)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubj{)}(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&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubj{)}(h **Return**h]j)}(hj#h]hReturn}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubj{)}(h,Zero if successful or a negative error code.h]h,Zero if successful or a negative error code.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:64: ./include/sound/control.hhMhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h]virtual-master-control-apiah ]h"]virtual master control apiah$]h&]uh1hhjhhhhhK>ubeh}(h]control-mixer-apiah ]h"]control/mixer apiah$]h&]uh1hhhhhhhhK2ubh)}(hhh](h)}(hMIDI APIh]hMIDI API}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hhhhhKCubh)}(hhh](h)}(h Raw MIDI APIh]h Raw MIDI API}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjphhhhhKFubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_receive (C function)c.snd_rawmidi_receivehNtauh1hhjphhhNhNubh)}(hhh](j)}(hiint snd_rawmidi_receive (struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h]j )}(hhint snd_rawmidi_receive(struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMnubj3)}(hsnd_rawmidi_receiveh]j9)}(hsnd_rawmidi_receiveh]hsnd_rawmidi_receive}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMnubjT)}(hQ(struct snd_rawmidi_substream *substream, const unsigned char *buffer, int count)h](jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_receiveasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst unsigned char *bufferh](j`)}(hjph]hconst}(hjIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjEubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjEubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubj9)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int counth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMnubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMnubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMnhjhhubjv)}(hhh]j{)}(h&receive the input data from the deviceh]h&receive the input data from the device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMnhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhj$ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjIh]h'struct snd_rawmidi_substream *substream}(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:71: ./sound/core/rawmidi.chMohjCubj)}(hhh]j{)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hMohj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMohj@ubj)}(h3``const unsigned char *buffer`` the buffer pointer h](j)}(h``const unsigned char *buffer``h]j)}(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.chMphj|ubj)}(hhh]j{)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMphjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhMphj@ubj)}(h$``int count`` the data size to read h](j)}(h ``int count``h]j)}(hjh]h int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMqhjubj)}(hhh]j{)}(hthe data size to readh]hthe data size to read}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMqhj@ubeh}(h]h ]h"]h$]h&]uh1jhj$ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMshj$ubj{)}(h(Reads the data from the internal buffer.h]h(Reads the data from the internal buffer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMrhj$ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMthj$ubj{)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMuhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_rawmidi_transmit_empty (C function)c.snd_rawmidi_transmit_emptyhNtauh1hhjphhhNhNubh)}(hhh](j)}(hHint snd_rawmidi_transmit_empty (struct snd_rawmidi_substream *substream)h]j )}(hGint snd_rawmidi_transmit_empty(struct snd_rawmidi_substream *substream)h](j)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM.ubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^hhhjphM.ubj3)}(hsnd_rawmidi_transmit_emptyh]j9)}(hsnd_rawmidi_transmit_emptyh]hsnd_rawmidi_transmit_empty}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj^hhhjphM.ubjT)}(h)(struct snd_rawmidi_substream *substream)h]jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_transmit_emptyasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShj^hhhjphM.ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjZhhhjphM.ubah}(h]jUah ](jmjneh"]h$]h&]jrjs)jthuh1jhjphM.hjWhhubjv)}(hhh]j{)}(h(check whether the output buffer is emptyh]h(check whether the output buffer is empty}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM.hj hhubah}(h]h ]h"]h$]h&]uh1juhjWhhhjphM.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj: jj: jjjuh1hhhhjphNhNubj)}(h**Parameters** ``struct snd_rawmidi_substream *substream`` the rawmidi substream **Return** 1 if the internal output buffer is empty, 0 if not.h](j{)}(h**Parameters**h]j)}(hjD h]h Parameters}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM2hj> ubj)}(hhh]j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjc h]h'struct snd_rawmidi_substream *substream}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM/hj] ubj)}(hhh]j{)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjx hM/hjy ubah}(h]h ]h"]h$]h&]uh1jhj] ubeh}(h]h ]h"]h$]h&]uh1jhjx hM/hjZ ubah}(h]h ]h"]h$]h&]uh1jhj> ubj{)}(h **Return**h]j)}(hj h]hReturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hj> ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM1hj> ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_rawmidi_transmit_peek (C function)c.snd_rawmidi_transmit_peekhNtauh1hhjphhhNhNubh)}(hhh](j)}(hiint snd_rawmidi_transmit_peek (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]j )}(hhint snd_rawmidi_transmit_peek(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMxubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhj hMxubj3)}(hsnd_rawmidi_transmit_peekh]j9)}(hsnd_rawmidi_transmit_peekh]hsnd_rawmidi_transmit_peek}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hMxubjT)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj- hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj> hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj; ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@ modnameN classnameNjj)}j]j)}jj sbc.snd_rawmidi_transmit_peekasbuh1hhj ubj")}(h h]h }(hj^ hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjl hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h substreamh]h substream}(hjy hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(hunsigned char *bufferh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hcharh]hchar}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hbufferh]hbuffer}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h int counth](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj9)}(hcounth]hcount}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hMxubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hMxubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMxhj hhubjv)}(hhh]j{)}(h"copy data from the internal bufferh]h"copy data from the internal buffer}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMxhj3 hhubah}(h]h ]h"]h$]h&]uh1juhj hhhj hMxubeh}(h]h ](jfunctioneh"]h$]h&]jjjjN jjN jjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjX h]h Parameters}(hjZ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM|hjR ubj)}(hhh](j)}(hB``struct snd_rawmidi_substream *substream`` the rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjw h]h'struct snd_rawmidi_substream *substream}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMyhjq ubj)}(hhh]j{)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMyhj ubah}(h]h ]h"]h$]h&]uh1jhjq ubeh}(h]h ]h"]h$]h&]uh1jhj hMyhjn 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.chMzhj ubj)}(hhh]j{)}(hthe buffer pointerh]hthe buffer pointer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMzhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMzhjn ubj)}(h$``int count`` data size to transfer h](j)}(h ``int count``h]j)}(hj h]h int count}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM{hj ubj)}(hhh]j{)}(hdata size to transferh]hdata size to transfer}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hM{hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM{hjn ubeh}(h]h ]h"]h$]h&]uh1jhjR ubj{)}(h**Description**h]j)}(hj$ h]h Description}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj" ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM}hjR ubj{)}(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.}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM|hjR ubj{)}(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.}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM~hjR ubj{)}(h **Return**h]j)}(hjZ h]hReturn}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjR ubj{)}(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.}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjR ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_rawmidi_transmit_ack (C function)c.snd_rawmidi_transmit_ackhNtauh1hhjphhhNhNubh)}(hhh](j)}(hQint snd_rawmidi_transmit_ack (struct snd_rawmidi_substream *substream, int count)h]j )}(hPint snd_rawmidi_transmit_ack(struct snd_rawmidi_substream *substream, int count)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j.ah"]h$]h&]uh1j!hj hhhj hMubj3)}(hsnd_rawmidi_transmit_ackh]j9)}(hsnd_rawmidi_transmit_ackh]hsnd_rawmidi_transmit_ack}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hMubjT)}(h4(struct snd_rawmidi_substream *substream, int count)h](jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_rawmidi_transmit_ackasbuh1hhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj( hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h substreamh]h substream}(hj5 hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h int counth](j)}(hinth]hint}(hjN hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ ubj")}(h h]h }(hj\ hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJ ubj9)}(hcounth]hcount}(hjj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJ ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hMhj hhubjv)}(hhh]j{)}(hacknowledge the transmissionh]hacknowledge the transmission}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj hhubah}(h]h ]h"]h$]h&]uh1juhj hhhj hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(hthe rawmidi substreamh]hthe rawmidi substream}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h$``int count`` the transferred count h](j)}(h ``int count``h]j)}(hjh]h int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]j{)}(hthe transferred counth]hthe transferred count}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj#hMhj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjIh]h Description}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj{)}(h **Return**h]j)}(hjph]hReturn}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubj{)}(hEThe advanced size if successful, or a negative error code on failure.h]hEThe advanced size if successful, or a negative error code on failure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_rawmidi_transmit (C function)c.snd_rawmidi_transmithNtauh1hhjphhhNhNubh)}(hhh](j)}(hdint snd_rawmidi_transmit (struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h]j )}(hcint snd_rawmidi_transmit(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_rawmidi_transmith]j9)}(hsnd_rawmidi_transmith]hsnd_rawmidi_transmit}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hK(struct snd_rawmidi_substream *substream, unsigned char *buffer, int count)h](jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_transmitasbuh1hhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned char *bufferh](j)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj9)}(hbufferh]hbuffer}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int counth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h"copy from the buffer to the deviceh]h"copy from the buffer to the device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hjIh]h'struct snd_rawmidi_substream *substream}(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:71: ./sound/core/rawmidi.chMhjCubj)}(hhh]j{)}(hthe rawmidi substreamh]hthe rawmidi substream}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hMhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hMhj@ubj)}(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.chMhj|ubj)}(hhh]j{)}(hthe buffer pointerh]hthe buffer pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhMhj@ubj)}(h(``int count`` the data size to transfer h](j)}(h ``int count``h]j)}(hjh]h int count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjubj)}(hhh]j{)}(hthe data size to transferh]hthe data size to transfer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj@ubeh}(h]h ]h"]h$]h&]uh1jhj$ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj$ubj{)}(hCCopies data from the buffer to the device and advances the pointer.h]hCCopies data from the buffer to the device and advances the pointer.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj$ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj$ubj{)}(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.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_proceed (C function)c.snd_rawmidi_proceedhNtauh1hhjphhhNhNubh)}(hhh](j)}(hAint snd_rawmidi_proceed (struct snd_rawmidi_substream *substream)h]j )}(h@int snd_rawmidi_proceed(struct snd_rawmidi_substream *substream)h](j)}(hinth]hint}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^hhhjphMubj3)}(hsnd_rawmidi_proceedh]j9)}(hsnd_rawmidi_proceedh]hsnd_rawmidi_proceed}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj^hhhjphMubjT)}(h)(struct snd_rawmidi_substream *substream)h]jZ)}(h'struct snd_rawmidi_substream *substreamh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_rawmidi_substreamh]hsnd_rawmidi_substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_proceedasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h substreamh]h substream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShj^hhhjphMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjZhhhjphMubah}(h]jUah ](jmjneh"]h$]h&]jrjs)jthuh1jhjphMhjWhhubjv)}(hhh]j{)}(h)Discard the all pending bytes and proceedh]h)Discard the all pending bytes and proceed}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjWhhhjphMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj:jj:jjjuh1hhhhjphNhNubj)}(hz**Parameters** ``struct snd_rawmidi_substream *substream`` rawmidi substream **Return** the number of discarded bytesh](j{)}(h**Parameters**h]j)}(hjDh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj>ubj)}(hhh]j)}(h>``struct snd_rawmidi_substream *substream`` rawmidi substream h](j)}(h+``struct snd_rawmidi_substream *substream``h]j)}(hjch]h'struct snd_rawmidi_substream *substream}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj]ubj)}(hhh]j{)}(hrawmidi substreamh]hrawmidi substream}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjxhMhjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhMhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj>ubj{)}(hthe number of discarded bytesh]hthe number of discarded bytes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_rawmidi_new (C function)c.snd_rawmidi_newhNtauh1hhjphhhNhNubh)}(hhh](j)}(hint snd_rawmidi_new (struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h]j )}(hint snd_rawmidi_new(struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMPubj3)}(hsnd_rawmidi_newh]j9)}(hsnd_rawmidi_newh]hsnd_rawmidi_new}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMPubjT)}(ho(struct snd_card *card, char *id, int device, int output_count, int input_count, struct snd_rawmidi **rrawmidi)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj@modnameN classnameNjj)}j]j)}jjsbc.snd_rawmidi_newasbuh1hhjubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hchar *idh](j)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hidh]hid}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int deviceh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint output_counth](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h output_counth]h output_count}(hj%hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint input_counth](j)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj")}(h h]h }(hjLhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj9)}(h input_counth]h input_count}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_rawmidi **rrawmidih](j`)}(hjch]hstruct}(hjshhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubh)}(hhh]j9)}(h snd_rawmidih]h snd_rawmidi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jZc.snd_rawmidi_newasbuh1hhjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj9)}(hrrawmidih]hrrawmidi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjoubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMPubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMPubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMPhjhhubjv)}(hhh]j{)}(hcreate a rawmidi instanceh]hcreate a rawmidi instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMPhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj#h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hjBh]hstruct snd_card *card}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMQhj<ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjWhMQhjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhMQhj9ubj)}(h``char *id`` the id string h](j)}(h ``char *id``h]j)}(hj{h]hchar *id}(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:71: ./sound/core/rawmidi.chMRhjuubj)}(hhh]j{)}(h the id stringh]h the id string}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMRhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhMRhj9ubj)}(h ``int device`` the device index h](j)}(h``int device``h]j)}(hjh]h int device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMShjubj)}(hhh]j{)}(hthe device indexh]hthe device index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMShj9ubj)}(h2``int output_count`` the number of output streams h](j)}(h``int output_count``h]j)}(hjh]hint output_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.chMThjubj)}(hhh]j{)}(hthe number of output streamsh]hthe number of output streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMThj9ubj)}(h0``int input_count`` the number of input streams h](j)}(h``int input_count``h]j)}(hj&h]hint input_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.chMUhj ubj)}(hhh]j{)}(hthe number of input streamsh]hthe number of input streams}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj;hMUhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hMUhj9ubj)}(hP``struct snd_rawmidi **rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h!``struct snd_rawmidi **rrawmidi``h]j)}(hj_h]hstruct snd_rawmidi **rrawmidi}(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:71: ./sound/core/rawmidi.chMVhjYubj)}(hhh]j{)}(h-the pointer to store the new rawmidi instanceh]h-the pointer to store the new rawmidi instance}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjthMVhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthMVhj9ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMXhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMWhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chMZhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM[hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_rawmidi_set_ops (C function)c.snd_rawmidi_set_opshNtauh1hhjphhhNhNubh)}(hhh](j)}(hcvoid snd_rawmidi_set_ops (struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h]j )}(hbvoid snd_rawmidi_set_ops(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM&ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM&ubj3)}(hsnd_rawmidi_set_opsh]j9)}(hsnd_rawmidi_set_opsh]hsnd_rawmidi_set_ops}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj#ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM&ubjT)}(hJ(struct snd_rawmidi *rmidi, int stream, const struct snd_rawmidi_ops *ops)h](jZ)}(hstruct snd_rawmidi *rmidih](j`)}(hjch]hstruct}(hjChhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj?ubj")}(h h]h }(hjPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj?ubh)}(hhh]j9)}(h snd_rawmidih]h snd_rawmidi}(hjahhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]j)}jj)sbc.snd_rawmidi_set_opsasbuh1hhj?ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj?ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj9)}(hrmidih]hrmidi}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubjZ)}(h int streamh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubjZ)}(h!const struct snd_rawmidi_ops *opsh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_rawmidi_opsh]hsnd_rawmidi_ops}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj%modnameN classnameNjj)}j]j}c.snd_rawmidi_set_opsasbuh1hhjubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hopsh]hops}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj;ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM&ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM&ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM&hjhhubjv)}(hhh]j{)}(hset the rawmidi operatorsh]hset the rawmidi operators}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM&hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjphNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM*hjubj)}(hhh](j)}(h3``struct snd_rawmidi *rmidi`` the rawmidi instance h](j)}(h``struct snd_rawmidi *rmidi``h]j)}(hjh]hstruct snd_rawmidi *rmidi}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM'hjubj)}(hhh]j{)}(hthe rawmidi instanceh]hthe rawmidi instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM'hjubj)}(h>``int stream`` the stream direction, SNDRV_RAWMIDI_STREAM_XXX h](j)}(h``int stream``h]j)}(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:71: ./sound/core/rawmidi.chM(hjubj)}(hhh]j{)}(h.the stream direction, SNDRV_RAWMIDI_STREAM_XXXh]h.the stream direction, SNDRV_RAWMIDI_STREAM_XXX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM(hjubj)}(h9``const struct snd_rawmidi_ops *ops`` the operator table h](j)}(h%``const struct snd_rawmidi_ops *ops``h]j)}(hj9h]h!const struct snd_rawmidi_ops *ops}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM)hj3ubj)}(hhh]j{)}(hthe operator tableh]hthe operator table}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjNhM)hjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhM)hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjth]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM+hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:71: ./sound/core/rawmidi.chM*hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjphhhNhNubeh}(h] raw-midi-apiah ]h"] raw midi apiah$]h&]uh1hhj_hhhhhKFubh)}(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](j)}(h=irqreturn_t snd_mpu401_uart_interrupt (int irq, void *dev_id)h]j )}(hprivate_data (with struct snd_mpu401 magic-cast). **Return** Zero if successful, or a negative error code.h](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj h]hstruct snd_card *card}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h,``int device`` the device index, zero-based h](j)}(h``int device``h]j)}(hj!h]h int device}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj!ubj)}(hhh]j{)}(hthe device index, zero-basedh]hthe device index, zero-based}(hj5!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj1!hMhj2!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj1!hMhj ubj)}(h>``unsigned short hardware`` the hardware type, MPU401_HW_XXXX h](j)}(h``unsigned short hardware``h]j)}(hjU!h]hunsigned short hardware}(hjW!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS!ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhjO!ubj)}(hhh]j{)}(h!the hardware type, MPU401_HW_XXXXh]h!the hardware type, MPU401_HW_XXXX}(hjn!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjj!hMhjk!ubah}(h]h ]h"]h$]h&]uh1jhjO!ubeh}(h]h ]h"]h$]h&]uh1jhjj!hMhj ubj)}(h7``unsigned long port`` the base address of MPU401 port h](j)}(h``unsigned long port``h]j)}(hj!h]hunsigned long port}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj!ubj)}(hhh]j{)}(hthe base address of MPU401 porth]hthe base address of MPU401 port}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj ubj)}(h5``unsigned int info_flags`` bitflags MPU401_INFO_XXX h](j)}(h``unsigned int info_flags``h]j)}(hj!h]hunsigned int info_flags}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj!ubj)}(hhh]j{)}(hbitflags MPU401_INFO_XXXh]hbitflags MPU401_INFO_XXX}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj ubj)}(h:``int irq`` the ISA irq number, -1 if not to be allocated h](j)}(h ``int irq``h]j)}(hj"h]hint irq}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj!ubj)}(hhh]j{)}(h-the ISA irq number, -1 if not to be allocatedh]h-the ISA irq number, -1 if not to be allocated}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj"hMhj ubj)}(hQ``struct snd_rawmidi ** rrawmidi`` the pointer to store the new rawmidi instance h](j)}(h"``struct snd_rawmidi ** rrawmidi``h]j)}(hj9"h]hstruct snd_rawmidi ** rrawmidi}(hj;"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7"ubah}(h]h ]h"]h$]h&]uh1jhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj3"ubj)}(hhh]j{)}(h-the pointer to store the new rawmidi instanceh]h-the pointer to store the new rawmidi instance}(hjR"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjN"hMhjO"ubah}(h]h ]h"]h$]h&]uh1jhj3"ubeh}(h]h ]h"]h$]h&]uh1jhjN"hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjt"h]h Description}(hjv"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr"ubah}(h]h ]h"]h$]h&]uh1jzhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj{)}(hCreates a new MPU-401 instance.h]hCreates a new MPU-401 instance.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj{)}(hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).h]hNote that the rawmidi instance is returned on the rrawmidi argument, not the mpu401 instance itself. To access to the mpu401 instance, cast from rawmidi->private_data (with struct snd_mpu401 magic-cast).}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj{)}(h **Return**h]j)}(hj"h]hReturn}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jzhs/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:75: ./sound/drivers/mpu401/mpu401_uart.chMhj ubj{)}(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&]uh1jzhs/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&]uh1hhj_hhhhhKJubeh}(h]midi-apiah ]h"]midi apiah$]h&]uh1hhhhhhhhKCubh)}(hhh](h)}(h Proc Info APIh]h Proc Info API}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhKNubh)}(hhh](h)}(hProc Info Interfaceh]hProc Info Interface}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhKQubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_line (C function)c.snd_info_get_linehNtauh1hhj"hhhNhNubh)}(hhh](j)}(hKint snd_info_get_line (struct snd_info_buffer *buffer, char *line, int len)h]j )}(hJint snd_info_get_line(struct snd_info_buffer *buffer, char *line, int len)h](j)}(hinth]hint}(hj!#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@ubj")}(h h]h }(hj0#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#hhhj/#hM@ubj3)}(hsnd_info_get_lineh]j9)}(hsnd_info_get_lineh]hsnd_info_get_line}(hjB#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>#ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj#hhhj/#hM@ubjT)}(h5(struct snd_info_buffer *buffer, char *line, int len)h](jZ)}(hstruct snd_info_buffer *bufferh](j`)}(hjch]hstruct}(hj^#hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjZ#ubj")}(h h]h }(hjk#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZ#ubh)}(hhh]j9)}(hsnd_info_bufferh]hsnd_info_buffer}(hj|#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjy#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~#modnameN classnameNjj)}j]j)}jjD#sbc.snd_info_get_lineasbuh1hhjZ#ubj")}(h h]h }(hj#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZ#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ#ubj9)}(hbufferh]hbuffer}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZ#ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjV#ubjZ)}(h char *lineh](j)}(hcharh]hchar}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj")}(h h]h }(hj#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj9)}(hlineh]hline}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj#ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjV#ubjZ)}(hint lenh](j)}(hinth]hint}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj")}(h h]h }(hj $hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj9)}(hlenh]hlen}(hj.$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjV#ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj#hhhj/#hM@ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj#hhhj/#hM@ubah}(h]j#ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj/#hM@hj#hhubjv)}(hhh]j{)}(h$read one line from the procfs bufferh]h$read one line from the procfs buffer}(hjX$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM@hjU$hhubah}(h]h ]h"]h$]h&]uh1juhj#hhhj/#hM@ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjp$jjp$jjjuh1hhhhj"hNhNubj)}(hX**Parameters** ``struct snd_info_buffer *buffer`` the procfs buffer ``char *line`` the buffer to store ``int len`` the max. buffer size **Description** Reads one line from the buffer and stores the string. **Return** Zero if successful, or 1 if error or EOF.h](j{)}(h**Parameters**h]j)}(hjz$h]h Parameters}(hj|$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx$ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhjt$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]j{)}(hthe procfs bufferh]hthe procfs buffer}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj$hMAhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMAhj$ubj)}(h#``char *line`` the buffer to store h](j)}(h``char *line``h]j)}(hj$h]h char *line}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhj$ubj)}(hhh]j{)}(hthe buffer to storeh]hthe buffer to store}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj$hMBhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMBhj$ubj)}(h!``int len`` the max. buffer size h](j)}(h ``int len``h]j)}(hj %h]hint len}(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.chMChj%ubj)}(hhh]j{)}(hthe max. buffer sizeh]hthe max. buffer size}(hj$%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj %hMChj!%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj %hMChj$ubeh}(h]h ]h"]h$]h&]uh1jhjt$ubj{)}(h**Description**h]j)}(hjF%h]h Description}(hjH%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD%ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhjt$ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhjt$ubj{)}(h **Return**h]j)}(hjm%h]hReturn}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk%ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhjt$ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhjt$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_get_str (C function)c.snd_info_get_strhNtauh1hhj"hhhNhNubh)}(hhh](j)}(hDconst char * snd_info_get_str (char *dest, const char *src, int len)h]j )}(hBconst char *snd_info_get_str(char *dest, const char *src, int len)h](j`)}(hjph]hconst}(hj%hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj%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 ]j.ah"]h$]h&]uh1j!hj%hhhj%hMdubj)}(hcharh]hchar}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMdubj")}(h h]h }(hj%hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj%hhhj%hMdubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%hhhj%hMdubj3)}(hsnd_info_get_strh]j9)}(hsnd_info_get_strh]hsnd_info_get_str}(hj%hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj%ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj%hhhj%hMdubjT)}(h&(char *dest, const char *src, int len)h](jZ)}(h char *desth](j)}(hcharh]hchar}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj")}(h h]h }(hj%&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hjh]h*}(hj3&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj9)}(hdesth]hdest}(hj@&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj&ubjZ)}(hconst char *srch](j`)}(hjph]hconst}(hjY&hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjU&ubj")}(h h]h }(hjf&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjU&ubj)}(hcharh]hchar}(hjt&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjU&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU&ubj9)}(hsrch]hsrc}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjU&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj&ubjZ)}(hint lenh](j)}(hinth]hint}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj9)}(hlenh]hlen}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj&ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj%hhhj%hMdubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj%hhhj%hMdubah}(h]j%ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj%hMdhj%hhubjv)}(hhh]j{)}(hparse a string tokenh]hparse a string token}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMdhj&hhubah}(h]h ]h"]h$]h&]uh1juhj%hhhj%hMdubeh}(h]h ](jfunctioneh"]h$]h&]jjjj'jj'jjjuh1hhhhj"hNhNubj)}(hXX**Parameters** ``char *dest`` the buffer to store the string token ``const char *src`` the original string ``int len`` the max. length of token - 1 **Description** Parses the original string and copy a token to the given string buffer. **Return** The updated pointer of the original string so that it can be used for the next call.h](j{)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhb/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.chMehj7'ubj)}(hhh]j{)}(h$the buffer to store the string tokenh]h$the buffer to store the string token}(hjV'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjR'hMehjS'ubah}(h]h ]h"]h$]h&]uh1jhj7'ubeh}(h]h ]h"]h$]h&]uh1jhjR'hMehj4'ubj)}(h(``const char *src`` the original string h](j)}(h``const char *src``h]j)}(hjv'h]hconst char *src}(hjx'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMfhjp'ubj)}(hhh]j{)}(hthe original stringh]hthe original string}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMfhj'ubah}(h]h ]h"]h$]h&]uh1jhjp'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMfhj4'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]j{)}(hthe max. length of token - 1h]hthe max. length of token - 1}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMghj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMghj4'ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj{)}(h**Description**h]j)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMihj'ubj{)}(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.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhhj'ubj{)}(h **Return**h]j)}(hj(h]hReturn}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMkhj'ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMlhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_info_create_module_entry (C function)c.snd_info_create_module_entryhNtauh1hhj"hhhNhNubh)}(hhh](j)}(h~struct snd_info_entry * snd_info_create_module_entry (struct module * module, const char *name, struct snd_info_entry *parent)h]j )}(h{struct snd_info_entry *snd_info_create_module_entry(struct module *module, const char *name, struct snd_info_entry *parent)h](j`)}(hjch]hstruct}(hjV(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjR(hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMubj")}(h h]h }(hjd(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjR(hhhjc(hMubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hju(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjr(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjw(modnameN classnameNjj)}j]j)}jsnd_info_create_module_entrysbc.snd_info_create_module_entryasbuh1hhjR(hhhjc(hMubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjR(hhhjc(hMubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjR(hhhjc(hMubj3)}(hsnd_info_create_module_entryh]j9)}(hj(h]hsnd_info_create_module_entry}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjR(hhhjc(hMubjT)}(hH(struct module *module, const char *name, struct snd_info_entry *parent)h](jZ)}(hstruct module *moduleh](j`)}(hjch]hstruct}(hj(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj(ubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubh)}(hhh]j9)}(hmoduleh]hmodule}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j(c.snd_info_create_module_entryasbuh1hhj(ubj")}(h h]h }(hj )hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj9)}(hmoduleh]hmodule}(hj')hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hj@)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj<)ubj")}(h h]h }(hjM)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<)ubj)}(hcharh]hchar}(hj[)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<)ubj")}(h h]h }(hji)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<)ubj)}(hjh]h*}(hjw)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<)ubj9)}(hnameh]hname}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hstruct snd_info_entry *parenth](j`)}(hjch]hstruct}(hj)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j(c.snd_info_create_module_entryasbuh1hhj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(hparenth]hparent}(hj)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjR(hhhjc(hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjN(hhhjc(hMubah}(h]jI(ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjc(hMhjK(hhubjv)}(hhh]j{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj*hhubah}(h]h ]h"]h$]h&]uh1juhjK(hhhjc(hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6*jj6*jjjuh1hhhhj"hNhNubj)}(hX4**Parameters** ``struct module * module`` the module pointer ``const char *name`` the file name ``struct snd_info_entry *parent`` the parent directory **Description** Creates a new info entry and assigns it to the given module. **Return** The pointer of the new instance, or ``NULL`` on failure.h](j{)}(h**Parameters**h]j)}(hj@*h]h Parameters}(hjB*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>*ubah}(h]h ]h"]h$]h&]uh1jzhb/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}(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.chMhjY*ubj)}(hhh]j{)}(hthe module pointerh]hthe module pointer}(hjx*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjt*hMhju*ubah}(h]h ]h"]h$]h&]uh1jhjY*ubeh}(h]h ]h"]h$]h&]uh1jhjt*hMhjV*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]j{)}(h the file nameh]h the file name}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMhjV*ubj)}(h7``struct snd_info_entry *parent`` the parent directory h](j)}(h!``struct snd_info_entry *parent``h]j)}(hj*h]hstruct snd_info_entry *parent}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj*ubj)}(hhh]j{)}(hthe parent directoryh]hthe parent directory}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hMhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMhjV*ubeh}(h]h ]h"]h$]h&]uh1jhj:*ubj{)}(h**Description**h]j)}(hj +h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj +ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj:*ubj{)}(h.ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjn-ubj{)}(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.}(hjV.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjn-ubj{)}(h **Return**h]j)}(hjg.h]hReturn}(hji.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje.ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjn-ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhjn-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_info_free_entry (C function)c.snd_info_free_entryhNtauh1hhj"hhhNhNubh)}(hhh](j)}(h8void snd_info_free_entry (struct snd_info_entry * entry)h]j )}(h6void snd_info_free_entry(struct snd_info_entry *entry)h](j)}(hvoidh]hvoid}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.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 ]j.ah"]h$]h&]uh1j!hj.hhhj.hMubj3)}(hsnd_info_free_entryh]j9)}(hsnd_info_free_entryh]hsnd_info_free_entry}(hj.hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj.hhhj.hMubjT)}(h(struct snd_info_entry *entry)h]jZ)}(hstruct snd_info_entry *entryh](j`)}(hjch]hstruct}(hj.hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj.ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jj.sbc.snd_info_free_entryasbuh1hhj.ubj")}(h h]h }(hj9/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj)}(hjh]h*}(hjG/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj9)}(hentryh]hentry}(hjT/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj.ubah}(h]h ]h"]h$]h&]jQjRuh1jShj.hhhj.hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj.hhhj.hMubah}(h]j.ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj.hMhj.hhubjv)}(hhh]j{)}(hrelease the info entryh]hrelease the info entry}(hj~/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj{/hhubah}(h]h ]h"]h$]h&]uh1juhj.hhhj.hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhj"hNhNubj)}(hm**Parameters** ``struct snd_info_entry * entry`` the info entry **Description** Releases the info entry.h](j{)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jzhb/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]j{)}(hthe info entryh]hthe info entry}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubj{)}(h**Description**h]j)}(hj/h]h Description}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubj{)}(hReleases the info entry.h]hReleases the info entry.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_info_register (C function)c.snd_info_registerhNtauh1hhj"hhhNhNubh)}(hhh](j)}(h4int snd_info_register (struct snd_info_entry *entry)h]j )}(h3int snd_info_register(struct snd_info_entry *entry)h](j)}(hinth]hint}(hj?0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;0hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$ubj")}(h h]h }(hjN0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;0hhhjM0hM$ubj3)}(hsnd_info_registerh]j9)}(hsnd_info_registerh]hsnd_info_register}(hj`0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj\0ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj;0hhhjM0hM$ubjT)}(h(struct snd_info_entry *entry)h]jZ)}(hstruct snd_info_entry *entryh](j`)}(hjch]hstruct}(hj|0hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjx0ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjx0ubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0modnameN classnameNjj)}j]j)}jjb0sbc.snd_info_registerasbuh1hhjx0ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjx0ubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjx0ubj9)}(hentryh]hentry}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjx0ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjt0ubah}(h]h ]h"]h$]h&]jQjRuh1jShj;0hhhjM0hM$ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj70hhhjM0hM$ubah}(h]j20ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjM0hM$hj40hhubjv)}(hhh]j{)}(hregister the info entryh]hregister the info entry}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM$hj0hhubah}(h]h ]h"]h$]h&]uh1juhj40hhhjM0hM$ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj1jj1jjjuh1hhhhj"hNhNubj)}(h**Parameters** ``struct snd_info_entry *entry`` the info entry **Description** Registers the proc info entry. The all children entries are registered recursively. **Return** Zero if successful, or a negative error code on failure.h](j{)}(h**Parameters**h]j)}(hj!1h]h Parameters}(hj#1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM(hj1ubj)}(hhh]j)}(h0``struct snd_info_entry *entry`` the info entry h](j)}(h ``struct snd_info_entry *entry``h]j)}(hj@1h]hstruct snd_info_entry *entry}(hjB1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>1ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM%hj:1ubj)}(hhh]j{)}(hthe info entryh]hthe info entry}(hjY1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjU1hM%hjV1ubah}(h]h ]h"]h$]h&]uh1jhj:1ubeh}(h]h ]h"]h$]h&]uh1jhjU1hM%hj71ubah}(h]h ]h"]h$]h&]uh1jhj1ubj{)}(h**Description**h]j)}(hj{1h]h Description}(hj}1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy1ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM'hj1ubj{)}(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.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM&hj1ubj{)}(h **Return**h]j)}(hj1h]hReturn}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM)hj1ubj{)}(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&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chM*hj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_card_rw_proc_new (C function)c.snd_card_rw_proc_newhNtauh1hhj"hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1hhhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1hhhj1hMBubj3)}(hsnd_card_rw_proc_newh]j9)}(hsnd_card_rw_proc_newh]hsnd_card_rw_proc_new}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj1hhhj1hMBubjT)}(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](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj$2hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj 2ubj")}(h h]h }(hj12hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj 2ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjB2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjD2modnameN classnameNjj)}j]j)}jj 2sbc.snd_card_rw_proc_newasbuh1hhj 2ubj")}(h h]h }(hjb2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj 2ubj)}(hjh]h*}(hjp2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 2ubj9)}(hcardh]hcard}(hj}2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj 2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hj2hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj2ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2ubj)}(hcharh]hchar}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj9)}(hnameh]hname}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubjZ)}(hvoid *private_datah](j)}(hvoidh]hvoid}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj9)}(h private_datah]h private_data}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubjZ)}(h=void (*read)(struct snd_info_entry*, struct snd_info_buffer*)h](j)}(hvoidh]hvoid}(hj53hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj")}(h h]h }(hjC3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj13ubj)}(hjjh]h(}(hjQ3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj)}(hjh]h*}(hj^3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj9)}(hreadh]hread}(hjk3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj13ubj)}(hjh]h)}(hjy3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj)}(hjjh]h(}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj`)}(hjch]hstruct}(hj3hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj13ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj13ubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j^2c.snd_card_rw_proc_newasbuh1hhj13ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj)}(hjh]h,}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj13ubj`)}(hjch]hstruct}(hj3hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj13ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj13ubh)}(hhh]j9)}(hsnd_info_bufferh]hsnd_info_buffer}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j^2c.snd_card_rw_proc_newasbuh1hhj13ubj)}(hjh]h*}(hj34hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubj)}(hjh]h)}(hj@4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj13ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubjZ)}(hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)h](j)}(hvoidh]hvoid}(hjX4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj")}(h h]h }(hjf4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubj)}(hjjh]h(}(hjt4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj9)}(hwriteh]hwrite}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjT4ubj)}(hjh]h)}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj)}(hjjh]h(}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj`)}(hjch]hstruct}(hj4hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjT4ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubh)}(hhh]j9)}(hsnd_info_entryh]hsnd_info_entry}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j^2c.snd_card_rw_proc_newasbuh1hhjT4ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj9)}(hentryh]hentry}(hj 5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjT4ubj)}(hjh]h,}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj")}(h h]h }(hj(5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubj`)}(hjch]hstruct}(hj65hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjT4ubj")}(h h]h }(hjC5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubh)}(hhh]j9)}(hsnd_info_bufferh]hsnd_info_buffer}(hjT5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQ5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjV5modnameN classnameNjj)}j]j^2c.snd_card_rw_proc_newasbuh1hhjT4ubj")}(h h]h }(hjr5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjT4ubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubj9)}(hbufferh]hbuffer}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjT4ubj)}(hjh]h)}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj2ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj1hhhj1hMBubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj1hhhj1hMBubah}(h]j1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hMBhj1hhubjv)}(hhh]j{)}(h5Create a read/write text proc file entry for the cardh]h5Create a read/write text proc file entry for the card}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMBhj5hhubah}(h]h ]h"]h$]h&]uh1juhj1hhhj1hMBubeh}(h]h ](jfunctioneh"]h$]h&]jjjj5jj5jjjuh1hhhhj"hNhNubj)}(hX<**Parameters** ``struct snd_card *card`` the card instance ``const char *name`` the file name ``void *private_data`` the arbitrary private data ``void (*read)(struct snd_info_entry *, struct snd_info_buffer *)`` the read callback ``void (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)`` the write callback, NULL for read-only **Description** This proc file entry will be registered via snd_card_register() call, and it will be removed automatically at the card removal, too. **Return** zero if successful, or a negative error codeh](j{)}(h**Parameters**h]j)}(hj5h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj5ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj6h]hstruct snd_card *card}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMChj5ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hMChj6ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj6hMChj5ubj)}(h#``const char *name`` the file name h](j)}(h``const char *name``h]j)}(hj>6h]hconst char *name}(hj@6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<6ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMDhj86ubj)}(hhh]j{)}(h the file nameh]h the file name}(hjW6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjS6hMDhjT6ubah}(h]h ]h"]h$]h&]uh1jhj86ubeh}(h]h ]h"]h$]h&]uh1jhjS6hMDhj5ubj)}(h2``void *private_data`` the arbitrary private data h](j)}(h``void *private_data``h]j)}(hjw6h]hvoid *private_data}(hjy6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju6ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMEhjq6ubj)}(hhh]j{)}(hthe arbitrary private datah]hthe arbitrary private data}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hMEhj6ubah}(h]h ]h"]h$]h&]uh1jhjq6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMEhj5ubj)}(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)}(hj6h]h?void (*read)(struct snd_info_entry *, struct snd_info_buffer *)}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMFhj6ubj)}(hhh]j{)}(hthe read callbackh]hthe read callback}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hMFhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMFhj5ubj)}(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)}(hj6h]hKvoid (*write)(struct snd_info_entry *entry, struct snd_info_buffer *buffer)}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMGhj6ubj)}(hhh]j{)}(h&the write callback, NULL for read-onlyh]h&the write callback, NULL for read-only}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hMGhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMGhj5ubeh}(h]h ]h"]h$]h&]uh1jhj5ubj{)}(h**Description**h]j)}(hj$7h]h Description}(hj&7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"7ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMIhj5ubj{)}(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.}(hj:7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMHhj5ubj{)}(h **Return**h]j)}(hjK7h]hReturn}(hjM7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI7ubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMKhj5ubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hja7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhb/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:82: ./sound/core/info.chMLhj5ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj"hhhNhNubeh}(h]proc-info-interfaceah ]h"]proc info interfaceah$]h&]uh1hhj"hhhhhKQubeh}(h] proc-info-apiah ]h"] proc info apiah$]h&]uh1hhhhhhhhKNubh)}(hhh](h)}(hCompress Offloadh]hCompress Offload}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKUubh)}(hhh](h)}(hCompress Offload APIh]hCompress Offload API}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKXubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_stop_error (C function)c.snd_compr_stop_errorhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hQint snd_compr_stop_error (struct snd_compr_stream *stream, snd_pcm_state_t state)h]j )}(hPint snd_compr_stop_error(struct snd_compr_stream *stream, snd_pcm_state_t state)h](j)}(hinth]hint}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMuubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7hhhj7hMuubj3)}(hsnd_compr_stop_errorh]j9)}(hsnd_compr_stop_errorh]hsnd_compr_stop_error}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj7hhhj7hMuubjT)}(h8(struct snd_compr_stream *stream, snd_pcm_state_t state)h](jZ)}(hstruct snd_compr_stream *streamh](j`)}(hjch]hstruct}(hj7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hj 8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_compr_streamh]hsnd_compr_stream}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j)}jj7sbc.snd_compr_stop_errorasbuh1hhj7ubj")}(h h]h }(hj=8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hjK8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(hstreamh]hstream}(hjX8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubjZ)}(hsnd_pcm_state_t stateh](h)}(hhh]j9)}(hsnd_pcm_state_th]hsnd_pcm_state_t}(hjt8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjq8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjv8modnameN classnameNjj)}j]j98c.snd_compr_stop_errorasbuh1hhjm8ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjm8ubj9)}(hstateh]hstate}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjm8ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj7hhhj7hMuubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj7hhhj7hMuubah}(h]j7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hMuhj7hhubjv)}(hhh]j{)}(h Report a fatal error on a streamh]h Report a fatal error on a stream}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMuhj8hhubah}(h]h ]h"]h$]h&]uh1juhj7hhhj7hMuubeh}(h]h ](jfunctioneh"]h$]h&]jjjj8jj8jjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj8h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMyhj8ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hj 9h]hstruct snd_compr_stream *stream}(hj 9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 9ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMvhj9ubj)}(hhh]j{)}(hpointer to streamh]hpointer to stream}(hj$9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 9hMvhj!9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj 9hMvhj9ubj)}(h<``snd_pcm_state_t state`` state to transition the stream to h](j)}(h``snd_pcm_state_t state``h]j)}(hjD9h]hsnd_pcm_state_t state}(hjF9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB9ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMwhj>9ubj)}(hhh]j{)}(h!state to transition the stream toh]h!state to transition the stream to}(hj]9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjY9hMwhjZ9ubah}(h]h ]h"]h$]h&]uh1jhj>9ubeh}(h]h ]h"]h$]h&]uh1jhjY9hMwhj9ubeh}(h]h ]h"]h$]h&]uh1jhj8ubj{)}(h**Description**h]j)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}9ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMyhj8ubj{)}(h"Stop the stream and set its state.h]h"Stop the stream and set its state.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMxhj8ubj{)}(h2Should be called with compressed device lock held.h]h2Should be called with compressed device lock held.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMzhj8ubj{)}(h **Return**h]j)}(hj9h]hReturn}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chM|hj8ubj{)}(h,zero if successful, or a negative error codeh]h,zero if successful, or a negative error code}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chM}hj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_compr_task_finished (C function)c.snd_compr_task_finishedhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hcvoid snd_compr_task_finished (struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h]j )}(hbvoid snd_compr_task_finished(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](j)}(hvoidh]hvoid}(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj")}(h h]h }(hj :hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9hhhj:hMubj3)}(hsnd_compr_task_finishedh]j9)}(hsnd_compr_task_finishedh]hsnd_compr_task_finished}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj9hhhj:hMubjT)}(hF(struct snd_compr_stream *stream, struct snd_compr_task_runtime *task)h](jZ)}(hstruct snd_compr_stream *streamh](j`)}(hjch]hstruct}(hj7:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj3:ubj")}(h h]h }(hjD:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3:ubh)}(hhh]j9)}(hsnd_compr_streamh]hsnd_compr_stream}(hjU:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjR:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjW:modnameN classnameNjj)}j]j)}jj:sbc.snd_compr_task_finishedasbuh1hhj3:ubj")}(h h]h }(hju:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3:ubj9)}(hstreamh]hstream}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/:ubjZ)}(h#struct snd_compr_task_runtime *taskh](j`)}(hjch]hstruct}(hj:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj:ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubh)}(hhh]j9)}(hsnd_compr_task_runtimeh]hsnd_compr_task_runtime}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jq:c.snd_compr_task_finishedasbuh1hhj:ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj9)}(htaskh]htask}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/:ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj9hhhj:hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj9hhhj:hMubah}(h]j9ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj:hMhj9hhubjv)}(hhh]j{)}(h!Notify that the task was finishedh]h!Notify that the task was finished}(hj*;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj';hhubah}(h]h ]h"]h$]h&]uh1juhj9hhhj:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjB;jjB;jjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjL;h]h Parameters}(hjN;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ;ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjF;ubj)}(hhh](j)}(h6``struct snd_compr_stream *stream`` pointer to stream h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjk;h]hstruct snd_compr_stream *stream}(hjm;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji;ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhje;ubj)}(hhh]j{)}(hpointer to streamh]hpointer to stream}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1jhje;ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhjb;ubj)}(h?``struct snd_compr_task_runtime *task`` runtime task structure h](j)}(h'``struct snd_compr_task_runtime *task``h]j)}(hj;h]h#struct snd_compr_task_runtime *task}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj;ubj)}(hhh]j{)}(hruntime task structureh]hruntime task structure}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhjb;ubeh}(h]h ]h"]h$]h&]uh1jhjF;ubj{)}(h**Description**h]j)}(hj;h]h Description}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjF;ubj{)}(h/Set the finished task state and notify waiters.h]h/Set the finished task state and notify waiters.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjF;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compress_new (C function)c.snd_compress_newhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hkint snd_compress_new (struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h]j )}(hjint snd_compress_new(struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h](j)}(hinth]hint}(hj$<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj <hhhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMubj")}(h h]h }(hj3<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj <hhhj2<hMubj3)}(hsnd_compress_newh]j9)}(hsnd_compress_newh]hsnd_compress_new}(hjE<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjA<ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj <hhhj2<hMubjT)}(hV(struct snd_card *card, int device, int dirn, const char *id, struct snd_compr *compr)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hja<hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj]<ubj")}(h h]h }(hjn<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]<ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj|<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj<modnameN classnameNjj)}j]j)}jjG<sbc.snd_compress_newasbuh1hhj]<ubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]<ubj)}(hjh]h*}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]<ubj9)}(hcardh]hcard}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjY<ubjZ)}(h int deviceh](j)}(hinth]hint}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj<ubj9)}(hdeviceh]hdevice}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjY<ubjZ)}(hint dirnh](j)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubj9)}(hdirnh]hdirn}(hj$=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjY<ubjZ)}(hconst char *idh](j`)}(hjph]hconst}(hj==hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj9=ubj")}(h h]h }(hjJ=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9=ubj)}(hcharh]hchar}(hjX=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubj")}(h h]h }(hjf=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9=ubj)}(hjh]h*}(hjt=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9=ubj9)}(hidh]hid}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9=ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjY<ubjZ)}(hstruct snd_compr *comprh](j`)}(hjch]hstruct}(hj=hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj=ubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubh)}(hhh]j9)}(h snd_comprh]h snd_compr}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNjj)}j]j<c.snd_compress_newasbuh1hhj=ubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj9)}(hcomprh]hcompr}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjY<ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj <hhhj2<hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj<hhhj2<hMubah}(h]j<ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj2<hMhj<hhubjv)}(hhh]j{)}(hcreate new compress deviceh]hcreate new compress device}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj>hhubah}(h]h ]h"]h$]h&]uh1juhj<hhhj2<hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3>jj3>jjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj=>h]h Parameters}(hj?>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;>ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7>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&]uh1jhjZ>ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhjV>ubj)}(hhh]j{)}(hsound card pointerh]hsound card pointer}(hju>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjq>hMhjr>ubah}(h]h ]h"]h$]h&]uh1jhjV>ubeh}(h]h ]h"]h$]h&]uh1jhjq>hMhjS>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]j{)}(h device numberh]h device number}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhjS>ubj)}(hJ``int dirn`` device direction, should be of type enum snd_compr_direction h](j)}(h ``int dirn``h]j)}(hj>h]hint dirn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj>ubj)}(hhh]j{)}(hhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhjS>ubj)}(h``const char *id`` ID string h](j)}(h``const char *id``h]j)}(hj?h]hconst char *id}(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]j{)}(h ID stringh]h ID string}(hj ?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhjS>ubj)}(h4``struct snd_compr *compr`` compress device pointer h](j)}(h``struct snd_compr *compr``h]j)}(hj@?h]hstruct snd_compr *compr}(hjB?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]j{)}(hcompress device pointerh]hcompress device pointer}(hjY?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjU?hMhjV?ubah}(h]h ]h"]h$]h&]uh1jhj:?ubeh}(h]h ]h"]h$]h&]uh1jhjU?hMhjS>ubeh}(h]h ]h"]h$]h&]uh1jhj7>ubj{)}(h **Return**h]j)}(hj{?h]hReturn}(hj}?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy?ubah}(h]h ]h"]h$]h&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7>ubj{)}(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&]uh1jzhn/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:89: ./sound/core/compress_offload.chMhj7>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_compressed_buffer (C struct)c.snd_compressed_bufferhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compressed_bufferh]j )}(hstruct snd_compressed_bufferh](j`)}(hjch]hstruct}(hj?hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj?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 ]j.ah"]h$]h&]uh1j!hj?hhhj?hKubj3)}(hsnd_compressed_bufferh]j9)}(hj?h]hsnd_compressed_buffer}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj?hhhj?hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj?hhhj?hKubah}(h]j?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj?hKhj?hhubjv)}(hhh]j{)}(hcompressed bufferh]hcompressed buffer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/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&]uh1juhj?hhhj?hKubeh}(h]h ](jstructeh"]h$]h&]jjjj@jj@jjjuh1hhhhj7hNhNubj)}(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](j{)}(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&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj@ubjy)}(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&]jQjRuh1jxhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhj@ubj{)}(h **Members**h]j)}(hjP@h]hMembers}(hjR@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN@ubah}(h]h ]h"]h$]h&]uh1jzhv/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)}(hjo@h]h fragment_size}(hjq@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm@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.hhKhji@ubj)}(hhh]j{)}(h size of buffer fragment in bytesh]h size of buffer fragment in bytes}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hKhj@ubah}(h]h ]h"]h$]h&]uh1jhji@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKhjf@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]j{)}(hnumber of such fragmentsh]hnumber of such fragments}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/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@hKhjf@ubeh}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_params (C struct)c.snd_compr_paramshNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compr_paramsh]j )}(hstruct snd_compr_paramsh](j`)}(hjch]hstruct}(hjAhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj@hhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@hhhjAhKubj3)}(hsnd_compr_paramsh]j9)}(hj@h]hsnd_compr_params}(hj"AhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj@hhhjAhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj@hhhjAhKubah}(h]j@ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjAhKhj@hhubjv)}(hhh]j{)}(hcompressed stream paramsh]hcompressed stream params}(hjDAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjAAhhubah}(h]h ]h"]h$]h&]uh1juhj@hhhjAhKubeh}(h]h ](jstructeh"]h$]h&]jjjj\Ajj\Ajjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdAubh:}(hjdAhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK hj`Aubjy)}(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; };}hjAsbah}(h]h ]h"]h$]h&]jQjRuh1jxhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK"hj`Aubj{)}(h **Members**h]j)}(hjAh]hMembers}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK(hj`Aubj)}(hhh](j)}(h``buffer`` buffer description h](j)}(h ``buffer``h]j)}(hjAh]hbuffer}(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.hhKhjAubj)}(hhh]j{)}(hbuffer descriptionh]hbuffer description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjAhKhjAubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjAubj)}(h``codec`` codec parameters h](j)}(h ``codec``h]j)}(hjAh]hcodec}(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.hhKhjAubj)}(hhh]j{)}(hcodec parametersh]hcodec parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjAhKhjBubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhKhjAubj)}(h.``no_wake_mode`` dont wake on fragment elapsedh](j)}(h``no_wake_mode``h]j)}(hj#Bh]h no_wake_mode}(hj%BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Bubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKhjBubj)}(hhh]j{)}(hdont wake on fragment elapsedh]hdont wake on fragment elapsed}(hjhjNEubj)}(hhh]j{)}(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}(hjmEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjiEhK>hjjEubah}(h]h ]h"]h$]h&]uh1jhjNEubeh}(h]h ]h"]h$]h&]uh1jhjiEhK>hjEubj)}(h``pcm_frames`` Frames decoded or encoded by DSP. This field will evolve by large steps and should only be used to monitor encoding/decoding progress. It shall not be used for timing estimates. h](j)}(h``pcm_frames``h]j)}(hjEh]h pcm_frames}(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.hhKAhjEubj)}(hhh]j{)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhK?hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKAhjEubj)}(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)}(hjEh]h pcm_io_frames}(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.hhKChjEubj)}(hhh]j{)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKBhjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhKChjEubj)}(h(``sampling_rate`` sampling rate of audioh](j)}(h``sampling_rate``h]j)}(hjFh]h sampling_rate}(hjFhhhNhNubah}(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.hhKChjEubj)}(hhh]j{)}(hsampling rate of audioh]hsampling rate of audio}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKDhjFubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjFhKChjEubeh}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_avail (C struct)c.snd_compr_availhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compr_availh]j )}(hstruct snd_compr_availh](j`)}(hjch]hstruct}(hj[FhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjWFhhhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKJubj")}(h h]h }(hjiFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWFhhhjhFhKJubj3)}(hsnd_compr_availh]j9)}(hjUFh]hsnd_compr_avail}(hj{FhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjwFubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjWFhhhjhFhKJubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjSFhhhjhFhKJubah}(h]jNFah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhFhKJhjPFhhubjv)}(hhh]j{)}(havail descriptorh]havail descriptor}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKNhjFhhubah}(h]h ]h"]h$]h&]uh1juhjPFhhhjhFhKJubeh}(h]h ](jstructeh"]h$]h&]jjjjFjjFjjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubh:}(hjFhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKRhjFubjy)}(hPstruct snd_compr_avail { __u64 avail; struct snd_compr_tstamp tstamp; };h]hPstruct snd_compr_avail { __u64 avail; struct snd_compr_tstamp tstamp; };}hjFsbah}(h]h ]h"]h$]h&]jQjRuh1jxhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKThjFubj{)}(h **Members**h]j)}(hjFh]hMembers}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKYhjFubj)}(hhh](j)}(hG``avail`` Number of bytes available in ring buffer for writing/reading h](j)}(h ``avail``h]j)}(hj Gh]havail}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhv/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:90: ./include/uapi/sound/compress_offload.hhKPhjGubj)}(hhh]j{)}(h[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:[ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMLhj6[ubj)}(hhh]j{)}(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.}(hjU[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMKhjR[ubah}(h]h ]h"]h$]h&]uh1jhj6[ubeh}(h]h ]h"]h$]h&]uh1jhjQ[hMLhj3[ubj)}(h,``num_channels`` Number of output channels. h](j)}(h``num_channels``h]j)}(hjv[h]h num_channels}(hjx[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt[ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMMhjp[ubj)}(hhh]j{)}(hNumber of output channels.h]hNumber of output channels.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hMMhj[ubah}(h]h ]h"]h$]h&]uh1jhjp[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMMhj3[ubj)}(h5``pre_skip`` Number of samples to discard at 48 kHz. h](j)}(h ``pre_skip``h]j)}(hj[h]hpre_skip}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMNhj[ubj)}(hhh]j{)}(h'Number of samples to discard at 48 kHz.h]h'Number of samples to discard at 48 kHz.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hMNhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMNhj3[ubj)}(h/``sample_rate`` Sample rate of original input. h](j)}(h``sample_rate``h]j)}(hj[h]h sample_rate}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMOhj[ubj)}(hhh]j{)}(hSample rate of original input.h]hSample rate of original input.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hMOhj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hMOhj3[ubj)}(h>``output_gain`` Gain to apply when decoding (in Q7.8 format). h](j)}(h``output_gain``h]j)}(hj!\h]h output_gain}(hj#\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMPhj\ubj)}(hhh]j{)}(h-Gain to apply when decoding (in Q7.8 format).h]h-Gain to apply when decoding (in Q7.8 format).}(hj:\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6\hMPhj7\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj6\hMPhj3[ubj)}(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)}(hjZ\h]hmapping_family}(hj\\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX\ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMRhjT\ubj)}(hhh]j{)}(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.}(hjs\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMQhjp\ubah}(h]h ]h"]h$]h&]uh1jhjT\ubeh}(h]h ]h"]h$]h&]uh1jhjo\hMRhj3[ubj)}(hl``chan_map`` Optional channel mapping table. Describes mapping of opus streams to decoded channels. Fields: h](j)}(h ``chan_map``h]j)}(hj\h]hchan_map}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMUhj\ubj)}(hhh]j{)}(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:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMThj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMUhj3[ubj)}(hH``chan_map.stream_count`` Number of streams encoded in each Ogg packet. h](j)}(h``chan_map.stream_count``h]j)}(hj\h]hchan_map.stream_count}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMVhj\ubj)}(hhh]j{)}(h-Number of streams encoded in each Ogg packet.h]h-Number of streams encoded in each Ogg packet.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj\hMVhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hMVhj3[ubj)}(hW``chan_map.coupled_count`` Number of streams whose decoders are used for two channels. h](j)}(h``chan_map.coupled_count``h]j)}(hj]h]hchan_map.coupled_count}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMXhj]ubj)}(hhh]j{)}(h;Number of streams whose decoders are used for two channels.h]h;Number of streams whose decoders are used for two channels.}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMWhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMXhj3[ubj)}(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)}(hjA]h]hchan_map.channel_map}(hjC]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?]ubah}(h]h ]h"]h$]h&]uh1jhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMZhj;]ubj)}(hhh]j{)}(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.}(hjZ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhMYhjW]ubah}(h]h ]h"]h$]h&]uh1jhj;]ubeh}(h]h ]h"]h$]h&]uh1jhjV]hMZhj3[ubeh}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhjUhNubj{)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM^hj7hhubj{)}(h4These options were extracted from RFC7845 Section 5.h]h4These options were extracted from RFC7845 Section 5.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhu/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:91: ./include/uapi/sound/compress_params.hhM[hj7hhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_compr_task_runtime (C struct)c.snd_compr_task_runtimehNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compr_task_runtimeh]j )}(hstruct snd_compr_task_runtimeh](j`)}(hjch]hstruct}(hj]hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj]hhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKubj")}(h h]h }(hj]hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]hhhj]hKubj3)}(hsnd_compr_task_runtimeh]j9)}(hj]h]hsnd_compr_task_runtime}(hj]hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj]hhhj]hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj]hhhj]hKubah}(h]j]ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj]hKhj]hhubjv)}(hhh]j{)}(htask runtime descriptionh]htask runtime description}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj^hhubah}(h]h ]h"]h$]h&]uh1juhj]hhhj]hKubeh}(h]h ](jstructeh"]h$]h&]jjjj^jj^jjjuh1hhhhj7hNhNubj)}(hX**Definition**:: struct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; }; **Members** ``list`` list of all managed tasks ``input`` input DMA buffer ``output`` output DMA buffer ``seqno`` sequence number ``input_size`` really used data in the input buffer ``output_size`` really used data in the output buffer ``flags`` see SND_COMPRESS_TFLG_* ``state`` actual task state ``private_value`` used by the lowlevel driver (opaque)h](j{)}(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&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj ^ubjy)}(hstruct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; };h]hstruct snd_compr_task_runtime { struct list_head list; struct dma_buf *input; struct dma_buf *output; u64 seqno; u64 input_size; u64 output_size; u32 flags; u8 state; void *private_value; };}hjA^sbah}(h]h ]h"]h$]h&]jQjRuh1jxhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj ^ubj{)}(h **Members**h]j)}(hjR^h]hMembers}(hjT^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP^ubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK)hj ^ubj)}(hhh](j)}(h#``list`` list of all managed tasks h](j)}(h``list``h]j)}(hjq^h]hlist}(hjs^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo^ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjk^ubj)}(hhh]j{)}(hlist of all managed tasksh]hlist of all managed tasks}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhjk^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjh^ubj)}(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]j{)}(hinput DMA bufferh]hinput DMA buffer}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjh^ubj)}(h``output`` output DMA buffer h](j)}(h ``output``h]j)}(hj^h]houtput}(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]j{)}(houtput DMA bufferh]houtput DMA buffer}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hKhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjh^ubj)}(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]j{)}(hsequence numberh]hsequence number}(hj5_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj1_hKhj2_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj1_hKhjh^ubj)}(h4``input_size`` really used data in the input buffer h](j)}(h``input_size``h]j)}(hjU_h]h input_size}(hjW_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjO_ubj)}(hhh]j{)}(h$really used data in the input bufferh]h$really used data in the input buffer}(hjn_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjj_hKhjk_ubah}(h]h ]h"]h$]h&]uh1jhjO_ubeh}(h]h ]h"]h$]h&]uh1jhjj_hKhjh^ubj)}(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]j{)}(h%really used data in the output bufferh]h%really used data in the output buffer}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_hKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjh^ubj)}(h"``flags`` see SND_COMPRESS_TFLG_* h](j)}(h ``flags``h]j)}(hj_h]hflags}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj_ubj)}(hhh]j{)}(hsee SND_COMPRESS_TFLG_*h]hsee SND_COMPRESS_TFLG_*}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_hKhj_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjh^ubj)}(h``state`` actual task state h](j)}(h ``state``h]j)}(hj`h]hstate}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK hj_ubj)}(hhh]j{)}(hactual task stateh]hactual task state}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj`hK hj`ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj`hK hjh^ubj)}(h6``private_value`` used by the lowlevel driver (opaque)h](j)}(h``private_value``h]j)}(hj9`h]h private_value}(hj;`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7`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 hj3`ubj)}(hhh]j{)}(h$used by the lowlevel driver (opaque)h]h$used by the lowlevel driver (opaque)}(hjR`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK!hjO`ubah}(h]h ]h"]h$]h&]uh1jhj3`ubeh}(h]h ]h"]h$]h&]uh1jhjN`hK hjh^ubeh}(h]h ]h"]h$]h&]uh1jhj ^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_runtime (C struct)c.snd_compr_runtimehNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compr_runtimeh]j )}(hstruct snd_compr_runtimeh](j`)}(hjch]hstruct}(hj`hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj`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 ]j.ah"]h$]h&]uh1j!hj`hhhj`hK'ubj3)}(hsnd_compr_runtimeh]j9)}(hj`h]hsnd_compr_runtime}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj`hhhj`hK'ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj`hhhj`hK'ubah}(h]j`ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj`hK'hj`hhubjv)}(hhh]j{)}(hruntime stream descriptionh]hruntime stream description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/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&]uh1juhj`hhhj`hK'ubeh}(h]h ](jstructeh"]h$]h&]jjjj`jj`jjjuh1hhhhj7hNhNubj)}(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](j{)}(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&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK3hj`ubjy)}(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; };}hjasbah}(h]h ]h"]h$]h&]jQjRuh1jxhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK5hj`ubj{)}(h **Members**h]j)}(hj#ah]hMembers}(hj%ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!aubah}(h]h ]h"]h$]h&]uh1jzhp/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)}(hjBah]hstate}(hjDahhhNhNubah}(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.hhK1hjhjcubj)}(hhh]j{)}(h6physical buffer address (not accessible from main CPU)h]h6physical buffer address (not accessible from main CPU)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjchK>hjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchK>hj9aubj)}(h``dma_bytes`` size of DMA area h](j)}(h ``dma_bytes``h]j)}(hjch]h dma_bytes}(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.hhK?hjcubj)}(hhh]j{)}(hsize of DMA areah]hsize of DMA area}(hj dhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhK?hjdubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhK?hj9aubj)}(h,``dma_buffer_p`` runtime dma buffer pointer h](j)}(h``dma_buffer_p``h]j)}(hj)dh]h dma_buffer_p}(hj+dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'dubah}(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#dubj)}(hhh]j{)}(hruntime dma buffer pointerh]hruntime dma buffer pointer}(hjBdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj>dhK@hj?dubah}(h]h ]h"]h$]h&]uh1jhj#dubeh}(h]h ]h"]h$]h&]uh1jhj>dhK@hj9aubj)}(h'``active_tasks`` count of active tasks h](j)}(h``active_tasks``h]j)}(hjbdh]h active_tasks}(hjddhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`dubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKAhj\dubj)}(hhh]j{)}(hcount of active tasksh]hcount of active tasks}(hj{dhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjwdhKAhjxdubah}(h]h ]h"]h$]h&]uh1jhj\dubeh}(h]h ]h"]h$]h&]uh1jhjwdhKAhj9aubj)}(h#``total_tasks`` count of all tasks h](j)}(h``total_tasks``h]j)}(hjdh]h total_tasks}(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.hhKBhjdubj)}(hhh]j{)}(hcount of all tasksh]hcount of all tasks}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhKBhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKBhj9aubj)}(h0``task_seqno`` last task sequence number (!= 0) h](j)}(h``task_seqno``h]j)}(hjdh]h task_seqno}(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.hhKChjdubj)}(hhh]j{)}(h last task sequence number (!= 0)h]h last task sequence number (!= 0)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhKChjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhKChj9aubj)}(h``tasks`` list of all tasksh](j)}(h ``tasks``h]j)}(hj eh]htasks}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj eubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKChjeubj)}(hhh]j{)}(hlist of all tasksh]hlist of all tasks}(hj&ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKDhj#eubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj"ehKChj9aubeh}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_stream (C struct)c.snd_compr_streamhNtauh1hhj7hhhNhNubh)}(hhh](j)}(hsnd_compr_streamh]j )}(hstruct snd_compr_streamh](j`)}(hjch]hstruct}(hjgehhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcehhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKJubj")}(h h]h }(hjuehhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcehhhjtehKJubj3)}(hsnd_compr_streamh]j9)}(hjaeh]hsnd_compr_stream}(hjehhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjcehhhjtehKJubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj_ehhhjtehKJubah}(h]jZeah ](jmjneh"]h$]h&]jrjs)jthuh1jhjtehKJhj\ehhubjv)}(hhh]j{)}(hcompressed streamh]hcompressed stream}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK_hjehhubah}(h]h ]h"]h$]h&]uh1juhj\ehhhjtehKJubeh}(h]h ](jstructeh"]h$]h&]jjjjejjejjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh:}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKchjeubjy)}(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; };}hjesbah}(h]h ]h"]h$]h&]jQjRuh1jxhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKehjeubj{)}(h **Members**h]j)}(hjeh]hMembers}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKthjeubj)}(hhh](j)}(h``name`` device name h](j)}(h``name``h]j)}(hjfh]hname}(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.hhKahjfubj)}(hhh]j{)}(h device nameh]h device name}(hj/fhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+fhKahj,fubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhj+fhKahj fubj)}(h!``ops`` pointer to DSP callbacks h](j)}(h``ops``h]j)}(hjOfh]hops}(hjQfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMfubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKbhjIfubj)}(hhh]j{)}(hpointer to DSP callbacksh]hpointer to DSP callbacks}(hjhfhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdfhKbhjefubah}(h]h ]h"]h$]h&]uh1jhjIfubeh}(h]h ]h"]h$]h&]uh1jhjdfhKbhj fubj)}(h)``runtime`` pointer to runtime structure h](j)}(h ``runtime``h]j)}(hjfh]hruntime}(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.hhKchjfubj)}(hhh]j{)}(hpointer to runtime structureh]hpointer to runtime structure}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjfhKchjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKchj fubj)}(h``device`` device pointer h](j)}(h ``device``h]j)}(hjfh]hdevice}(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.hhKdhjfubj)}(hhh]j{)}(hdevice pointerh]hdevice pointer}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjfhKdhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhKdhj fubj)}(hI``error_work`` delayed work used when closing the stream due to an error h](j)}(h``error_work``h]j)}(hjfh]h error_work}(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.hhKehjfubj)}(hhh]j{)}(h9delayed work used when closing the stream due to an errorh]h9delayed work used when closing the stream due to an error}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghKehjgubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjghKehj fubj)}(h3``direction`` stream direction, playback/recording h](j)}(h ``direction``h]j)}(hj3gh]h direction}(hj5ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1guba?h}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKfhj-gubj)}(hhh]j{)}(h$stream direction, playback/recordingh]h$stream direction, playback/recording}(hjLghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjHghKfhjIgubah}(h]h ]h"]h$]h&]uh1jhj-gubeh}(h]h ]h"]h$]h&]uh1jhjHghKfhj fubj)}(h2``metadata_set`` metadata set flag, true when set h](j)}(h``metadata_set``h]j)}(hjlgh]h metadata_set}(hjnghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjgubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKghjfgubj)}(hhh]j{)}(h metadata set flag, true when seth]h metadata set flag, true when set}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghKghjgubah}(h]h ]h"]h$]h&]uh1jhjfgubeh}(h]h ]h"]h$]h&]uh1jhjghKghj fubj)}(hI``next_track`` has userspace signal next track transition, true when set h](j)}(h``next_track``h]j)}(hjgh]h next_track}(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.hhKhhjgubj)}(hhh]j{)}(h9has userspace signal next track transition, true when seth]h9has userspace signal next track transition, true when set}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghKhhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKhhj fubj)}(hE``partial_drain`` undergoing partial_drain for stream, true when set h](j)}(h``partial_drain``h]j)}(hjgh]h partial_drain}(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.hhKihjgubj)}(hhh]j{)}(h2undergoing partial_drain for stream, true when seth]h2undergoing partial_drain for stream, true when set}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghKihjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghKihj fubj)}(hB``pause_in_draining`` paused during draining state, true when set h](j)}(h``pause_in_draining``h]j)}(hjhh]hpause_in_draining}(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.hhKjhjhubj)}(hhh]j{)}(h+paused during draining state, true when seth]h+paused during draining state, true when set}(hj0hhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj,hhKjhj-hubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhj,hhKjhj fubj)}(h-``private_data`` pointer to DSP private data h](j)}(h``private_data``h]j)}(hjPhh]h private_data}(hjRhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNhubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKkhjJhubj)}(hhh]j{)}(hpointer to DSP private datah]hpointer to DSP private data}(hjihhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehhKkhjfhubah}(h]h ]h"]h$]h&]uh1jhjJhubeh}(h]h ]h"]h$]h&]uh1jhjehhKkhj fubj)}(h&``dma_buffer`` allocated buffer if anyh](j)}(h``dma_buffer``h]j)}(hjhh]h dma_buffer}(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.hhKkhjhubj)}(hhh]j{)}(hallocated buffer if anyh]hallocated buffer if any}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKlhjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhKkhj fubeh}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_compr_ops (C struct)c.snd_compr_opshNtauh1hhj7hhhNhNubh)}(hhh](j)}(h snd_compr_opsh]j )}(hstruct snd_compr_opsh](j`)}(hjch]hstruct}(hjhhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKrubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhhjhhKrubj3)}(h snd_compr_opsh]j9)}(hjhh]h snd_compr_ops}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhhjhhKrubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhhjhhKrubah}(h]jhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhhKrhjhhhubjv)}(hhh]j{)}(hcompressed path DSP operationsh]hcompressed path DSP operations}(hj%ihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhK}hj"ihhubah}(h]h ]h"]h$]h&]uh1juhjhhhhjhhKrubeh}(h]h ](jstructeh"]h$]h&]jjjj=ijj=ijjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjIihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEiubh:}(hjEihhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjAiubjy)}(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; };}hjbisbah}(h]h ]h"]h$]h&]jQjRuh1jxhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjAiubj{)}(h **Members**h]j)}(hjsih]hMembers}(hjuihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqiubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjAiubj)}(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)}(hjih]hopen}(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]j{)}(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}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/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&]uh1jhjihKhjiubj)}(h0``free`` Close the compressed stream, mandatory h](j)}(h``free``h]j)}(hjih]hfree}(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]j{)}(h&Close the compressed stream, mandatoryh]h&Close the compressed stream, mandatory}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjihKhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihKhjiubj)}(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)}(hjjh]h set_params}(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.hhKhjiubj)}(hhh]j{)}(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}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjiubj)}(h8``get_params`` retrieve the codec parameters, mandatory h](j)}(h``get_params``h]j)}(hj?jh]h get_params}(hjAjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=jubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj9jubj)}(hhh]j{)}(h(retrieve the codec parameters, mandatoryh]h(retrieve the codec parameters, mandatory}(hjXjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjTjhKhjUjubah}(h]h ]h"]h$]h&]uh1jhj9jubeh}(h]h ]h"]h$]h&]uh1jhjTjhKhjiubj)}(h6``set_metadata`` Set the metadata values for a stream h](j)}(h``set_metadata``h]j)}(hjxjh]h set_metadata}(hjzjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvjubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjrjubj)}(hhh]j{)}(h$Set the metadata values for a streamh]h$Set the metadata values for a stream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjrjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjiubj)}(hE``get_metadata`` retrieves the requested metadata values from stream h](j)}(h``get_metadata``h]j)}(hjjh]h get_metadata}(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]j{)}(h3retrieves the requested metadata values from streamh]h3retrieves the requested metadata values from stream}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjiubj)}(hb``trigger`` Trigger operations like start, pause, resume, drain, stop. This callback is mandatory h](j)}(h ``trigger``h]j)}(hjjh]htrigger}(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]j{)}(hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatoryh]hUTrigger operations like start, pause, resume, drain, stop. This callback is mandatory}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjiubj)}(h@``pointer`` Retrieve current h/w pointer information. Mandatory h](j)}(h ``pointer``h]j)}(hj$kh]hpointer}(hj&khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"kubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubj)}(hhh]j{)}(h3Retrieve current h/w pointer information. Mandatoryh]h3Retrieve current h/w pointer information. Mandatory}(hj=khhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9khKhj:kubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhj9khKhjiubj)}(hh``copy`` Copy the compressed data to/from userspace, Optional Can't be implemented if DSP supports mmap h](j)}(h``copy``h]j)}(hj]kh]hcopy}(hj_khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[kubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjWkubj)}(hhh]j{)}(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}(hjvkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjskubah}(h]h ]h"]h$]h&]uh1jhjWkubeh}(h]h ]h"]h$]h&]uh1jhjrkhKhjiubj)}(h,``mmap`` DSP mmap method to mmap DSP memory h](j)}(h``mmap``h]j)}(hjkh]hmmap}(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]j{)}(h"DSP mmap method to mmap DSP memoryh]h"DSP mmap method to mmap DSP memory}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjkhKhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKhjiubj)}(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)}(hjkh]hack}(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]j{)}(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}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKhjiubj)}(h2``get_caps`` Retrieve DSP capabilities, mandatory h](j)}(h ``get_caps``h]j)}(hj lh]hget_caps}(hj lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjlubj)}(hhh]j{)}(h$Retrieve DSP capabilities, mandatoryh]h$Retrieve DSP capabilities, mandatory}(hj#lhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjlhKhj lubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKhjiubj)}(hI``get_codec_caps`` Retrieve capabilities for a specific codec, mandatory h](j)}(h``get_codec_caps``h]j)}(hjClh]hget_codec_caps}(hjElhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAlubah}(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]j{)}(h5Retrieve capabilities for a specific codec, mandatoryh]h5Retrieve capabilities for a specific codec, mandatory}(hj\lhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjXlhKhjYlubah}(h]h ]h"]h$]h&]uh1jhj=lubeh}(h]h ]h"]h$]h&]uh1jhjXlhKhjiubj)}(hJ``task_create`` Create a set of input/output buffers for accel operations h](j)}(h``task_create``h]j)}(hj|lh]h task_create}(hj~lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzlubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjvlubj)}(hhh]j{)}(h9Create a set of input/output buffers for accel operationsh]h9Create a set of input/output buffers for accel operations}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjlhKhjlubah}(h]h ]h"]h$]h&]uh1jhjvlubeh}(h]h ]h"]h$]h&]uh1jhjlhKhjiubj)}(h9``task_start`` Start (queue) a task for accel operations h](j)}(h``task_start``h]j)}(hjlh]h task_start}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjlubj)}(hhh]j{)}(h)Start (queue) a task for accel operationsh]h)Start (queue) a task for accel operations}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjlhKhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKhjiubj)}(h9``task_stop`` Stop (dequeue) a task for accel operations h](j)}(h ``task_stop``h]j)}(hjlh]h task_stop}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhjlubj)}(hhh]j{)}(h*Stop (dequeue) a task for accel operationsh]h*Stop (dequeue) a task for accel operations}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjmhKhjmubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjmhKhjiubj)}(hE``task_free`` Free a set of input/output buffers for accel operationsh](j)}(h ``task_free``h]j)}(hj'mh]h task_free}(hj)mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%mubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj!mubj)}(hhh]j{)}(h7Free a set of input/output buffers for accel operationsh]h7Free a set of input/output buffers for accel operations}(hj@mhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhKhj=mubah}(h]h ]h"]h$]h&]uh1jhj!mubeh}(h]h ]h"]h$]h&]uh1jhj(struct snd_compr_stream *stream, struct snd_dma_buffer *bufp)h](jZ)}(hstruct snd_compr_stream *streamh](j`)}(hjch]hstruct}(hjrhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj rubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj rubh)}(hhh]j9)}(hsnd_compr_streamh]hsnd_compr_stream}(hj.rhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0rmodnameN classnameNjj)}j]j)}jjqsbc.snd_compr_set_runtime_bufferasbuh1hhj rubj")}(h h]h }(hjNrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj rubj)}(hjh]h*}(hj\rhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj rubj9)}(hstreamh]hstream}(hjirhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj rubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjrubjZ)}(hstruct snd_dma_buffer *bufph](j`)}(hjch]hstruct}(hjrhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~rubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~rubh)}(hhh]j9)}(hsnd_dma_bufferh]hsnd_dma_buffer}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjrubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjrmodnameN classnameNjj)}j]jJrc.snd_compr_set_runtime_bufferasbuh1hhj~rubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~rubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~rubj9)}(hbufph]hbufp}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~rubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjrubeh}(h]h ]h"]h$]h&]jQjRuh1jShjqhhhjqhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjqhhhjqhMubah}(h]jqah ](jmjneh"]h$]h&]jrjs)jthuh1jhjqhMhjqhhubjv)}(hhh]j{)}(hSet the Compress runtime bufferh]hSet the Compress runtime buffer}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjshhubah}(h]h ]h"]h$]h&]uh1juhjqhhhjqhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhj7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj%sh]h Parameters}(hj'shhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#subah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjsubj)}(hhh](j)}(h;``struct snd_compr_stream *stream`` compress stream to set h](j)}(h#``struct snd_compr_stream *stream``h]j)}(hjDsh]hstruct snd_compr_stream *stream}(hjFshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBsubah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhj>subj)}(hhh]j{)}(hcompress stream to seth]hcompress stream to set}(hj]shhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjYshMhjZsubah}(h]h ]h"]h$]h&]uh1jhj>subeh}(h]h ]h"]h$]h&]uh1jhjYshMhj;subj)}(hF``struct snd_dma_buffer *bufp`` the buffer information, NULL to clear h](j)}(h``struct snd_dma_buffer *bufp``h]j)}(hj}sh]hstruct snd_dma_buffer *bufp}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{subah}(h]h ]h"]h$]h&]uh1jhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjwsubj)}(hhh]j{)}(h%the buffer information, NULL to clearh]h%the buffer information, NULL to clear}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjshMhjsubah}(h]h ]h"]h$]h&]uh1jhjwsubeh}(h]h ]h"]h$]h&]uh1jhjshMhj;subeh}(h]h ]h"]h$]h&]uh1jhjsubj{)}(h**Description**h]j)}(hjsh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjsubj{)}(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 }(hjshhhNhNubj)}(h**bufp**h]hbufp}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubhA is non-NULL. Otherwise it clears the current buffer information.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhp/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:92: ./include/sound/compress_driver.hhMhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj7hhhNhNubeh}(h]compress-offload-apiah ]h"]compress offload apiah$]h&]uh1hhj7hhhhhKXubeh}(h]compress-offloadah ]h"]compress offloadah$]h&]uh1hhhhhhhhKUubh)}(hhh](h)}(hASoCh]hASoC}(hj thhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhK_ubh)}(hhh](h)}(h ASoC Core APIh]h ASoC Core API}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhKbubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_find_dai (C function)c.snd_soc_find_daihNtauh1hhjthhhNhNubh)}(hhh](j)}(hTstruct snd_soc_dai * snd_soc_find_dai (const struct snd_soc_dai_link_component *dlc)h]j )}(hRstruct snd_soc_dai *snd_soc_find_dai(const struct snd_soc_dai_link_component *dlc)h](j`)}(hjch]hstruct}(hjAthhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj=thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj")}(h h]h }(hjOthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=thhhjNthMubh)}(hhh]j9)}(h snd_soc_daih]h snd_soc_dai}(hj`thhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]tubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbtmodnameN classnameNjj)}j]j)}jsnd_soc_find_daisbc.snd_soc_find_daiasbuh1hhj=thhhjNthMubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=thhhjNthMubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=thhhjNthMubj3)}(hsnd_soc_find_daih]j9)}(hj~th]hsnd_soc_find_dai}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj=thhhjNthMubjT)}(h.(const struct snd_soc_dai_link_component *dlc)h]jZ)}(h,const struct snd_soc_dai_link_component *dlch](j`)}(hjph]hconst}(hjthhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjtubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtubj`)}(hjch]hstruct}(hjthhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjtubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtubh)}(hhh]j9)}(hsnd_soc_dai_link_componenth]hsnd_soc_dai_link_component}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j|tc.snd_soc_find_daiasbuh1hhjtubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtubj)}(hjh]h*}(hj uhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj9)}(hdlch]hdlc}(hj-uhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjtubah}(h]h ]h"]h$]h&]jQjRuh1jShj=thhhjNthMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj9thhhjNthMubah}(h]j4tah ](jmjneh"]h$]h&]jrjs)jthuh1jhjNthMhj6thhubjv)}(hhh]j{)}(hFind a registered DAIh]hFind a registered DAI}(hjWuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjTuhhubah}(h]h ]h"]h$]h&]uh1juhj6thhhjNthMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjoujjoujjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjyuh]h Parameters}(hj{uhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwuubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsuubj)}(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)}(hjuh]h,const struct snd_soc_dai_link_component *dlc}(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.chMhjuubj)}(hhh]j{)}(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}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMhjuubah}(h]h ]h"]h$]h&]uh1jhjsuubj{)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsuubj{)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsuubj{)}(h **Return**h]j)}(hjuh]hReturn}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsuubj{)}(h%pointer of DAI, or NULL if not found.h]h%pointer of DAI, or NULL if not found.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjsuubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_remove_pcm_runtime (C function)c.snd_soc_remove_pcm_runtimehNtauh1hhjthhhNhNubh)}(hhh](j)}(h\void snd_soc_remove_pcm_runtime (struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h]j )}(h[void snd_soc_remove_pcm_runtime(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](j)}(hvoidh]hvoid}(hj?vhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;vhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMtubj")}(h h]h }(hjNvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;vhhhjMvhMtubj3)}(hsnd_soc_remove_pcm_runtimeh]j9)}(hsnd_soc_remove_pcm_runtimeh]hsnd_soc_remove_pcm_runtime}(hj`vhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj\vubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj;vhhhjMvhMtubjT)}(h<(struct snd_soc_card *card, struct snd_soc_pcm_runtime *rtd)h](jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hj|vhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjxvubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxvubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjvhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjvmodnameN classnameNjj)}j]j)}jjbvsbc.snd_soc_remove_pcm_runtimeasbuh1hhjxvubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxvubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxvubj9)}(hcardh]hcard}(hjvhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxvubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjtvubjZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjvhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjvubj")}(h h]h }(hjvhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjvubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj whhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj wubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjwmodnameN classnameNjj)}j]jvc.snd_soc_remove_pcm_runtimeasbuh1hhjvubj")}(h h]h }(hj*whhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjvubj)}(hjh]h*}(hj8whhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvubj9)}(hrtdh]hrtd}(hjEwhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjtvubeh}(h]h ]h"]h$]h&]jQjRuh1jShj;vhhhjMvhMtubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj7vhhhjMvhMtubah}(h]j2vah ](jmjneh"]h$]h&]jrjs)jthuh1jhjMvhMthj4vhhubjv)}(hhh]j{)}(hRemove a pcm_runtime from cardh]hRemove a pcm_runtime from card}(hjowhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMthjlwhhubah}(h]h ]h"]h$]h&]uh1juhj4vhhhjMvhMtubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMxhjwubj)}(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)}(hjwh]hstruct snd_soc_card *card}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMuhjwubj)}(hhh]j{)}(h*The ASoC card to which the pcm_runtime hash]h*The ASoC card to which the pcm_runtime has}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjwhMuhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMuhjwubj)}(h>``struct snd_soc_pcm_runtime *rtd`` The pcm_runtime to remove h](j)}(h#``struct snd_soc_pcm_runtime *rtd``h]j)}(hjwh]hstruct snd_soc_pcm_runtime *rtd}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMvhjwubj)}(hhh]j{)}(hThe pcm_runtime to removeh]hThe pcm_runtime to remove}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjwhMvhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhMvhjwubeh}(h]h ]h"]h$]h&]uh1jhjwubj{)}(h**Description**h]j)}(hj$xh]h Description}(hj&xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"xubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMxhjwubj{)}(h7This function removes a pcm_runtime from the ASoC card.h]h7This function removes a pcm_runtime from the ASoC card.}(hj:xhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMwhjwubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_add_pcm_runtime (C function)c.snd_soc_add_pcm_runtimehNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_add_pcm_runtime (struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h]j )}(hYint snd_soc_add_pcm_runtime(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](j)}(hinth]hint}(hjixhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjexhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj")}(h h]h }(hjxxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjexhhhjwxhMubj3)}(hsnd_soc_add_pcm_runtimeh]j9)}(hsnd_soc_add_pcm_runtimeh]hsnd_soc_add_pcm_runtime}(hjxhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjexhhhjwxhMubjT)}(h>(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link)h](jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hjxhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjxubj")}(h h]h }(hjxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjxhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjxmodnameN classnameNjj)}j]j)}jjxsbc.snd_soc_add_pcm_runtimeasbuh1hhjxubj")}(h h]h }(hjxhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj)}(hjh]h*}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj9)}(hcardh]hcard}(hjxhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubjZ)}(h!struct snd_soc_dai_link *dai_linkh](j`)}(hjch]hstruct}(hjyhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjyubj")}(h h]h }(hj%yhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjyubh)}(hhh]j9)}(hsnd_soc_dai_linkh]hsnd_soc_dai_link}(hj6yhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8ymodnameN classnameNjj)}j]jxc.snd_soc_add_pcm_runtimeasbuh1hhjyubj")}(h h]h }(hjTyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjyubj)}(hjh]h*}(hjbyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj9)}(hdai_linkh]hdai_link}(hjoyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjyubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjxubeh}(h]h ]h"]h$]h&]jQjRuh1jShjexhhhjwxhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjaxhhhjwxhMubah}(h]j\xah ](jmjneh"]h$]h&]jrjs)jthuh1jhjwxhMhj^xhhubjv)}(hhh]j{)}(h*Add a pcm_runtime dynamically via dai_linkh]h*Add a pcm_runtime dynamically via dai_link}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyhhubah}(h]h ]h"]h$]h&]uh1juhj^xhhhjwxhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjyjjyjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjyh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj)}(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)}(hjyh]hstruct snd_soc_card *card}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj)}(hhh]j{)}(h/The ASoC card to which the pcm_runtime is addedh]h/The ASoC card to which the pcm_runtime is added}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjyubj)}(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)}(hjzh]h!struct snd_soc_dai_link *dai_link}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj zubj)}(hhh]j{)}(h The DAI link to find pcm_runtimeh]h The DAI link to find pcm_runtime}(hj,zhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj(zhMhj)zubah}(h]h ]h"]h$]h&]uh1jhj zubeh}(h]h ]h"]h$]h&]uh1jhj(zhMhjyubeh}(h]h ]h"]h$]h&]uh1jhjyubj{)}(h**Description**h]j)}(hjNzh]h Description}(hjPzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLzubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj{)}(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.}(hjdzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj{)}(h**Note**h]j)}(hjuzh]hNote}(hjwzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjszubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubj{)}(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.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_runtime_set_dai_fmt (C function)c.snd_soc_runtime_set_dai_fmthNtauh1hhjthhhNhNubh)}(hhh](j)}(hWint snd_soc_runtime_set_dai_fmt (struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h]j )}(hVint snd_soc_runtime_set_dai_fmt(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](j)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzhhhjzhMubj3)}(hsnd_soc_runtime_set_dai_fmth]j9)}(hsnd_soc_runtime_set_dai_fmth]hsnd_soc_runtime_set_dai_fmt}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjzhhhjzhMubjT)}(h7(struct snd_soc_pcm_runtime *rtd, unsigned int dai_fmt)h](jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjzhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjzubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{modnameN classnameNjj)}j]j)}jjzsbc.snd_soc_runtime_set_dai_fmtasbuh1hhjzubj")}(h h]h }(hj5{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzubj)}(hjh]h*}(hjC{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzubj9)}(hrtdh]hrtd}(hjP{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hunsigned int dai_fmth](j)}(hunsignedh]hunsigned}(hji{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje{ubj")}(h h]h }(hjw{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hje{ubj)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje{ubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hje{ubj9)}(hdai_fmth]hdai_fmt}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hje{ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubeh}(h]h ]h"]h$]h&]jQjRuh1jShjzhhhjzhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjzhhhjzhMubah}(h]jzah ](jmjneh"]h$]h&]jrjs)jthuh1jhjzhMhjzhhubjv)}(hhh]j{)}(h)Change DAI link format for a ASoC runtimeh]h)Change DAI link format for a ASoC runtime}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{hhubah}(h]h ]h"]h$]h&]uh1juhjzhhhjzhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubj)}(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)}(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:100: ./sound/soc/soc-core.chMhj|ubj)}(hhh]j{)}(h;The runtime for which the DAI link format should be changedh]h;The runtime for which the DAI link format should be changed}(hj%|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj!|hMhj"|ubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhj!|hMhj|ubj)}(h1``unsigned int dai_fmt`` The new DAI link format h](j)}(h``unsigned int dai_fmt``h]j)}(hjE|h]hunsigned int dai_fmt}(hjG|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjC|ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj?|ubj)}(hhh]j{)}(hThe new DAI link formath]hThe new DAI link format}(hj^|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZ|hMhj[|ubah}(h]h ]h"]h$]h&]uh1jhj?|ubeh}(h]h ]h"]h$]h&]uh1jhjZ|hMhj|ubeh}(h]h ]h"]h$]h&]uh1jhj{ubj{)}(h**Description**h]j)}(hj|h]h Description}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~|ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubj{)}(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.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubj{)}(h**Note**h]j)}(hj|h]hNote}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubj{)}(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.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_set_dmi_name (C function)c.snd_soc_set_dmi_namehNtauh1hhjthhhNhNubh)}(hhh](j)}(h4int snd_soc_set_dmi_name (struct snd_soc_card *card)h]j )}(h3int snd_soc_set_dmi_name(struct snd_soc_card *card)h](j)}(hinth]hint}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmubj")}(h h]h }(hj }hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|hhhj }hMmubj3)}(hsnd_soc_set_dmi_nameh]j9)}(hsnd_soc_set_dmi_nameh]hsnd_soc_set_dmi_name}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj|hhhj }hMmubjT)}(h(struct snd_soc_card *card)h]jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hj8}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj4}ubj")}(h h]h }(hjE}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4}ubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjV}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjS}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjX}modnameN classnameNjj)}j]j)}jj}sbc.snd_soc_set_dmi_nameasbuh1hhj4}ubj")}(h h]h }(hjv}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj4}ubj)}(hjh]h*}(hj}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4}ubj9)}(hcardh]hcard}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj0}ubah}(h]h ]h"]h$]h&]jQjRuh1jShj|hhhj }hMmubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj|hhhj }hMmubah}(h]j|ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj }hMmhj|hhubjv)}(hhh]j{)}(hRegister DMI names to cardh]hRegister DMI names to card}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMmhj}hhubah}(h]h ]h"]h$]h&]uh1juhj|hhhj }hMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}jj}jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj}h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMqhj}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.chMnhj}ubj)}(hhh]j{)}(hThe card to register DMI namesh]hThe card to register DMI names}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj~hMnhj~ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj~hMnhj}ubah}(h]h ]h"]h$]h&]uh1jhj}ubj{)}(h**Description**h]j)}(hj7~h]h Description}(hj9~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5~ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMphj}ubj{)}(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.}(hjM~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMohj}ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMzhj}ubj{)}(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”.}(hjk~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj}ubj{)}(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.}(hjz~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj}ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chMhj}ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_cnew (C function)c.snd_soc_cnewhNtauh1hhjthhhNhNubh)}(hhh](j)}(hstruct snd_kcontrol * snd_soc_cnew (const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h]j )}(hstruct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](j`)}(hjch]hstruct}(hj~hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM{ ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~hhhj~hM{ ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j)}j snd_soc_cnewsbc.snd_soc_cnewasbuh1hhj~hhhj~hM{ ubj")}(h h]h }(hj~hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~hhhj~hM{ ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~hhhj~hM{ ubj3)}(h snd_soc_cnewh]j9)}(hj~h]h snd_soc_cnew}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj~hhhj~hM{ ubjT)}(ha(const struct snd_kcontrol_new *_template, void *data, const char *long_name, const char *prefix)h](jZ)}(h(const struct snd_kcontrol_new *_templateh](j`)}(hjph]hconst}(hj2hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj.ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj`)}(hjch]hstruct}(hjMhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj.ubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubh)}(hhh]j9)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmmodnameN classnameNjj)}j]j~c.snd_soc_cnewasbuh1hhj.ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj9)}(h _templateh]h _template}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubjZ)}(h void *datah](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubjZ)}(hconst char *long_nameh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h long_nameh]h long_name}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubjZ)}(hconst char *prefixh](j`)}(hjph]hconst}(hj\hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjXubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj)}(hcharh]hchar}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj9)}(hprefixh]hprefix}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj~hhhj~hM{ ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj~hhhj~hM{ ubah}(h]j~ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj~hM{ hj~hhubjv)}(hhh]j{)}(hcreate new controlh]hcreate new control}(hjʀhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhj~hhhj~hM{ ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(h>``const struct snd_kcontrol_new *_template`` control template h](j)}(h,``const struct snd_kcontrol_new *_template``h]j)}(hj h]h(const struct snd_kcontrol_new *_template}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM| hjubj)}(hhh]j{)}(hcontrol templateh]hcontrol template}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hM| hj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hM| hjubj)}(h$``void *data`` control private data h](j)}(h``void *data``h]j)}(hjDh]h void *data}(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]j{)}(hcontrol private datah]hcontrol private data}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjYhM} hjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhM} hjubj)}(h,``const char *long_name`` control long name h](j)}(h``const char *long_name``h]j)}(hj}h]hconst char *long_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM~ hjwubj)}(hhh]j{)}(hcontrol long nameh]hcontrol long name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM~ hjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjhM~ hjubj)}(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.chM hjubj)}(hhh]j{)}(hcontrol name prefixh]hcontrol name prefix}(hjρhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjˁhM hj́ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjˁhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj{)}(h3Create a new mixer control from a template control.h]h3Create a new mixer control from a template control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj{)}(h"Returns 0 for success, else error.h]h"Returns 0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_add_component_controls (C function) c.snd_soc_add_component_controlshNtauh1hhjthhhNhNubh)}(hhh](j)}(hint snd_soc_add_component_controls (struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h]j )}(hint snd_soc_add_component_controls(struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAhhhjShM ubj3)}(hsnd_soc_add_component_controlsh]j9)}(hsnd_soc_add_component_controlsh]hsnd_soc_add_component_controls}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjAhhhjShM ubjT)}(hi(struct snd_soc_component *component, const struct snd_kcontrol_new *controls, unsigned int num_controls)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsb c.snd_soc_add_component_controlsasbuh1hhj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj)}(hjh]h*}(hj΂hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj9)}(h componenth]h component}(hjۂhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(h'const struct snd_kcontrol_new *controlsh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j c.snd_soc_add_component_controlsasbuh1hhjubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcontrolsh]hcontrols}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hunsigned int num_controlsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{ubj9)}(h num_controlsh]h num_controls}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubeh}(h]h ]h"]h$]h&]jQjRuh1jShjAhhhjShM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=hhhjShM ubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShM hj:hhubjv)}(hhh]j{)}(h(Add an array of controls to a component.h]h(Add an array of controls to a component.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhj:hhhjShM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(hE``struct snd_soc_component *component`` Component to add controls to h](j)}(h'``struct snd_soc_component *component``h]j)}(hj"h]h#struct snd_soc_component *component}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]j{)}(hComponent to add controls toh]hComponent to add controls to}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj7hM hj8ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj7hM hjubj)}(hE``const struct snd_kcontrol_new *controls`` Array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hj[h]h'const struct snd_kcontrol_new *controls}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjUubj)}(hhh]j{)}(hArray of controls to addh]hArray of controls to add}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjphM hjqubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjphM hjubj)}(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]j{)}(hNumber of elements in the arrayh]hNumber of elements in the array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjτh]hReturn}(hjфhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̈́ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj{)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_add_card_controls (C function)c.snd_soc_add_card_controlshNtauh1hhjthhhNhNubh)}(hhh](j)}(hxint snd_soc_add_card_controls (struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h]j )}(hwint snd_soc_add_card_controls(struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhj"hM ubj3)}(hsnd_soc_add_card_controlsh]j9)}(hsnd_soc_add_card_controlsh]hsnd_soc_add_card_controls}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj"hM ubjT)}(hZ(struct snd_soc_card *soc_card, const struct snd_kcontrol_new *controls, int num_controls)h](jZ)}(hstruct snd_soc_card *soc_cardh](j`)}(hjch]hstruct}(hjQhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjMubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jj7sbc.snd_soc_add_card_controlsasbuh1hhjMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj9)}(hsoc_cardh]hsoc_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubjZ)}(h'const struct snd_kcontrol_new *controlsh](j`)}(hjph]hconst}(hjÅhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjЅhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjޅhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_add_card_controlsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcontrolsh]hcontrols}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubjZ)}(hint num_controlsh](j)}(hinth]hint}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj")}(h h]h }(hj\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJubj9)}(h num_controlsh]h num_controls}(hjjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj"hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj"hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj"hM hj hhubjv)}(hhh]j{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhj hhhj"hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/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 *soc_card`` SoC card to add controls to h](j)}(h!``struct snd_soc_card *soc_card``h]j)}(hjՆh]hstruct snd_soc_card *soc_card}(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]j{)}(hSoC card to add controls toh]hSoC card to add controls to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjφubeh}(h]h ]h"]h$]h&]uh1jhjhM hj̆ubj)}(hE``const struct snd_kcontrol_new *controls`` array of controls to add h](j)}(h+``const struct snd_kcontrol_new *controls``h]j)}(hjh]h'const struct snd_kcontrol_new *controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]j{)}(harray of controls to addh]harray of controls to add}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj#hM hj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hM hj̆ubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hjGh]hint num_controls}(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:100: ./sound/soc/soc-core.chM hjAubj)}(hhh]j{)}(hnumber of elements in the arrayh]hnumber of elements in the array}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj\hM hj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hM hj̆ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj{)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_add_dai_controls (C function)c.snd_soc_add_dai_controlshNtauh1hhjthhhNhNubh)}(hhh](j)}(hqint snd_soc_add_dai_controls (struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h]j )}(hpint snd_soc_add_dai_controls(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](j)}(hinth]hint}(hjLJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjÇhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj")}(h h]h }(hjևhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjÇhhhjՇhM ubj3)}(hsnd_soc_add_dai_controlsh]j9)}(hsnd_soc_add_dai_controlsh]hsnd_soc_add_dai_controls}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjÇhhhjՇhM ubjT)}(hT(struct snd_soc_dai *dai, const struct snd_kcontrol_new *controls, int num_controls)h](jZ)}(hstruct snd_soc_dai *daih](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_daih]h snd_soc_dai}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jjsbc.snd_soc_add_dai_controlsasbuh1hhjubj")}(h h]h }(hjBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdaih]hdai}(hj]hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h'const struct snd_kcontrol_new *controlsh](j`)}(hjph]hconst}(hjvhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjrubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjrubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjrubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjrubh)}(hhh]j9)}(hsnd_kcontrol_newh]hsnd_kcontrol_new}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j>c.snd_soc_add_dai_controlsasbuh1hhjrubj")}(h h]h }(hj͈hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjrubj)}(hjh]h*}(hjۈhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrubj9)}(hcontrolsh]hcontrols}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjrubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint num_controlsh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(h num_controlsh]h num_controls}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjÇhhhjՇhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjՇhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjՇhM hjhhubjv)}(hhh]j{)}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjDhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjՇhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_jj_jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjih]h Parameters}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjcubj)}(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]j{)}(hDAI to add controls toh]hDAI to add controls to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM 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)}(hjh]h'const struct snd_kcontrol_new *controls}(hjÉhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]j{)}(harray of controls to addh]harray of controls to add}(hjډhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj։hM hj׉ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj։hM hjubj)}(h5``int num_controls`` number of elements in the array h](j)}(h``int num_controls``h]j)}(hjh]hint num_controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]j{)}(hnumber of elements in the arrayh]hnumber of elements in the array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubeh}(h]h ]h"]h$]h&]uh1jhjcubj{)}(h**Description**h]j)}(hj5h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjcubj{)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_card (C function)c.snd_soc_register_cardhNtauh1hhjthhhNhNubh)}(hhh](j)}(h5int snd_soc_register_card (struct snd_soc_card *card)h]j )}(h4int snd_soc_register_card(struct snd_soc_card *card)h](j)}(hinth]hint}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjvhhhf/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 ]j.ah"]h$]h&]uh1j!hjvhhhjhM ubj3)}(hsnd_soc_register_cardh]j9)}(hsnd_soc_register_cardh]hsnd_soc_register_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjvhhhjhM ubjT)}(h(struct snd_soc_card *card)h]jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjĊhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjՊhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjҊubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj׊modnameN classnameNjj)}j]j)}jjsbc.snd_soc_register_cardasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjvhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjrhhhjhM ubah}(h]jmah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjohhubjv)}(hhh]j{)}(h"Register a card with the ASoC coreh]h"Register a card with the ASoC core}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj7hhubah}(h]h ]h"]h$]h&]uh1juhjohhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjRjjRjjjuh1hhhhjthNhNubj)}(h@**Parameters** ``struct snd_soc_card *card`` Card to registerh](j{)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjVubj)}(hhh]j)}(h.``struct snd_soc_card *card`` Card to registerh](j)}(h``struct snd_soc_card *card``h]j)}(hj{h]hstruct snd_soc_card *card}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjuubj)}(hhh]j{)}(hCard to registerh]hCard to register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhM hjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_card (C function)c.snd_soc_unregister_cardhNtauh1hhjthhhNhNubh)}(hhh](j)}(h8void snd_soc_unregister_card (struct snd_soc_card *card)h]j )}(h7void snd_soc_unregister_card(struct snd_soc_card *card)h](j)}(hvoidh]hvoid}(hjՋhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjыhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM& ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjыhhhjhM& ubj3)}(hsnd_soc_unregister_cardh]j9)}(hsnd_soc_unregister_cardh]hsnd_soc_unregister_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjыhhhjhM& ubjT)}(h(struct snd_soc_card *card)h]jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjsbc.snd_soc_unregister_cardasbuh1hhjubj")}(h h]h }(hjPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubah}(h]h ]h"]h$]h&]jQjRuh1jShjыhhhjhM& ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj͋hhhjhM& ubah}(h]jȋah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM& hjʋhhubjv)}(hhh]j{)}(h$Unregister a card with the ASoC coreh]h$Unregister a card with the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM& hjhhubah}(h]h ]h"]h$]h&]uh1juhjʋhhhjhM& ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(hB**Parameters** ``struct snd_soc_card *card`` Card to unregisterh](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM* hjubj)}(hhh]j)}(h0``struct snd_soc_card *card`` Card to unregisterh](j)}(h``struct snd_soc_card *card``h]j)}(hj֌h]hstruct snd_soc_card *card}(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]j{)}(hCard to unregisterh]hCard to unregister}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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͌ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_register_dai (C function)c.snd_soc_register_daihNtauh1hhjthhhNhNubh)}(hhh](j)}(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]j )}(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](j`)}(hjch]hstruct}(hj0hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj,hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,hhhj=hM ubh)}(hhh]j9)}(h snd_soc_daih]h snd_soc_dai}(hjOhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]j)}jsnd_soc_register_daisbc.snd_soc_register_daiasbuh1hhj,hhhj=hM ubj")}(h h]h }(hjphhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,hhhj=hM ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,hhhj=hM ubj3)}(hsnd_soc_register_daih]j9)}(hjmh]hsnd_soc_register_dai}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj,hhhj=hM ubjT)}(ha(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, bool legacy_dai_naming)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjȍhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjōubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjʍmodnameN classnameNjj)}j]jkc.snd_soc_register_daiasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h"struct snd_soc_dai_driver *dai_drvh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]jkc.snd_soc_register_daiasbuh1hhjubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdai_drvh]hdai_drv}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hbool legacy_dai_namingh](j)}(hj_h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hlegacy_dai_namingh]hlegacy_dai_naming}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj,hhhj=hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj(hhhj=hM ubah}(h]j#ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj=hM hj%hhubjv)}(hhh]j{)}(h/Register a DAI dynamically & create its widgetsh]h/Register a DAI dynamically & create its widgets}(hjώhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhj%hhhj=hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj ubj)}(hhh]j{)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj%hM hj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hM hjubj)}(hE``struct snd_soc_dai_driver *dai_drv`` DAI driver to use for the DAI h](j)}(h&``struct snd_soc_dai_driver *dai_drv``h]j)}(hjIh]h"struct snd_soc_dai_driver *dai_drv}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjCubj)}(hhh]j{)}(hDAI driver to use for the DAIh]hDAI driver to use for the DAI}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^hM hj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hM hjubj)}(ho``bool legacy_dai_naming`` if ``true``, use legacy single-name format; if ``false``, use multiple-name format; h](j)}(h``bool legacy_dai_naming``h]j)}(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 hj|ubj)}(hhh]j{)}(hSif ``true``, use legacy single-name format; if ``false``, use multiple-name format;h](hif }(hjhhhNhNubj)}(h``true``h]htrue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh$, use legacy single-name format; if }(hjhhhNhNubj)}(h ``false``h]hfalse}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, use multiple-name format;}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhf/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 hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj{)}(hTopology can use this API to register DAIs when probing a component. These DAIs's widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.h]hTopology can use this API to register DAIs when probing a component. These DAIs’s widgets will be freed in the card cleanup and the DAIs will be freed in the component cleanup.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_unregister_dais (C function)c.snd_soc_unregister_daishNtauh1hhjthhhNhNubh)}(hhh](j)}(hBvoid snd_soc_unregister_dais (struct snd_soc_component *component)h]j )}(hAvoid snd_soc_unregister_dais(struct snd_soc_component *component)h](j)}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#hhhj5hM ubj3)}(hsnd_soc_unregister_daish]j9)}(hsnd_soc_unregister_daish]hsnd_soc_unregister_dais}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjDubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj#hhhj5hM ubjT)}(h%(struct snd_soc_component *component)h]jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjdhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj`ubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjJsbc.snd_soc_unregister_daisasbuh1hhj`ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj\ubah}(h]h ]h"]h$]h&]jQjRuh1jShj#hhhj5hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj5hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj5hM hjhhubjv)}(hhh]j{)}(h"Unregister DAIs from the ASoC coreh]h"Unregister DAIs from the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj5hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(hq**Parameters** ``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh]j)}(h_``struct snd_soc_component *component`` The component for which the DAIs should be unregisteredh](j)}(h'``struct snd_soc_component *component``h]j)}(hj(h]h#struct snd_soc_component *component}(hj*hhhNhNubah}(h]h ]h"]h$]h&]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]j{)}(h7The component for which the DAIs should be unregisteredh]h7The component for which the DAIs should be unregistered}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj=hM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_register_dais (C function)c.snd_soc_register_daishNtauh1hhjthhhNhNubh)}(hhh](j)}(hqint snd_soc_register_dais (struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h]j )}(hpint snd_soc_register_dais(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~hhhjhM ubj3)}(hsnd_soc_register_daish]j9)}(hsnd_soc_register_daish]hsnd_soc_register_dais}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj~hhhjhM ubjT)}(hW(struct snd_soc_component *component, struct snd_soc_dai_driver *dai_drv, size_t count)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj̑hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjݑhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjڑubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjߑmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_register_daisasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h"struct snd_soc_dai_driver *dai_drvh](j`)}(hjch]hstruct}(hj1hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj-ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubh)}(hhh]j9)}(hsnd_soc_dai_driverh]hsnd_soc_dai_driver}(hjOhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jc.snd_soc_register_daisasbuh1hhj-ubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(hdai_drvh]hdai_drv}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h size_t counth](h)}(hhh]j9)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_register_daisasbuh1hhjubj")}(h h]h }(hj’hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hcounth]hcount}(hjВhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj~hhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjzhhhjhM ubah}(h]juah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjwhhubjv)}(hhh]j{)}(h!Register a DAI with the ASoC coreh]h!Register a DAI with the ASoC core}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjwhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjubj)}(hhh](j)}(hR``struct snd_soc_component *component`` The component the DAIs are registered for h](j)}(h'``struct snd_soc_component *component``h]j)}(hj;h]h#struct snd_soc_component *component}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hj5ubj)}(hhh]j{)}(h)The component the DAIs are registered forh]h)The component the DAIs are registered for}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjPhM hjQubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjPhM hj2ubj)}(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)}(hjth]h"struct snd_soc_dai_driver *dai_drv}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjnubj)}(hhh]j{)}(hDAI driver to use for the DAIsh]hDAI driver to use for the DAIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjhM hj2ubj)}(h``size_t count`` Number of DAIsh](j)}(h``size_t count``h]j)}(hjh]h size_t count}(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]j{)}(hNumber of DAIsh]hNumber of DAIs}(hjƓhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:100: ./sound/soc/soc-core.chM hjÓubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj“hM hj2ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_unregister_component_by_driver (C function)(c.snd_soc_unregister_component_by_driverhNtauh1hhjthhhNhNubh)}(hhh](j)}(hyvoid snd_soc_unregister_component_by_driver (struct device *dev, const struct snd_soc_component_driver *component_driver)h]j )}(hxvoid snd_soc_unregister_component_by_driver(struct device *dev, const struct snd_soc_component_driver *component_driver)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(h&snd_soc_unregister_component_by_driverh]j9)}(h&snd_soc_unregister_component_by_driverh]h&snd_soc_unregister_component_by_driver}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(hM(struct device *dev, const struct snd_soc_component_driver *component_driver)h](jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hjDhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj@ubj")}(h h]h }(hjQhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@ubh)}(hhh]j9)}(hdeviceh]hdevice}(hjbhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjdmodnameN classnameNjj)}j]j)}jj*sb(c.snd_soc_unregister_component_by_driverasbuh1hhj@ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj9)}(hdevh]hdev}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj<ubjZ)}(h7const struct snd_soc_component_driver *component_driverh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjÔhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjєhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjޔhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_component_driverh]hsnd_soc_component_driver}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j~(c.snd_soc_unregister_component_by_driverasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcomponent_driverh]hcomponent_driver}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj<ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjOhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNjj)}j]jc.devm_snd_soc_register_cardasbuh1hhj-ubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(hcardh]hcard}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj~hhhjhK:ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjzhhhjhK:ubah}(h]juah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhK:hjwhhubjv)}(hhh]j{)}(h"resource managed card registrationh]h"resource managed card registration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK:hjhhubah}(h]h ]h"]h$]h&]uh1juhjwhhhjhK:ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjʚjjʚjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjԚh]h Parameters}(hj֚hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjҚubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK>hjΚubj)}(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]j{)}(hDevice used to manage cardh]hDevice used to manage card}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhK;hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK;hjubj)}(h/``struct snd_soc_card *card`` Card to register h](j)}(h``struct snd_soc_card *card``h]j)}(hj,h]hstruct snd_soc_card *card}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhjΚubj{)}(hNRegister a card with automatic unregistration when the device is unregistered.h]hNRegister a card with automatic unregistration when the device is unregistered.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chK=hjΚubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,devm_snd_dmaengine_pcm_register (C function)!c.devm_snd_dmaengine_pcm_registerhNtauh1hhjthhhNhNubh)}(hhh](j)}(h{int devm_snd_dmaengine_pcm_register (struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h]j )}(hzint devm_snd_dmaengine_pcm_register(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKeubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKeubj3)}(hdevm_snd_dmaengine_pcm_registerh]j9)}(hdevm_snd_dmaengine_pcm_registerh]hdevm_snd_dmaengine_pcm_register}(hj͛hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjɛubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKeubjT)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hdeviceh]hdevice}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjϛsb!c.devm_snd_dmaengine_pcm_registerasbuh1hhjubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdevh]hdev}(hjBhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h-const struct snd_dmaengine_pcm_config *configh](j`)}(hjph]hconst}(hj[hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjWubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj`)}(hjch]hstruct}(hjvhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjWubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubh)}(hhh]j9)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j#!c.devm_snd_dmaengine_pcm_registerasbuh1hhjWubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj9)}(hconfigh]hconfig}(hj͜hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int flagsh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hflagsh]hflags}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKeubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKeubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKehjhhubjv)}(hhh]j{)}(h+resource managed dmaengine PCM registrationh]h+resource managed dmaengine PCM registration}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKehjEhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKeubeh}(h]h ](jfunctioneh"]h$]h&]jjjj`jj`jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKihjdubj)}(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]j{)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKfhjubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hjh]h-const struct snd_dmaengine_pcm_config *config}(hjĝhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKghjubj)}(hhh]j{)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hj۝hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjםhKghj؝ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjםhKghjubj)}(h0``unsigned int flags`` Platform specific quirks h](j)}(h``unsigned int flags``h]j)}(hjh]hunsigned int flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKhhjubj)}(hhh]j{)}(hPlatform specific quirksh]hPlatform specific quirks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhhjubeh}(h]h ]h"]h$]h&]uh1jhjdubj{)}(h**Description**h]j)}(hj6h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKjhjdubj{)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhh/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:101: ./sound/soc/soc-devres.chKihjdubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_set_sysclk (C function)c.snd_soc_component_set_sysclkhNtauh1hhjthhhNhNubh)}(hhh](j)}(hzint snd_soc_component_set_sysclk (struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h]j )}(hyint snd_soc_component_set_sysclk(struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h](j)}(hinth]hint}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKEubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjwhhhjhKEubj3)}(hsnd_soc_component_set_sysclkh]j9)}(hsnd_soc_component_set_sysclkh]hsnd_soc_component_set_sysclk}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjwhhhjhKEubjT)}(hY(struct snd_soc_component *component, int clk_id, int source, unsigned int freq, int dir)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjŞhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hj֞hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjӞubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj؞modnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_set_sysclkasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int clk_idh](j)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj9)}(hclk_idh]hclk_id}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int sourceh](j)}(hinth]hint}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj9)}(hsourceh]hsource}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int freqh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hfreqh]hfreq}(hj̟hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint dirh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hdirh]hdir}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjwhhhjhKEubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjshhhjhKEubah}(h]jnah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKEhjphhubjv)}(hhh]j{)}(h+configure COMPONENT system or master clock.h]h+configure COMPONENT system or master clock.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKEhj(hhubah}(h]h ]h"]h$]h&]uh1juhjphhhjhKEubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjMh]h Parameters}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKIhjGubj)}(hhh](j)}(h2``struct snd_soc_component *component`` COMPONENT h](j)}(h'``struct snd_soc_component *component``h]j)}(hjlh]h#struct snd_soc_component *component}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKFhjfubj)}(hhh]j{)}(h COMPONENTh]h COMPONENT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKFhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKFhjcubj)}(h%``int clk_id`` DAI specific clock ID h](j)}(h``int clk_id``h]j)}(hjh]h int clk_id}(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.chKGhjubj)}(hhh]j{)}(hDAI specific clock IDh]hDAI specific clock ID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKGhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKGhjcubj)}(h$``int source`` Source for the clock h](j)}(h``int source``h]j)}(hjޠh]h int source}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjܠubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKHhjؠubj)}(hhh]j{)}(hSource for the clockh]hSource for the clock}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKHhjubah}(h]h ]h"]h$]h&]uh1jhjؠubeh}(h]h ]h"]h$]h&]uh1jhjhKHhjcubj)}(h0``unsigned int freq`` new clock frequency in Hz h](j)}(h``unsigned int freq``h]j)}(hjh]hunsigned int freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKIhjubj)}(hhh]j{)}(hnew clock frequency in Hzh]hnew clock frequency in Hz}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj,hKIhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hKIhjcubj)}(h0``int dir`` new clock direction - input/output. h](j)}(h ``int dir``h]j)}(hjPh]hint dir}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKJhjJubj)}(hhh]j{)}(h#new clock direction - input/output.h]h#new clock direction - input/output.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjehKJhjfubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjehKJhjcubeh}(h]h ]h"]h$]h&]uh1jhjGubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKLhjGubj{)}(h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.h]h?Configures the CODEC master (MCLK) or system (SYSCLK) clocking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKKhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_soc_component_set_jack (C function)c.snd_soc_component_set_jackhNtauh1hhjthhhNhNubh)}(hhh](j)}(hkint snd_soc_component_set_jack (struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h]j )}(hjint snd_soc_component_set_jack(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h](j)}(hinth]hint}(hjСhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj̡hhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKubj")}(h h]h }(hjߡhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj̡hhhjޡhKubj3)}(hsnd_soc_component_set_jackh]j9)}(hsnd_soc_component_set_jackh]hsnd_soc_component_set_jack}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj̡hhhjޡhKubjT)}(hL(struct snd_soc_component *component, struct snd_soc_jack *jack, void *data)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_set_jackasbuh1hhj ubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h componenth]h component}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj{ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{ubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jGc.snd_soc_component_set_jackasbuh1hhj{ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj{ubj)}(hjh]h*}(hjɢhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj9)}(hjackh]hjack}(hj֢hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h void *datah](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdatah]hdata}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj̡hhhjޡhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjȡhhhjޡhKubah}(h]jáah ](jmjneh"]h$]h&]jrjs)jthuh1jhjޡhKhjšhhubjv)}(hhh]j{)}(hconfigure component jack.h]hconfigure component jack.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhj?hhubah}(h]h ]h"]h$]h&]uh1juhjšhhhjޡhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjZjjZjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjdh]h Parameters}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhj^ubj)}(hhh](j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhj}ubj)}(hhh]j{)}(h COMPONENTsh]h COMPONENTs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjzubj)}(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.chKhjubj)}(hhh]j{)}(hstructure to use for the jackh]hstructure to use for the jack}(hjգhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjѣhKhjңubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjѣhKhjzubj)}(hP``void *data`` can be used if codec driver need extra data for configuring jack h](j)}(h``void *data``h]j)}(hjh]h void *data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhjubj)}(hhh]j{)}(h@can be used if codec driver need extra data for configuring jackh]h@can be used if codec driver need extra data for configuring jack}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjzubeh}(h]h ]h"]h$]h&]uh1jhj^ubj{)}(h**Description**h]j)}(hj0h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhj^ubj{)}(h/Configures and enables jack detection function.h]h/Configures and enables jack detection function.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h,snd_soc_component_get_jack_type (C function)!c.snd_soc_component_get_jack_typehNtauh1hhjthhhNhNubh)}(hhh](j)}(hIint snd_soc_component_get_jack_type (struct snd_soc_component *component)h]j )}(hHint snd_soc_component_get_jack_type(struct snd_soc_component *component)h](j)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqhhhjhKubj3)}(hsnd_soc_component_get_jack_typeh]j9)}(hsnd_soc_component_get_jack_typeh]hsnd_soc_component_get_jack_type}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjqhhhjhKubjT)}(h%(struct snd_soc_component *component)h]jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjФhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjͤubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjҤmodnameN classnameNjj)}j]j)}jjsb!c.snd_soc_component_get_jack_typeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjqhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjmhhhjhKubah}(h]jhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjjhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhjBubj)}(hhh]j)}(h3``struct snd_soc_component *component`` COMPONENTs h](j)}(h'``struct snd_soc_component *component``h]j)}(hjgh]h#struct snd_soc_component *component}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhjaubj)}(hhh]j{)}(h COMPONENTsh]h COMPONENTs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hKhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hKhj^ubah}(h]h ]h"]h$]h&]uh1jhjBubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhjBubj{)}(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&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chKhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_init_regmap (C function)c.snd_soc_component_init_regmaphNtauh1hhjthhhNhNubh)}(hhh](j)}(h_void snd_soc_component_init_regmap (struct snd_soc_component *component, struct regmap *regmap)h]j )}(h^void snd_soc_component_init_regmap(struct snd_soc_component *component, struct regmap *regmap)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMmubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMmubj3)}(hsnd_soc_component_init_regmaph]j9)}(hsnd_soc_component_init_regmaph]hsnd_soc_component_init_regmap}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMmubjT)}(h<(struct snd_soc_component *component, struct regmap *regmap)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hj$hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjBhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNjj)}j]j)}jj sbc.snd_soc_component_init_regmapasbuh1hhj ubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(h componenth]h component}(hj}hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct regmap *regmaph](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j^c.snd_soc_component_init_regmapasbuh1hhjubj")}(h h]h }(hjҦhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hregmaph]hregmap}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMmubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjߥhhhjhMmubah}(h]jڥah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMmhjܥhhubjv)}(hhh]j{)}(h,Initialize regmap instance for the componenth]h,Initialize regmap instance for the component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMmhjhhubah}(h]h ]h"]h$]h&]uh1juhjܥhhhjhMmubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMqhj3ubj)}(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)}(hjXh]h#struct snd_soc_component *component}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMohjRubj)}(hhh]j{)}(h9The component for which to initialize the regmap instanceh]h9The component for which to initialize the regmap instance}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjmhMohjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMohjOubj)}(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.chMphjubj)}(hhh]j{)}(h8The regmap instance that should be used by the componenth]h8The regmap instance that should be used by the component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMphjOubeh}(h]h ]h"]h$]h&]uh1jhj3ubj{)}(h**Description**h]j)}(hj̧h]h Description}(hjΧhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjʧubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMrhj3ubj{)}(hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.h]hX This function allows deferred assignment of the regmap instance that is associated with the component. Only use this if the regmap instance is not yet ready when the component is registered. The function must also be called before the first IO attempt of the component.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMqhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_exit_regmap (C function)c.snd_soc_component_exit_regmaphNtauh1hhjthhhNhNubh)}(hhh](j)}(hHvoid snd_soc_component_exit_regmap (struct snd_soc_component *component)h]j )}(hGvoid snd_soc_component_exit_regmap(struct snd_soc_component *component)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhk/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 ]j.ah"]h$]h&]uh1j!hj hhhjhMubj3)}(hsnd_soc_component_exit_regmaph]j9)}(hsnd_soc_component_exit_regmaph]hsnd_soc_component_exit_regmap}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhjhMubjT)}(h%(struct snd_soc_component *component)h]jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjNhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjJubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNjj)}j]j)}jj4sbc.snd_soc_component_exit_regmapasbuh1hhjJubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjFubah}(h]h ]h"]h$]h&]jQjRuh1jShj hhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h/De-initialize regmap instance for the componenth]h/De-initialize regmap instance for the component}(hjѨhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjΨhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j)}(he``struct snd_soc_component *component`` The component for which to de-initialize the regmap instance h](j)}(h'``struct snd_soc_component *component``h]j)}(hjh]h#struct snd_soc_component *component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj ubj)}(hhh]j{)}(h``struct snd_soc_component *component`` Component to write 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&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjeubj)}(hhh]j{)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubj)}(h'``unsigned int reg`` Register to write h](j)}(h``unsigned int reg``h]j)}(hjh]hunsigned int reg}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j{)}(hRegister to writeh]hRegister to write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubj)}(h4``unsigned int val`` Value to write to the register 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.chMhj׭ubj)}(hhh]j{)}(hValue to write to the registerh]hValue to write to the register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj׭ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjbubeh}(h]h ]h"]h$]h&]uh1jhjFubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjFubj{)}(h.0 on success, a negative error code otherwise.h]h.0 on success, a negative error code otherwise.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_update_bits (C function)c.snd_soc_component_update_bitshNtauh1hhjthhhNhNubh)}(hhh](j)}(h~int snd_soc_component_update_bits (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]j )}(h}int snd_soc_component_update_bits(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](j)}(hinth]hint}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYhhhjkhMubj3)}(hsnd_soc_component_update_bitsh]j9)}(hsnd_soc_component_update_bitsh]hsnd_soc_component_update_bits}(hj~hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjYhhhjkhMubjT)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_update_bitsasbuh1hhjubj")}(h h]h }(hjخhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int regh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjDhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj)}(hinth]hint}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int valh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjʯhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjدhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvalh]hval}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjYhhhjkhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjUhhhjkhMubah}(h]jPah ](jmjneh"]h$]h&]jrjs)jthuh1jhjkhMhjRhhubjv)}(hhh]j{)}(hPerform read/modify/write cycleh]hPerform read/modify/write cycle}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj hhubah}(h]h ]h"]h$]h&]uh1juhjRhhhjkhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj,ubj)}(hhh](j)}(h<``struct snd_soc_component *component`` Component to update h](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&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjKubj)}(hhh]j{)}(hComponent to updateh]hComponent to update}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjfhMhjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhMhjHubj)}(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.chMhjubj)}(hhh]j{)}(hRegister to updateh]hRegister to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjHubj)}(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&]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]j{)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjܰhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjذhMhjٰubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjذhMhjHubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j{)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjHubeh}(h]h ]h"]h$]h&]uh1jhj,ubj{)}(h **Return**h]j)}(hj7h]hReturn}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj,ubj{)}(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.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhj,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h0snd_soc_component_update_bits_async (C function)%c.snd_soc_component_update_bits_asynchNtauh1hhjthhhNhNubh)}(hhh](j)}(hint snd_soc_component_update_bits_async (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]j )}(hint snd_soc_component_update_bits_async(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](j)}(hinth]hint}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxhhhk/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 ]j.ah"]h$]h&]uh1j!hjxhhhjhM ubj3)}(h#snd_soc_component_update_bits_asynch]j9)}(h#snd_soc_component_update_bits_asynch]h#snd_soc_component_update_bits_async}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjxhhhjhM ubjT)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjƱhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjױhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjԱubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjٱmodnameN classnameNjj)}j]j)}jjsb%c.snd_soc_component_update_bits_asyncasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int regh](j)}(hunsignedh]hunsigned}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj")}(h h]h }(hj9hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj9)}(hregh]hreg}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjxubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int valh](j)}(hunsignedh]hunsigned}(hjͲhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɲubj")}(h h]h }(hj۲hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjɲubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjɲubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjɲubj9)}(hvalh]hval}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjɲubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjxhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjthhhjhM ubah}(h]joah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjqhhubjv)}(hhh]j{)}(h,Perform asynchronous read/modify/write cycleh]h,Perform asynchronous read/modify/write cycle}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hj,hhubah}(h]h ]h"]h$]h&]uh1juhjqhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjGjjGjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjQh]h Parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jzhk/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 update h](j)}(h'``struct snd_soc_component *component``h]j)}(hjph]h#struct snd_soc_component *component}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM hjjubj)}(hhh]j{)}(hComponent to updateh]hComponent to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjgubj)}(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.chM hjubj)}(hhh]j{)}(hRegister to updateh]hRegister to update}(hj³hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjgubj)}(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.chMhjܳubj)}(hhh]j{)}(h(Mask that specifies which bits to updateh]h(Mask that specifies which bits to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjܳubeh}(h]h ]h"]h$]h&]uh1jhjhMhjgubj)}(h>``unsigned int val`` New value for the bits specified by mask h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjubj)}(hhh]j{)}(h(New value for the bits specified by maskh]h(New value for the bits specified by mask}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hMhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj0hMhjgubeh}(h]h ]h"]h$]h&]uh1jhjKubj{)}(h**Description**h]j)}(hjVh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjKubj{)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjKubj{)}(h **Return**h]j)}(hj}h]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjKubj{)}(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&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_soc_component_read_field (C function)c.snd_soc_component_read_fieldhNtauh1hhjthhhNhNubh)}(hhh](j)}(htunsigned int snd_soc_component_read_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask)h]j )}(hsunsigned int snd_soc_component_read_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](j)}(hunsignedh]hunsigned}(hj´hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM.ubj")}(h h]h }(hjѴhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjдhM.ubj)}(hinth]hint}(hjߴhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjдhM.ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjдhM.ubj3)}(hsnd_soc_component_read_fieldh]j9)}(hsnd_soc_component_read_fieldh]hsnd_soc_component_read_field}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjдhM.ubjT)}(hJ(struct snd_soc_component *component, unsigned int reg, unsigned int mask)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_read_fieldasbuh1hhjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int regh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjŵhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hj޵hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjڵubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjڵubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjڵubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjڵubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjڵubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjдhM.ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjдhM.ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjдhM.hjhhubjv)}(hhh]j{)}(hRead register field valueh]hRead register field value}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM.hj=hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjдhM.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjbh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM2hj\ubj)}(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.chM/hj{ubj)}(hhh]j{)}(hComponent to read fromh]hComponent to read from}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM/hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhM/hjxubj)}(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.chM0hjubj)}(hhh]j{)}(hRegister to readh]hRegister to read}(hjӶhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj϶hM0hjжubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj϶hM0hjxubj)}(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.chM1hjubj)}(hhh]j{)}(hmask of the register fieldh]hmask of the register field}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM1hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM1hjxubeh}(h]h ]h"]h$]h&]uh1jhj\ubj{)}(h **Return**h]j)}(hj.h]hReturn}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM3hj\ubj{)}(hread value of register field.h]hread value of register field.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM3hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*snd_soc_component_write_field (C function)c.snd_soc_component_write_fieldhNtauh1hhjthhhNhNubh)}(hhh](j)}(h~int snd_soc_component_write_field (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h]j )}(h}int snd_soc_component_write_field(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](j)}(hinth]hint}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjohhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMCubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjohhhjhMCubj3)}(hsnd_soc_component_write_fieldh]j9)}(hsnd_soc_component_write_fieldh]hsnd_soc_component_write_field}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjohhhjhMCubjT)}(h\(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int val)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjηhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj˷ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjзmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_component_write_fieldasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(h componenth]h component}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int regh](j)}(hunsignedh]hunsigned}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjLhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjoubj9)}(hmaskh]hmask}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjoubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int valh](j)}(hunsignedh]hunsigned}(hjĸhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjҸhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hvalh]hval}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjohhhjhMCubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjkhhhjhMCubah}(h]jfah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMChjhhhubjv)}(hhh]j{)}(hwrite to register fieldh]hwrite to register field}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMChj#hhubah}(h]h ]h"]h$]h&]uh1juhjhhhhjhMCubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjHh]h Parameters}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMGhjBubj)}(hhh](j)}(h>``struct snd_soc_component *component`` Component to write to h](j)}(h'``struct snd_soc_component *component``h]j)}(hjgh]h#struct snd_soc_component *component}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMDhjaubj)}(hhh]j{)}(hComponent to write toh]hComponent to write to}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj|hMDhj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hMDhj^ubj)}(h'``unsigned int reg`` Register to write 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.chMEhjubj)}(hhh]j{)}(hRegister to writeh]hRegister to write}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMEhj^ubj)}(h;``unsigned int mask`` mask of the register field 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.chMFhjӹubj)}(hhh]j{)}(h$mask of the register field to updateh]h$mask of the register field to update}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMFhjubah}(h]h ]h"]h$]h&]uh1jhjӹubeh}(h]h ]h"]h$]h&]uh1jhjhMFhj^ubj)}(h1``unsigned int val`` value of the field to write h](j)}(h``unsigned int val``h]j)}(hjh]hunsigned int val}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMGhj ubj)}(hhh]j{)}(hvalue of the field to writeh]hvalue of the field to write}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMGhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hMGhj^ubeh}(h]h ]h"]h$]h&]uh1jhjBubj{)}(h **Return**h]j)}(hjMh]hReturn}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMIhjBubj{)}(h1 for change, otherwise 0.h]h1 for change, otherwise 0.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMIhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_component_async_complete (C function)"c.snd_soc_component_async_completehNtauh1hhjthhhNhNubh)}(hhh](j)}(hKvoid snd_soc_component_async_complete (struct snd_soc_component *component)h]j )}(hJvoid snd_soc_component_async_complete(struct snd_soc_component *component)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMWubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMWubj3)}(h snd_soc_component_async_completeh]j9)}(h snd_soc_component_async_completeh]h snd_soc_component_async_complete}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMWubjT)}(h%(struct snd_soc_component *component)h]jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjϺhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj˺ubj")}(h h]h }(hjܺhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj˺ubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb"c.snd_soc_component_async_completeasbuh1hhj˺ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj˺ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj˺ubj9)}(h componenth]h component}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj˺ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjǺubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMWubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMWubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMWhjhhubjv)}(hhh]j{)}(h%Ensure asynchronous I/O has completedh]h%Ensure asynchronous I/O has completed}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMWhjOhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjth]h Parameters}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chM[hjnubj)}(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.chMXhjubj)}(hhh]j{)}(hComponent for which to waith]hComponent for which to wait}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjnubj{)}(h**Description**h]j)}(hjλh]h Description}(hjлhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj̻ubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMZhjnubj{)}(hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.h]hThis function blocks until all asynchronous I/O which has previously been scheduled using snd_soc_component_update_bits_async() has completed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMYhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(snd_soc_component_test_bits (C function)c.snd_soc_component_test_bitshNtauh1hhjthhhNhNubh)}(hhh](j)}(h~int snd_soc_component_test_bits (struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h]j )}(h}int snd_soc_component_test_bits(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMeubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj!hMeubj3)}(hsnd_soc_component_test_bitsh]j9)}(hsnd_soc_component_test_bitsh]hsnd_soc_component_test_bits}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj!hMeubjT)}(h^(struct snd_soc_component *component, unsigned int reg, unsigned int mask, unsigned int value)h](jZ)}(h#struct snd_soc_component *componenth](j`)}(hjch]hstruct}(hjPhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjLubj")}(h h]h }(hj]hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjLubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjnhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNjj)}j]j)}jj6sbc.snd_soc_component_test_bitsasbuh1hhjLubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjLubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj9)}(h componenth]h component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hunsigned int regh](j)}(hunsignedh]hunsigned}(hj¼hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjмhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj޼hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hregh]hreg}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hunsigned int maskh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaskh]hmask}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hunsigned int valueh](j)}(hunsignedh]hunsigned}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj9)}(hvalueh]hvalue}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj!hMeubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj!hMeubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj!hMehjhhubjv)}(hhh]j{)}(hTest register for changeh]hTest register for change}(hjƽhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMehjýhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj!hMeubeh}(h]h ](jfunctioneh"]h$]h&]jjjj޽jj޽jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMihjubj)}(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}(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.chMfhjubj)}(hhh]j{)}(h componenth]h component}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMfhjubj)}(h&``unsigned int reg`` Register to test h](j)}(h``unsigned int reg``h]j)}(hj@h]hunsigned int reg}(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.chMghj:ubj)}(hhh]j{)}(hRegister to testh]hRegister to test}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUhMghjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhMghjubj)}(h=``unsigned int mask`` Mask that specifies which bits to test h](j)}(h``unsigned int mask``h]j)}(hjyh]hunsigned int mask}(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.chMhhjsubj)}(hhh]j{)}(h&Mask that specifies which bits to testh]h&Mask that specifies which bits to test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjhMhhjubj)}(h-``unsigned int value`` Value to test against h](j)}(h``unsigned int value``h]j)}(hjh]hunsigned int value}(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.chMihjubj)}(hhh]j{)}(hValue to test againsth]hValue to test against}(hj˾hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjǾhMihjȾubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjǾhMihjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMkhjubj{)}(h^Tests a register with a new value and checks if the new value is different from the old value.h]h^Tests a register with a new value and checks if the new value is different from the old value.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMjhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMmhjubj{)}(h1 for change, otherwise 0.h]h1 for change, otherwise 0.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhk/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:102: ./sound/soc/soc-component.chMnhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_runtime_action (C function)c.snd_soc_runtime_actionhNtauh1hhjthhhNhNubh)}(hhh](j)}(hUvoid snd_soc_runtime_action (struct snd_soc_pcm_runtime *rtd, int stream, int action)h]j )}(hTvoid snd_soc_runtime_action(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](j)}(hvoidh]hvoid}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUhhhjghMXubj3)}(hsnd_soc_runtime_actionh]j9)}(hsnd_soc_runtime_actionh]hsnd_soc_runtime_action}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjUhhhjghMXubjT)}(h9(struct snd_soc_pcm_runtime *rtd, int stream, int action)h](jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj|sbc.snd_soc_runtime_actionasbuh1hhjubj")}(h h]h }(hjԿhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int streamh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hstreamh]hstream}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int actionh](j)}(hinth]hint}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9ubj")}(h h]h }(hjKhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9ubj9)}(hactionh]haction}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjUhhhjghMXubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjQhhhjghMXubah}(h]jLah ](jmjneh"]h$]h&]jrjs)jthuh1jhjghMXhjNhhubjv)}(hhh]j{)}(h;Increment/Decrement active count for PCM runtime componentsh]h;Increment/Decrement active count for PCM runtime components}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMXhjhhubah}(h]h ]h"]h$]h&]uh1juhjNhhhjghMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM\hjubj)}(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]j{)}(h"ASoC PCM runtime that is activatedh]h"ASoC PCM runtime that is activated}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMZhjubah}(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)}(hjh]h int stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM[hjubj)}(hhh]j{)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hjubj)}(h7``int action`` Activate stream if 1. Deactivate if -1. h](j)}(h``int action``h]j)}(hj6h]h int action}(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:103: ./sound/soc/soc-pcm.chM\hj0ubj)}(hhh]j{)}(h'Activate stream if 1. Deactivate if -1.h]h'Activate stream if 1. Deactivate if -1.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjKhM\hjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhM\hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjqh]h Description}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM^hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM]hjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMahjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h/snd_soc_runtime_ignore_pmdown_time (C function)$c.snd_soc_runtime_ignore_pmdown_timehNtauh1hhjthhhNhNubh)}(hhh](j)}(hIbool snd_soc_runtime_ignore_pmdown_time (struct snd_soc_pcm_runtime *rtd)h]j )}(hHbool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd)h](j)}(hj_h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMzubj3)}(h"snd_soc_runtime_ignore_pmdown_timeh]j9)}(h"snd_soc_runtime_ignore_pmdown_timeh]h"snd_soc_runtime_ignore_pmdown_time}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMzubjT)}(h!(struct snd_soc_pcm_runtime *rtd)h]jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jjsb$c.snd_soc_runtime_ignore_pmdown_timeasbuh1hhjubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrtdh]hrtd}(hjZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMzubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMzubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMzhjhhubjv)}(hhh]j{)}(h,Check whether to ignore the power down delayh]h,Check whether to ignore the power down delay}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMzhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMzubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(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&]uh1jzhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM}hjubj{)}(hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.h]hThis function checks whether the power down delay should be ignored for a specific PCM runtime. Returns true if the delay is 0, if the DAI link has been configured to ignore the delay, or if none of the components benefits from having the delay.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chM|hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_runtime_calc_hw (C function)c.snd_soc_runtime_calc_hwhNtauh1hhjthhhNhNubh)}(hhh](j)}(hfint snd_soc_runtime_calc_hw (struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h]j )}(heint snd_soc_runtime_calc_hw(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h](j)}(hinth]hint}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMoubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAhhhjShMoubj3)}(hsnd_soc_runtime_calc_hwh]j9)}(hsnd_soc_runtime_calc_hwh]hsnd_soc_runtime_calc_hw}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjAhhhjShMoubjT)}(hJ(struct snd_soc_pcm_runtime *rtd, struct snd_pcm_hardware *hw, int stream)h](jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjhsbc.snd_soc_runtime_calc_hwasbuh1hhj~ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj~ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj9)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(hstruct snd_pcm_hardware *hwh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_pcm_hardwareh]hsnd_pcm_hardware}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_runtime_calc_hwasbuh1hhjubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hhwh]hhw}(hjKhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubjZ)}(h int streamh](j)}(hinth]hint}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj9)}(hstreamh]hstream}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjzubeh}(h]h ]h"]h$]h&]jQjRuh1jShjAhhhjShMoubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj=hhhjShMoubah}(h]j8ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjShMohj:hhubjv)}(hhh]j{)}(h$Calculate hw limits for a PCM streamh]h$Calculate hw limits for a PCM stream}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMohjhhubah}(h]h ]h"]h$]h&]uh1juhj:hhhjShMoubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMshjubj)}(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.chMphjubj)}(hhh]j{)}(hASoC PCM runtimeh]hASoC PCM runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMphjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMphjubj)}(hA``struct snd_pcm_hardware *hw`` PCM hardware parameters (output) h](j)}(h``struct snd_pcm_hardware *hw``h]j)}(hj$h]hstruct snd_pcm_hardware *hw}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMqhjubj)}(hhh]j{)}(h PCM hardware parameters (output)h]h PCM hardware parameters (output)}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9hMqhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMqhjubj)}(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.chMrhjWubj)}(hhh]j{)}(hDirection of the PCM streamh]hDirection of the PCM stream}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjrhMrhjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMrhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMthjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:103: ./sound/soc/soc-pcm.chMshjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_info_enum_double (C function)c.snd_soc_info_enum_doublehNtauh1hhjthhhNhNubh)}(hhh](j)}(h]int snd_soc_info_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(h\int snd_soc_info_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKubj3)}(hsnd_soc_info_enum_doubleh]j9)}(hsnd_soc_info_enum_doubleh]hsnd_soc_info_enum_double}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhKubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_enum_doubleasbuh1hhjubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jTc.snd_soc_info_enum_doubleasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]j{)}(h%enumerated double mixer info callbackh]h%enumerated double mixer info callback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKhj hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hj)ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjNh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chKhjHubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjchKhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchKhjEubj)}(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]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK hjEubeh}(h]h ]h"]h$]h&]uh1jhj)ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK"hj)ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK!hj)ubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK$hj)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_get_enum_double (C function)c.snd_soc_get_enum_doublehNtauh1hhjthhhNhNubh)}(hhh](j)}(h`int snd_soc_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h_int snd_soc_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2ubj")}(h h]h }(hj%hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj$hK2ubj3)}(hsnd_soc_get_enum_doubleh]j9)}(hsnd_soc_get_enum_doubleh]hsnd_soc_get_enum_double}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj$hK2ubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjShhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjOubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j)}jj9sbc.snd_soc_get_enum_doubleasbuh1hhjOubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjOubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjKubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_enum_doubleasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjKubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj$hK2ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj$hK2ubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj$hK2hj hhubjv)}(hhh]j{)}(h$enumerated double mixer get callbackh]h$enumerated double mixer get callback}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK2hjChhubah}(h]h ]h"]h$]h&]uh1juhj hhhj$hK2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjhh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjbubj)}(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]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK3hj~ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK4hjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhK4hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hj~ubeh}(h]h ]h"]h$]h&]uh1jhjbubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK6hjbubj{)}(h7Callback to get the value of a double enumerated mixer.h]h7Callback to get the value of a double enumerated mixer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK5hjbubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chK7hjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_put_enum_double (C function)c.snd_soc_put_enum_doublehNtauh1hhjthhhNhNubh)}(hhh](j)}(h`int snd_soc_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h_int snd_soc_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKQubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjKhhhj]hKQubj3)}(hsnd_soc_put_enum_doubleh]j9)}(hsnd_soc_put_enum_doubleh]hsnd_soc_put_enum_double}(hjphhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjKhhhj]hKQubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjrsbc.snd_soc_put_enum_doubleasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_put_enum_doubleasbuh1hhjubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjKhhhj]hKQubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjGhhhj]hKQubah}(h]jBah ](jmjneh"]h$]h&]jrjs)jthuh1jhj]hKQhjDhhubjv)}(hhh]j{)}(h$enumerated double mixer put callbackh]h$enumerated double mixer put callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKQhj|hhubah}(h]h ]h"]h$]h&]uh1juhjDhhhj]hKQubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKShjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhKShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj4h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKUhjubj{)}(h7Callback to set the value of a double enumerated mixer.h]h7Callback to set the value of a double enumerated mixer.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKThjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chKVhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_volsw (C function)c.snd_soc_info_volswhNtauh1hhjthhhNhNubh)}(hhh](j)}(hWint snd_soc_info_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(hVint snd_soc_info_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_info_volswh]j9)}(hsnd_soc_info_volswh]hsnd_soc_info_volsw}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_volswasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hj7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj3ubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]jc.snd_soc_info_volswasbuh1hhj3ubj")}(h h]h }(hjshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj9)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]j{ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhj}hhubjv)}(hhh]j{)}(h&single mixer info callback with range.h]h&single mixer info callback with range.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhj}hhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(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)}(hj2h]hstruct snd_ctl_elem_info *uinfo}(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:104: ./sound/soc/soc-ops.chMhj,ubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjmh]h Description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_info_volsw_sx (C function)c.snd_soc_info_volsw_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_info_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(hYint snd_soc_info_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM-ubj3)}(hsnd_soc_info_volsw_sxh]j9)}(hsnd_soc_info_volsw_sxh]hsnd_soc_info_volsw_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM-ubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_volsw_sxasbuh1hhjubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjphhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjlubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j8c.snd_soc_info_volsw_sxasbuh1hhjlubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj9)}(huinfoh]huinfo}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM-ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM-ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM-hjhhubjv)}(hhh]j{)}(h'Mixer info callback for SX TLV controlsh]h'Mixer info callback for SX TLV controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM-hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM1hj ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hj2h]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chM.hj,ubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhM.hjHubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjGhM.hj)ubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjkh]hstruct snd_ctl_elem_info *uinfo}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM/hjeubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM/hjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhM/hj)ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM1hj ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM0hj ubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM6hj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_volsw (C function)c.snd_soc_get_volswhNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hYint snd_soc_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMDubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMDubj3)}(hsnd_soc_get_volswh]j9)}(hsnd_soc_get_volswh]hsnd_soc_get_volsw}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMDubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hj7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj3ubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_volswasbuh1hhj3ubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jqc.snd_soc_get_volswasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj/ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMDubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMDubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMDhjhhubjv)}(hhh]j{)}(h$single mixer get callback with rangeh]h$single mixer get callback with range}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMDhj'hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMHhjFubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjkh]hstruct snd_kcontrol *kcontrol}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMEhjeubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMEhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMEhjbubj)}(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.chMFhjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMFhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMFhjbubeh}(h]h ]h"]h$]h&]uh1jhjFubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMHhjFubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMGhjFubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMJhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_volsw (C function)c.snd_soc_put_volswhNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hYint snd_soc_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMYubj")}(h h]h }(hjBhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/hhhjAhMYubj3)}(hsnd_soc_put_volswh]j9)}(hsnd_soc_put_volswh]hsnd_soc_put_volsw}(hjThhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjPubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj/hhhjAhMYubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjphhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjlubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjVsbc.snd_soc_put_volswasbuh1hhjlubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_put_volswasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubeh}(h]h ]h"]h$]h&]jQjRuh1jShj/hhhjAhMYubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj+hhhjAhMYubah}(h]j&ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjAhMYhj(hhubjv)}(hhh]j{)}(h$single mixer put callback with rangeh]h$single mixer put callback with range}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMYhj`hhubah}(h]h ]h"]h$]h&]uh1juhj(hhhjAhMYubeh}(h]h ](jfunctioneh"]h$]h&]jjjj{jj{jjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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.chMZhjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjubj)}(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]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM]hjubj{)}(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.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM\hjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM_hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_get_volsw_sx (C function)c.snd_soc_get_volsw_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(h]int snd_soc_get_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h\int snd_soc_get_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMnubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhhjzhMnubj3)}(hsnd_soc_get_volsw_sxh]j9)}(hsnd_soc_get_volsw_sxh]hsnd_soc_get_volsw_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhhjzhMnubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_volsw_sxasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]jc.snd_soc_get_volsw_sxasbuh1hhjubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhhjzhMnubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjdhhhjzhMnubah}(h]j_ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjzhMnhjahhubjv)}(hhh]j{)}(hsingle mixer get callbackh]hsingle mixer get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMnhjhhubah}(h]h ]h"]h$]h&]uh1juhjahhhjzhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMrhjubj)}(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.chMohjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMohjubj)}(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.chMphjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+hMphj,ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj+hMphjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjQh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMrhjubj{)}(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.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMqhjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMthjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_put_volsw_sx (C function)c.snd_soc_put_volsw_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(h]int snd_soc_put_volsw_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h\int snd_soc_put_volsw_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_put_volsw_sxh]j9)}(hsnd_soc_put_volsw_sxh]hsnd_soc_put_volsw_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_volsw_sxasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjThhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjPubj")}(h h]h }(hjahhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]jc.snd_soc_put_volsw_sxasbuh1hhjPubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjPubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hdouble mixer set callbackh]hdouble mixer set callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h mixer controlh]h mixer control}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+hMhj,ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj+hMhj 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]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhMhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_limit_volume (C function)c.snd_soc_limit_volumehNtauh1hhjthhhNhNubh)}(hhh](j)}(hOint snd_soc_limit_volume (struct snd_soc_card *card, const char *name, int max)h]j )}(hNint snd_soc_limit_volume(struct snd_soc_card *card, const char *name, int max)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_limit_volumeh]j9)}(hsnd_soc_limit_volumeh]hsnd_soc_limit_volume}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h6(struct snd_soc_card *card, const char *name, int max)h](jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jjsbc.snd_soc_limit_volumeasbuh1hhjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hcharh]hchar}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hnameh]hname}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint maxh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hmaxh]hmax}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h,Set new limit to an existing volume control.h]h,Set new limit to an existing volume control.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj-hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjLubj)}(hhh](j)}(h<``struct snd_soc_card *card`` where to look for the control h](j)}(h``struct snd_soc_card *card``h]j)}(hjqh]hstruct snd_soc_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:104: ./sound/soc/soc-ops.chMhjkubj)}(hhh]j{)}(hwhere to look for the controlh]hwhere to look for the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(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]j{)}(hName of the controlh]hName of the control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubj)}(h``int max`` new maximum limit h](j)}(h ``int max``h]j)}(hjh]hint max}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]j{)}(hnew maximum limith]hnew maximum limit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjhubeh}(h]h ]h"]h$]h&]uh1jhjLubj{)}(h**Description**h]j)}(hjh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjLubj{)}(h!Return 0 for success, else error.h]h!Return 0 for success, else error.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_info_xr_sx (C function)c.snd_soc_info_xr_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(hWint snd_soc_info_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(hVint snd_soc_info_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMvubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_hhhjqhMvubj3)}(hsnd_soc_info_xr_sxh]j9)}(hsnd_soc_info_xr_sxh]hsnd_soc_info_xr_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj_hhhjqhMvubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_info_xr_sxasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]jc.snd_soc_info_xr_sxasbuh1hhjubj")}(h h]h }(hjNhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(huinfoh]huinfo}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj_hhhjqhMvubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj[hhhjqhMvubah}(h]jVah ](jmjneh"]h$]h&]jrjs)jthuh1jhjqhMvhjXhhubjv)}(hhh]j{)}(h#signed multi register info callbackh]h#signed multi register info callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMvhjhhubah}(h]h ]h"]h$]h&]uh1juhjXhhhjqhMvubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMzhjubj)}(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.chMwhjubj)}(hhh]j{)}(h mreg controlh]h mreg control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMwhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMwhjubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hj h]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMxhjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj"hMxhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMxhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjHh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMzhjubj{)}(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.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMyhjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chM~hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_xr_sx (C function)c.snd_soc_get_xr_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_get_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hYint snd_soc_get_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_get_xr_sxh]j9)}(hsnd_soc_get_xr_sxh]hsnd_soc_get_xr_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_get_xr_sxasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjKhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]jc.snd_soc_get_xr_sxasbuh1hhjGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h"signed multi register get callbackh]h"signed multi register get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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)}(hj h]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj)}(hhh]j{)}(h mreg controlh]h mreg control}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj"hMhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hMhjubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjFh]h#struct snd_ctl_elem_value *ucontrol}(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:104: ./sound/soc/soc-ops.chMhj@ubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hMhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_xr_sx (C function)c.snd_soc_put_xr_sxhNtauh1hhjthhhNhNubh)}(hhh](j)}(hZint snd_soc_put_xr_sx (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hYint snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_put_xr_sxh]j9)}(hsnd_soc_put_xr_sxh]hsnd_soc_put_xr_sx}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj0hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNjj)}j]j)}jjsbc.snd_soc_put_xr_sxasbuh1hhjubj")}(h h]h }(hjPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jLc.snd_soc_put_xr_sxasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h"signed multi register get callbackh]h"signed multi register get callback}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj!ubj)}(hhh](j)}(h/``struct snd_kcontrol *kcontrol`` mreg control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjFh]hstruct snd_kcontrol *kcontrol}(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:104: ./sound/soc/soc-ops.chMhj@ubj)}(hhh]j{)}(h mreg controlh]h mreg control}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hMhj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hMhj=ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]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.chMhjyubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMhj=ubeh}(h]h ]h"]h$]h&]uh1jhj!ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj!ubj{)}(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&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj!ubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj!ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_get_strobe (C function)c.snd_soc_get_strobehNtauh1hhjthhhNhNubh)}(hhh](j)}(h[int snd_soc_get_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hZint snd_soc_get_strobe(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhjhMubj3)}(hsnd_soc_get_strobeh]j9)}(hsnd_soc_get_strobeh]hsnd_soc_get_strobe}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjKhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjGubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkmodnameN classnameNjj)}j]j)}jj1sbc.snd_soc_get_strobeasbuh1hhjGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjCubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_get_strobeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjCubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(hstrobe get callbackh]hstrobe get callback}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhj;hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjVjjVjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj`h]h Parameters}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.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&]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.chMhjyubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjhMhjvubj)}(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]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjvubeh}(h]h ]h"]h$]h&]uh1jhjZubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjZubj{)}(h1Callback get the value of a strobe mixer control.h]h1Callback get the value of a strobe mixer control.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjZubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_soc_put_strobe (C function)c.snd_soc_put_strobehNtauh1hhjthhhNhNubh)}(hhh](j)}(h[int snd_soc_put_strobe (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hZint snd_soc_put_strobe(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMubj")}(h h]h }(hjVhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjChhhjUhMubj3)}(hsnd_soc_put_strobeh]j9)}(hsnd_soc_put_strobeh]hsnd_soc_put_strobe}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjdubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjChhhjUhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjjsbc.snd_soc_put_strobeasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_put_strobeasbuh1hhjubj")}(h h]h }(hj2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj|ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjChhhjUhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj?hhhjUhMubah}(h]j:ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjUhMhj<hhubjv)}(hhh]j{)}(hstrobe put callbackh]hstrobe put callback}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjthhubah}(h]h ]h"]h$]h&]uh1juhj<hhhjUhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjthNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhe/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]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(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]j{)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj,h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubj{)}(hReturns 1 for success.h]hReturns 1 for success.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:104: ./sound/soc/soc-ops.chMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!snd_soc_new_compress (C function)c.snd_soc_new_compresshNtauh1hhjthhhNhNubh)}(hhh](j)}(h:int snd_soc_new_compress (struct snd_soc_pcm_runtime *rtd)h]j )}(h9int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|hhhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|hhhjhMubj3)}(hsnd_soc_new_compressh]j9)}(hsnd_soc_new_compressh]hsnd_soc_new_compress}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj|hhhjhMubjT)}(h!(struct snd_soc_pcm_runtime *rtd)h]jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_new_compressasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrtdh]hrtd}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShj|hhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjxhhhjhMubah}(h]jsah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjuhhubjv)}(hhh]j{)}(hcreate a new compress.h]hcreate a new compress.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhj=hhubah}(h]h ]h"]h$]h&]uh1juhjuhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhjthNhNubj)}(h**Parameters** ``struct snd_soc_pcm_runtime *rtd`` The runtime for which we will create compress **Return** 0 for success, else error.h](j{)}(h**Parameters**h]j)}(hjbh]h Parameters}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhj\ubj)}(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.chMhj{ubj)}(hhh]j{)}(h-The runtime for which we will create compressh]h-The runtime for which we will create compress}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhj\ubj{)}(h0 for success, else error.h]h0 for success, else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:105: ./sound/soc/soc-compress.chMhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjthhhNhNubeh}(h] asoc-core-apiah ]h"] asoc core apiah$]h&]uh1hhjthhhhhKbubh)}(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](j)}(h\struct snd_soc_dapm_widget * snd_soc_dapm_kcontrol_to_widget (struct snd_kcontrol *kcontrol)h]j )}(hZstruct snd_soc_dapm_widget *snd_soc_dapm_kcontrol_to_widget(struct snd_kcontrol *kcontrol)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhj'hMubh)}(hhh]j9)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jsnd_soc_dapm_kcontrol_to_widgetsb!c.snd_soc_dapm_kcontrol_to_widgetasbuh1hhjhhhj'hMubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj'hMubj)}(hjh]h*}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj'hMubj3)}(hsnd_soc_dapm_kcontrol_to_widgeth]j9)}(hjWh]hsnd_soc_dapm_kcontrol_to_widget}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjuubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj'hMubjT)}(h(struct snd_kcontrol *kcontrol)h]jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jU!c.snd_soc_dapm_kcontrol_to_widgetasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj'hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj'hMubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj'hMhjhhubjv)}(hhh]j{)}(h+Returns the widget associated to a kcontrolh]h+Returns the widget associated to a kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj'hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj-jj-jjjuh1hhhhjhNhNubj)}(h@**Parameters** ``struct snd_kcontrol *kcontrol`` The kcontrolh](j{)}(h**Parameters**h]j)}(hj7h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj1ubj)}(hhh]j)}(h.``struct snd_kcontrol *kcontrol`` The kcontrolh](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjVh]hstruct snd_kcontrol *kcontrol}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjPubj)}(hhh]j{)}(h The kcontrolh]h The kcontrol}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjlubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(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](j)}(h[struct snd_soc_dapm_context * snd_soc_dapm_kcontrol_to_dapm (struct snd_kcontrol *kcontrol)h]j )}(hYstruct snd_soc_dapm_context *snd_soc_dapm_kcontrol_to_dapm(struct snd_kcontrol *kcontrol)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj3)}(hsnd_soc_dapm_kcontrol_to_dapmh]j9)}(hjh]hsnd_soc_dapm_kcontrol_to_dapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(h(struct snd_kcontrol *kcontrol)h]jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hj*hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj&ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]jc.snd_soc_dapm_kcontrol_to_dapmasbuh1hhj&ubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj"ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h1Returns the dapm context associated to a kcontrolh]h1Returns the dapm context associated to a kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h The kcontrolh]h The kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Note**h]j)}(hj'h]hNote}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj{)}(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.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](j)}(h]struct snd_soc_component * snd_soc_dapm_kcontrol_to_component (struct snd_kcontrol *kcontrol)h]j )}(h[struct snd_soc_component *snd_soc_dapm_kcontrol_to_component(struct snd_kcontrol *kcontrol)h](j`)}(hjch]hstruct}(hjlhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hjzhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhhjyhMubh)}(hhh]j9)}(hsnd_soc_componenth]hsnd_soc_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}j"snd_soc_dapm_kcontrol_to_componentsb$c.snd_soc_dapm_kcontrol_to_componentasbuh1hhjhhhhjyhMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhhjyhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhhjyhMubj3)}(h"snd_soc_dapm_kcontrol_to_componenth]j9)}(hjh]h"snd_soc_dapm_kcontrol_to_component}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhhjyhMubjT)}(h(struct snd_kcontrol *kcontrol)h]jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j$c.snd_soc_dapm_kcontrol_to_componentasbuh1hhjubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhhjyhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjdhhhjyhMubah}(h]j_ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjyhMhjahhubjv)}(hhh]j{)}(h.Returns the component associated to a kcontrolh]h.Returns the component associated to a kcontrol}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjdhhubah}(h]h ]h"]h$]h&]uh1juhjahhhjyhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h The kcontrolh]h The kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj{)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](j)}(hdint snd_soc_dapm_force_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]j )}(hcint snd_soc_dapm_force_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](j)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$hhhj6hMubj3)}(hsnd_soc_dapm_force_bias_levelh]j9)}(hsnd_soc_dapm_force_bias_levelh]hsnd_soc_dapm_force_bias_level}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj$hhhj6hMubjT)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjehhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjaubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjKsbc.snd_soc_dapm_force_bias_levelasbuh1hhjaubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjaubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjaubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubjZ)}(henum snd_soc_bias_level levelh](j`)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_force_bias_levelasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hlevelh]hlevel}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj$hhhj6hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj6hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj6hMhjhhubjv)}(hhh]j{)}(hSets the DAPM bias levelh]hSets the DAPM bias level}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjHhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj6hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjcjjcjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjgubj)}(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]j{)}(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&]uh1jzhjhMhjubah}(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]j{)}(hThe level to seth]hThe level to set}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjgubj{)}(hXdForces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered.h]hXdForces the DAPM bias level to a specific state. It will call the bias level callback of DAPM context with the specified level. This will even happen if the context is already at the same level. Furthermore it will not go through the normal bias level sequencing, meaning any intermediate states between the current and the target state will not be entered.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjgubj{)}(hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.h]hXUNote that the change in bias level is only temporary and the next time snd_soc_dapm_sync() is called the state will be set to the level as determined by the DAPM core. The function is mainly intended to be used to used during probe or resume from suspend to power up the device so initialization can be done, before the DAPM core takes over.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjgubeh}(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](j)}(hdvoid snd_soc_dapm_init_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]j )}(hcvoid snd_soc_dapm_init_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](j)}(hvoidh]hvoid}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM0ubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPhhhjbhM0ubj3)}(hsnd_soc_dapm_init_bias_levelh]j9)}(hsnd_soc_dapm_init_bias_levelh]hsnd_soc_dapm_init_bias_level}(hjuhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjPhhhjbhM0ubjT)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjwsbc.snd_soc_dapm_init_bias_levelasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(henum snd_soc_bias_level levelh](j`)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNjj)}j]jc.snd_soc_dapm_init_bias_levelasbuh1hhjubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hlevelh]hlevel}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjPhhhjbhM0ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjLhhhjbhM0ubah}(h]jGah ](jmjneh"]h$]h&]jrjs)jthuh1jhjbhM0hjIhhubjv)}(hhh]j{)}(hInitialize DAPM bias levelh]hInitialize DAPM bias level}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM0hjthhubah}(h]h ]h"]h$]h&]uh1juhjIhhhjbhM0ubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM4hjubj)}(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.chM1hjubj)}(hhh]j{)}(hThe DAPM context to initializeh]hThe DAPM context to initialize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM1hjubj)}(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.chM2hjubj)}(hhh]j{)}(hThe DAPM level to initialize toh]hThe DAPM level to initialize to}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM2hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj,h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM4hjubj{)}(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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM3hjubj{)}(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().}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hjubeh}(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](j)}(hbint snd_soc_dapm_set_bias_level (struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h]j )}(haint snd_soc_dapm_set_bias_level(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMCubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj|hhhjhMCubj3)}(hsnd_soc_dapm_set_bias_levelh]j9)}(hsnd_soc_dapm_set_bias_levelh]hsnd_soc_dapm_set_bias_level}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj|hhhjhMCubjT)}(hB(struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_set_bias_levelasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(henum snd_soc_bias_level levelh](j`)}(hj(h]henum}(hj/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj+ubj")}(h h]h }(hj<hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+ubh)}(hhh]j9)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjOmodnameN classnameNjj)}j]jc.snd_soc_dapm_set_bias_levelasbuh1hhj+ubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+ubj9)}(hlevelh]hlevel}(hjyhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShj|hhhjhMCubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjxhhhjhMCubah}(h]jsah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMChjuhhubjv)}(hhh]j{)}(h!set the bias level for the systemh]h!set the bias level for the system}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMChjhhubah}(h]h ]h"]h$]h&]uh1juhjuhhhjhMCubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGhjubj)}(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.chMDhjubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMDhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMDhjubj)}(h5``enum snd_soc_bias_level level`` level to configure h](j)}(h!``enum snd_soc_bias_level level``h]j)}(hjh]henum snd_soc_bias_level level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMEhjubj)}(hhh]j{)}(hlevel to configureh]hlevel to configure}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2hMEhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMEhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjXh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGhjubj{)}(h;Configure the bias (power) levels for the SoC audio device.h]h;Configure the bias (power) levels for the SoC audio device.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMFhjubj{)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMHhjubeh}(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](j)}(hWenum snd_soc_bias_level snd_soc_dapm_get_bias_level (struct snd_soc_dapm_context *dapm)h]j )}(hVenum snd_soc_bias_level snd_soc_dapm_get_bias_level(struct snd_soc_dapm_context *dapm)h](j`)}(hj(h]henum}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMiubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMiubh)}(hhh]j9)}(hsnd_soc_bias_levelh]hsnd_soc_bias_level}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_get_bias_levelsbc.snd_soc_dapm_get_bias_levelasbuh1hhjhhhjhMiubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMiubj3)}(hsnd_soc_dapm_get_bias_levelh]j9)}(hjh]hsnd_soc_dapm_get_bias_level}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMiubjT)}(h#(struct snd_soc_dapm_context *dapm)h]jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]jc.snd_soc_dapm_get_bias_levelasbuh1hhjubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hjphhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMiubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMiubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMihjhhubjv)}(hhh]j{)}(hGet current DAPM bias levelh]hGet current DAPM bias level}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMihjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMiubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMmhjubj)}(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.chMjhjubj)}(hhh]j{)}(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&]uh1jzhjhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMjhjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlhjubj{)}(h2The current bias level of the passed DAPM context.h]h2The current bias level of the passed DAPM context.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlhjubeh}(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](j)}(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]j )}(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](j)}(hinth]hint}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2ubj")}(h h]h }(hjjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWhhhjihM2ubj3)}(h&snd_soc_dapm_dai_get_connected_widgetsh]j9)}(h&snd_soc_dapm_dai_get_connected_widgetsh]h&snd_soc_dapm_dai_get_connected_widgets}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjxubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjWhhhjihM2ubjT)}(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](jZ)}(hstruct snd_soc_dai *daih](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_daih]h snd_soc_dai}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj~sb(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdaih]hdai}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h int streamh](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hstreamh]hstream}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h&struct snd_soc_dapm_widget_list **listh](j`)}(hjch]hstruct}(hj?hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj;ubj")}(h h]h }(hjLhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubh)}(hhh]j9)}(hsnd_soc_dapm_widget_listh]hsnd_soc_dapm_widget_list}(hj]hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhj;ubj")}(h h]h }(hj{hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;ubj9)}(hlisth]hlist}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj;ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hWbool (*custom_stop_condition)(struct snd_soc_dapm_widget*, enum snd_soc_dapm_direction)h](j)}(hj_h]hbool}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjjh]h(}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcustom_stop_conditionh]hcustom_stop_condition}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubj)}(hjh]h)}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjjh]h(}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj4ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9modnameN classnameNjj)}j]j(c.snd_soc_dapm_dai_get_connected_widgetsasbuh1hhjubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h,}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjohhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hj(h]henum}(hj}hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_directionh]hsnd_soc_dapm_direction}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(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&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjWhhhjihM2ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjShhhjihM2ubah}(h]jNah ](jmjneh"]h$]h&]jrjs)jthuh1jhjihM2hjPhhubjv)}(hhh]j{)}(h"query audio path and it's widgets.h]h$query audio path and it’s widgets.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM2hjhhubah}(h]h ]h"]h$]h&]uh1juhjPhhhjihM2ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hXv**Parameters** ``struct snd_soc_dai *dai`` the soc DAI. ``int stream`` stream direction. ``struct snd_soc_dapm_widget_list **list`` list of active widgets for this stream. ``bool (*custom_stop_condition)(struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction)`` (optional) a function meant to stop the widget graph walk based on custom logic. **Description** Queries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets. Optionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise. Returns the number of valid paths or negative error.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM6hjubj)}(hhh](j)}(h)``struct snd_soc_dai *dai`` the soc DAI. h](j)}(h``struct snd_soc_dai *dai``h]j)}(hj#h]hstruct snd_soc_dai *dai}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM3hjubj)}(hhh]j{)}(h the soc DAI.h]h the soc DAI.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj8hM3hj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hM3hjubj)}(h!``int stream`` stream direction. h](j)}(h``int stream``h]j)}(hj\h]h int stream}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM4hjVubj)}(hhh]j{)}(hstream direction.h]hstream direction.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjqhM4hjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhM4hjubj)}(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.chM5hjubj)}(hhh]j{)}(h'list of active widgets for this stream.h]h'list of active widgets for this stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM5hjubj)}(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.chM7hjubj)}(hhh]j{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM7hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hjubj{)}(hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.h]hQueries DAPM graph as to whether a valid audio stream path exists for the initial stream specified by name. This takes into account current mixer and mux kcontrol settings. Creates list of valid widgets.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM8hjubj{)}(hOptionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise.h]hOptionally, can be supplied with a function acting as a stopping condition. This function takes the dapm widget currently being examined and the walk direction as an arguments, it should return true if the walk should be stopped and false otherwise.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM<hjubj{)}(h4Returns the number of valid paths or negative error.h]h4Returns the number of valid paths or negative error.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMAhjubeh}(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](j)}(h=void snd_soc_dapm_free_widget (struct snd_soc_dapm_widget *w)h]j )}(hRemoves 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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM( hjHubeh}(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](j)}(hBint snd_soc_dapm_sync_unlocked (struct snd_soc_dapm_context *dapm)h]j )}(hAint snd_soc_dapm_sync_unlocked(struct snd_soc_dapm_context *dapm)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_soc_dapm_sync_unlockedh]j9)}(hsnd_soc_dapm_sync_unlockedh]hsnd_soc_dapm_sync_unlocked}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h#(struct snd_soc_dapm_context *dapm)h]jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj*hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj&ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjEubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_sync_unlockedasbuh1hhj&ubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj"ubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hscan and power dapm pathsh]hscan and power dapm paths}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM 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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj)h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(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.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(hRequires external locking.h]hRequires external locking.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](j)}(h9int snd_soc_dapm_sync (struct snd_soc_dapm_context *dapm)h]j )}(h8int snd_soc_dapm_sync(struct snd_soc_dapm_context *dapm)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_soc_dapm_synch]j9)}(hsnd_soc_dapm_synch]hsnd_soc_dapm_sync}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h#(struct snd_soc_dapm_context *dapm)h]jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_syncasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hscan and power dapm pathsh]hscan and power dapm paths}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjIhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjdjjdjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhubj)}(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]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjhubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhubeh}(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](j)}(hpint snd_soc_dapm_add_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]j )}(hoint snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhj*hM ubj3)}(hsnd_soc_dapm_add_routesh]j9)}(hsnd_soc_dapm_add_routesh]hsnd_soc_dapm_add_routes}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj*hM ubjT)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjYhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjUubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjwhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj?sbc.snd_soc_dapm_add_routesasbuh1hhjUubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjQubjZ)}(h&const struct snd_soc_dapm_route *routeh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_add_routesasbuh1hhjubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrouteh]hroute}(hj=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjQubjZ)}(hint numh](j)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj")}(h h]h }(hjdhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubj9)}(hnumh]hnum}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjQubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj*hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj*hM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj*hM hjhhubjv)}(hhh]j{)}(hAdd routes between DAPM widgetsh]hAdd routes between DAPM widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj*hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_route *route`` audio routes ``int num`` number of routes **Description** 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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM 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]j{)}(h audio routesh]h audio routes}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj+hM hj,ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj+hM hjubj)}(h``int num`` number of routes h](j)}(h ``int num``h]j)}(hjOh]hint num}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjIubj)}(hhh]j{)}(hnumber of routesh]hnumber of routes}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhM hjeubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjdhM hjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(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&]uh1jzhf/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](j)}(hpint snd_soc_dapm_del_routes (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h]j )}(hoint snd_soc_dapm_del_routes(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_soc_dapm_del_routesh]j9)}(hsnd_soc_dapm_del_routesh]hsnd_soc_dapm_del_routes}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(hT(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_route *route, int num)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj9hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_del_routesasbuh1hhjubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjghhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h&const struct snd_soc_dapm_route *routeh](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_routeh]hsnd_soc_dapm_route}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jUc.snd_soc_dapm_del_routesasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hrouteh]hroute}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hint numh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hnumh]hnum}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(h"Remove routes between DAPM widgetsh]h"Remove routes between DAPM widgets}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjvjjvjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjzubj)}(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]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM 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]j{)}(h audio routesh]h audio routes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM 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)}(hjh]hint num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj)}(hhh]j{)}(hnumber of routesh]hnumber of routes}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj&hM hj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hM hjubeh}(h]h ]h"]h$]h&]uh1jhjzubj{)}(h**Description**h]j)}(hjLh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjzubj{)}(h%Removes routes from the DAPM context.h]h%Removes routes from the DAPM context.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjzubeh}(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](j)}(h8int snd_soc_dapm_new_widgets (struct snd_soc_card *card)h]j )}(h7int snd_soc_dapm_new_widgets(struct snd_soc_card *card)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/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 ]j.ah"]h$]h&]uh1j!hjhhhjhM ubj3)}(hsnd_soc_dapm_new_widgetsh]j9)}(hsnd_soc_dapm_new_widgetsh]hsnd_soc_dapm_new_widgets}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM ubjT)}(h(struct snd_soc_card *card)h]jZ)}(hstruct snd_soc_card *cardh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_cardh]h snd_soc_card}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_new_widgetsasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hcardh]hcard}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubah}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM hjhhubjv)}(hhh]j{)}(hadd new dapm widgetsh]hadd new dapm widgets}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjNhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjmubj)}(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]j{)}(h'card to be checked for new dapm widgetsh]h'card to be checked for new dapm widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjmubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjmubj{)}(hDChecks the codec for any new dapm widgets and creates them if found.h]hDChecks the codec for any new dapm widgets and creates them if found.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjmubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjmubeh}(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](j)}(h_int snd_soc_dapm_get_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h^int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chME ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj/hME ubj3)}(hsnd_soc_dapm_get_volswh]j9)}(hsnd_soc_dapm_get_volswh]hsnd_soc_dapm_get_volsw}(hjBhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhj/hME ubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hj^hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjZubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj|hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj~modnameN classnameNjj)}j]j)}jjDsbc.snd_soc_dapm_get_volswasbuh1hhjZubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjVubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_volswasbuh1hhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjVubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhj/hME ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhj/hME ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj/hME hjhhubjv)}(hhh]j{)}(hdapm mixer get callbackh]hdapm mixer get callback}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chME hjNhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj/hME ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjijjijjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMI hjmubj)}(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.chMF hjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMF hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMF 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.chMG hjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMG hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMG hjubeh}(h]h ]h"]h$]h&]uh1jhjmubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMI hjmubj{)}(h2Callback to get the value of a dapm mixer control.h]h2Callback to get the value of a dapm mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMH hjmubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJ hjmubeh}(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](j)}(h_int snd_soc_dapm_put_volsw (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(h^int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjVhhhjhhM ubj3)}(hsnd_soc_dapm_put_volswh]j9)}(hsnd_soc_dapm_put_volswh]hsnd_soc_dapm_put_volsw}(hj{hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjwubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjVhhhjhhM ubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj}sbc.snd_soc_dapm_put_volswasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj' hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj) modnameN classnameNjj)}j]jc.snd_soc_dapm_put_volswasbuh1hhj ubj")}(h h]h }(hjE hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjS hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hucontrolh]hucontrol}(hj` hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjVhhhjhhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjRhhhjhhM ubah}(h]jMah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhhM hjOhhubjv)}(hhh]j{)}(hdapm mixer set callbackh]hdapm mixer set callback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhjOhhhjhhM 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 mixer control. Returns 0 for success.h](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 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]j{)}(hcontrol element informationh]hcontrol element information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 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 ubj{)}(h**Description**h]j)}(hj? h]h Description}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj= ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj{)}(h2Callback to set the value of a dapm mixer control.h]h2Callback to set the value of a dapm mixer control.}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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_get_enum_double (C function)c.snd_soc_dapm_get_enum_doublehNtauh1hhjhhhNhNubh)}(hhh](j)}(heint snd_soc_dapm_get_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hdint snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j.ah"]h$]h&]uh1j!hj hhhj hM ubj3)}(hsnd_soc_dapm_get_enum_doubleh]j9)}(hsnd_soc_dapm_get_enum_doubleh]hsnd_soc_dapm_get_enum_double}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hM ubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jj sbc.snd_soc_dapm_get_enum_doubleasbuh1hhj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hkcontrolh]hkcontrol}(hj) hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjB hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj> ubj")}(h h]h }(hjO hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj> ubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj` hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj] ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjb modnameN classnameNjj)}j]j c.snd_soc_dapm_get_enum_doubleasbuh1hhj> ubj")}(h h]h }(hj~ hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj> ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj> ubj9)}(hucontrolh]hucontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj> ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hM ubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hM hj hhubjv)}(hhh]j{)}(h)dapm enumerated double mixer get callbackh]h)dapm enumerated double mixer get callback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhj 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 get the value of a dapm enumerated double mixer control. Returns 0 for success.h](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj 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 hj7 ubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjR hM hjS ubah}(h]h ]h"]h$]h&]uh1jhj7 ubeh}(h]h ]h"]h$]h&]uh1jhjR hM hj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hjx h]h Description}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj ubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](j)}(heint snd_soc_dapm_put_enum_double (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hdint snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj 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 ]j.ah"]h$]h&]uh1j!hj hhhj hM ubj3)}(hsnd_soc_dapm_put_enum_doubleh]j9)}(hsnd_soc_dapm_put_enum_doubleh]hsnd_soc_dapm_put_enum_double}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj hhhj hM ubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hj hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj' hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj) modnameN classnameNjj)}j]j)}jj sbc.snd_soc_dapm_put_enum_doubleasbuh1hhj ubj")}(h h]h }(hjG hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj ubj)}(hjh]h*}(hjU hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj9)}(hkcontrolh]hkcontrol}(hjb hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hj{ hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjw ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjw ubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jC c.snd_soc_dapm_put_enum_doubleasbuh1hhjw ubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjw ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw ubj9)}(hucontrolh]hucontrol}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjw ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj hhhj hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj hhhj hM ubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hM hj hhubjv)}(hhh]j{)}(h)dapm enumerated double mixer set callbackh]h)dapm enumerated double mixer set callback}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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&]uh1juhj hhhj hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_kcontrol *kcontrol`` mixer control ``struct snd_ctl_elem_value *ucontrol`` control element information **Description** Callback to set the value of a dapm enumerated double mixer control. Returns 0 for success.h](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(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 hj7ubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjRhM hjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhM hj4ubj)}(hD``struct snd_ctl_elem_value *ucontrol`` control element information 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.chM hjpubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhM hj4ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj{)}(hDCallback to set the value of a dapm enumerated double mixer control.h]hDCallback to set the value of a dapm enumerated double mixer control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjubj{)}(hReturns 0 for success.h]hReturns 0 for success.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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_info_pin_switch (C function)c.snd_soc_dapm_info_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](j)}(haint snd_soc_dapm_info_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h]j )}(h`int snd_soc_dapm_info_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhM9ubj3)}(hsnd_soc_dapm_info_pin_switchh]j9)}(hsnd_soc_dapm_info_pin_switchh]hsnd_soc_dapm_info_pin_switch}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj"ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhM9ubjT)}(h@(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjBhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj>ubj")}(h h]h }(hjOhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jj(sbc.snd_soc_dapm_info_pin_switchasbuh1hhj>ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj:ubjZ)}(hstruct snd_ctl_elem_info *uinfoh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_infoh]hsnd_ctl_elem_info}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j|c.snd_soc_dapm_info_pin_switchasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(huinfoh]huinfo}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj:ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhM9ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhM9ubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhM9hjhhubjv)}(hhh]j{)}(hInfo for a pin switchh]hInfo for a pin switch}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hj2hhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhM9ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjWh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM=hjQubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjvh]hstruct snd_kcontrol *kcontrol}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM;hjpubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM;hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhM;hjmubj)}(h@``struct snd_ctl_elem_info *uinfo`` control element information h](j)}(h#``struct snd_ctl_elem_info *uinfo``h]j)}(hjh]hstruct snd_ctl_elem_info *uinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM<hjubj)}(hhh]j{)}(hcontrol element informationh]hcontrol element information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM<hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM<hjmubeh}(h]h ]h"]h$]h&]uh1jhjQubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM>hjQubj{)}(h;Callback to provide information about a pin switch control.h]h;Callback to provide information about a pin switch control.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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_get_pin_switch (C function)c.snd_soc_dapm_get_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](j)}(hdint snd_soc_dapm_get_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hcint snd_soc_dapm_get_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMXubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+hhhj=hMXubj3)}(hsnd_soc_dapm_get_pin_switchh]j9)}(hsnd_soc_dapm_get_pin_switchh]hsnd_soc_dapm_get_pin_switch}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj+hhhj=hMXubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjlhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhubj")}(h h]h }(hjyhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjRsbc.snd_soc_dapm_get_pin_switchasbuh1hhjhubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_get_pin_switchasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjdubeh}(h]h ]h"]h$]h&]jQjRuh1jShj+hhhj=hMXubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj'hhhj=hMXubah}(h]j"ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj=hMXhj$hhubjv)}(hhh]j{)}(h Get information for a pin switchh]h Get information for a pin switch}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMXhj\hhubah}(h]h ]h"]h$]h&]uh1juhj$hhhj=hMXubeh}(h]h ](jfunctioneh"]h$]h&]jjjjwjjwjjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM\hj{ubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMZhjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMZhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMZhjubj)}(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]j{)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM[hjubeh}(h]h ]h"]h$]h&]uh1jhj{ubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM]hj{ubj{)}(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.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](h2snd_soc_dapm_get_component_pin_switch (C function)'c.snd_soc_dapm_get_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](j)}(hnint snd_soc_dapm_get_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hmint snd_soc_dapm_get_component_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUhhhjghMlubj3)}(h%snd_soc_dapm_get_component_pin_switchh]j9)}(h%snd_soc_dapm_get_component_pin_switchh]h%snd_soc_dapm_get_component_pin_switch}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjUhhhjghMlubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jj|sb'c.snd_soc_dapm_get_component_pin_switchasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNjj)}j]j'c.snd_soc_dapm_get_component_pin_switchasbuh1hhjubj")}(h h]h }(hjDhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hucontrolh]hucontrol}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjUhhhjghMlubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjQhhhjghMlubah}(h]jLah ](jmjneh"]h$]h&]jrjs)jthuh1jhjghMlhjNhhubjv)}(hhh]j{)}(h Get information for a pin switchh]h Get information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMlhjhhubah}(h]h ]h"]h$]h&]uh1juhjNhhhjghMlubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMphjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMnhjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMnhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMnhjubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjh]h#struct snd_ctl_elem_value *ucontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMohjubj)}(hhh]j{)}(hValueh]hValue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMohjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hj>h]h Description}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMqhjubj{)}(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.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMphjubeh}(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](j)}(hdint snd_soc_dapm_put_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hcint snd_soc_dapm_put_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hsnd_soc_dapm_put_pin_switchh]j9)}(hsnd_soc_dapm_put_pin_switchh]hsnd_soc_dapm_put_pin_switch}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_put_pin_switchasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hj2hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj.ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNjj)}j]jc.snd_soc_dapm_put_pin_switchasbuh1hhj.ubj")}(h h]h }(hjnhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj.ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj{hhhjhMubah}(h]jvah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjxhhubjv)}(hhh]j{)}(h Set information for a pin switchh]h Set information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjxhhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hj-h]h#struct snd_ctl_elem_value *ucontrol}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj'ubj)}(hhh]j{)}(hValueh]hValue}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjhh]h Description}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj{)}(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.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](h2snd_soc_dapm_put_component_pin_switch (C function)'c.snd_soc_dapm_put_component_pin_switchhNtauh1hhjhhhNhNubh)}(hhh](j)}(hnint snd_soc_dapm_put_component_pin_switch (struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h]j )}(hmint snd_soc_dapm_put_component_pin_switch(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(h%snd_soc_dapm_put_component_pin_switchh]j9)}(h%snd_soc_dapm_put_component_pin_switchh]h%snd_soc_dapm_put_component_pin_switch}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMubjT)}(hD(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)h](jZ)}(hstruct snd_kcontrol *kcontrolh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_kcontrolh]h snd_kcontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]j)}jjsb'c.snd_soc_dapm_put_component_pin_switchasbuh1hhjubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hkcontrolh]hkcontrol}(hjChhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h#struct snd_ctl_elem_value *ucontrolh](j`)}(hjch]hstruct}(hj\hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjXubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubh)}(hhh]j9)}(hsnd_ctl_elem_valueh]hsnd_ctl_elem_value}(hjzhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjwubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj|modnameN classnameNjj)}j]j$'c.snd_soc_dapm_put_component_pin_switchasbuh1hhjXubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubj9)}(hucontrolh]hucontrol}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]j{)}(h Set information for a pin switchh]h Set information for a pin switch}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh](j)}(h0``struct snd_kcontrol *kcontrol`` mixer control h](j)}(h!``struct snd_kcontrol *kcontrol``h]j)}(hjh]hstruct snd_kcontrol *kcontrol}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj)}(hhh]j{)}(h mixer controlh]h mixer control}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj3hMhj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hMhjubj)}(h.``struct snd_ctl_elem_value *ucontrol`` Value h](j)}(h'``struct snd_ctl_elem_value *ucontrol``h]j)}(hjWh]h#struct snd_ctl_elem_value *ucontrol}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjQubj)}(hhh]j{)}(hValueh]hValue}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjlhMhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjubj{)}(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&]uh1jzhf/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_control (C function)c.snd_soc_dapm_new_controlhNtauh1hhjhhhNhNubh)}(hhh](j)}(hstruct snd_soc_dapm_widget * snd_soc_dapm_new_control (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h]j )}(hstruct snd_soc_dapm_widget *snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMGubh)}(hhh]j9)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jsnd_soc_dapm_new_controlsbc.snd_soc_dapm_new_controlasbuh1hhjhhhjhMGubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhMGubj)}(hjh]h*}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMGubj3)}(hsnd_soc_dapm_new_controlh]j9)}(hjh]hsnd_soc_dapm_new_control}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhhhjhMGubjT)}(hM(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjQhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjMubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjohhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlasbuh1hhjMubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubjZ)}(h(const struct snd_soc_dapm_widget *widgeth](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hwidgeth]hwidget}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjIubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhhhjhMGubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjhhhjhMGubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMGhjhhubjv)}(hhh]j{)}(hcreate new dapm controlh]hcreate new dapm control}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMGhjZhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMGubeh}(h]h ](jfunctioneh"]h$]h&]jjjjujjujjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMKhjyubj)}(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.chMHhjubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMHhjubj)}(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.chMIhjubj)}(hhh]j{)}(hwidget templateh]hwidget template}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMIhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMIhjubeh}(h]h ]h"]h$]h&]uh1jhjyubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMKhjyubj{)}(h/Creates new DAPM control based upon a template.h]h/Creates new DAPM control based upon a template.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMJhjyubj{)}(hBReturns a widget pointer on success or an error pointer on failureh]hBReturns a widget pointer on success or an error pointer on failure}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMLhjyubeh}(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](j)}(h}int snd_soc_dapm_new_controls (struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h]j )}(h|int snd_soc_dapm_new_controls(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](j)}(hinth]hint}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM^ubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbhhhjthM^ubj3)}(hsnd_soc_dapm_new_controlsh]j9)}(hsnd_soc_dapm_new_controlsh]hsnd_soc_dapm_new_controls}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjbhhhjthM^ubjT)}(h_(struct snd_soc_dapm_context *dapm, const struct snd_soc_dapm_widget *widget, unsigned int num)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.snd_soc_dapm_new_controlsasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(h(const struct snd_soc_dapm_widget *widgeth](j`)}(hjph]hconst}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj`)}(hjch]hstruct}(hj0hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hsnd_soc_dapm_widgeth]hsnd_soc_dapm_widget}(hjNhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjPmodnameN classnameNjj)}j]jc.snd_soc_dapm_new_controlsasbuh1hhjubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hwidgeth]hwidget}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubjZ)}(hunsigned int numh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hnumh]hnum}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjubeh}(h]h ]h"]h$]h&]jQjRuh1jShjbhhhjthM^ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj^hhhjthM^ubah}(h]jYah ](jmjneh"]h$]h&]jrjs)jthuh1jhjthM^hj[hhubjv)}(hhh]j{)}(hcreate new dapm controlsh]hcreate new dapm controls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM^hjhhubah}(h]h ]h"]h$]h&]uh1juhj[hhhjthM^ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhjhNhNubj)}(hX**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const struct snd_soc_dapm_widget *widget`` widget array ``unsigned int num`` number of widgets **Description** Creates new DAPM controls based upon the templates. Returns 0 for success else error.h](j{)}(h**Parameters**h]j)}(hj$h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMbhjubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hjCh]h!struct snd_soc_dapm_context *dapm}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(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]j{)}(h DAPM contexth]h DAPM context}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjXhM_hjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhM_hj:ubj)}(h:``const struct snd_soc_dapm_widget *widget`` widget array h](j)}(h,``const struct snd_soc_dapm_widget *widget``h]j)}(hj|h]h(const struct snd_soc_dapm_widget *widget}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM`hjvubj)}(hhh]j{)}(h widget arrayh]h widget array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhM`hjubah}(h]h ]h"]h$]h&]uh1jhjvubeh}(h]h ]h"]h$]h&]uh1jhjhM`hj:ubj)}(h'``unsigned int num`` number of widgets h](j)}(h``unsigned int num``h]j)}(hjh]hunsigned int num}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMahjubj)}(hhh]j{)}(hnumber of widgetsh]hnumber of widgets}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhMahjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMahj:ubeh}(h]h ]h"]h$]h&]uh1jhjubj{)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMchjubj{)}(h3Creates new DAPM controls based upon the templates.h]h3Creates new DAPM controls based upon the templates.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMbhjubj{)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMdhjubeh}(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](j)}(h]int snd_soc_dapm_new_dai_widgets (struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h]j )}(h\int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](j)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj")}(h h]h }(hjShhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj@hhhjRhM ubj3)}(hsnd_soc_dapm_new_dai_widgetsh]j9)}(hsnd_soc_dapm_new_dai_widgetsh]hsnd_soc_dapm_new_dai_widgets}(hjehhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjaubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj@hhhjRhM ubjT)}(h<(struct snd_soc_dapm_context *dapm, struct snd_soc_dai *dai)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjgsbc.snd_soc_dapm_new_dai_widgetsasbuh1hhj}ubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj}ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubj9)}(hdapmh]hdapm}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjyubjZ)}(hstruct snd_soc_dai *daih](j`)}(hjch]hstruct}(hjhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(h snd_soc_daih]h snd_soc_dai}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNjj)}j]jc.snd_soc_dapm_new_dai_widgetsasbuh1hhjubj")}(h h]h }(hj/ hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(hdaih]hdai}(hjJ hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjyubeh}(h]h ]h"]h$]h&]jQjRuh1jShj@hhhjRhM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj<hhhjRhM ubah}(h]j7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjRhM hj9hhubjv)}(hhh]j{)}(hCreate new DAPM widgetsh]hCreate new DAPM widgets}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hjq hhubah}(h]h ]h"]h$]h&]uh1juhj9hhhjRhM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj jj jjjuh1hhhhjhNhNubj)}(h**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``struct snd_soc_dai *dai`` parent DAI **Description** Returns 0 on success, error code otherwise.h](j{)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jzhf/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.chM hj ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj hM hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM hj ubj)}(h'``struct snd_soc_dai *dai`` parent DAI h](j)}(h``struct snd_soc_dai *dai``h]j)}(hj h]hstruct snd_soc_dai *dai}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj)}(hhh]j{)}(h parent DAIh]h parent DAI}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj!hMhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj!hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj{)}(h**Description**h]j)}(hj)!h]h Description}(hj+!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'!ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubj{)}(h+Returns 0 on success, error code otherwise.h]h+Returns 0 on success, error code otherwise.}(hj?!hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&snd_soc_dapm_stream_event (C function)c.snd_soc_dapm_stream_eventhNtauh1hhjhhhNhNubh)}(hhh](j)}(hWvoid snd_soc_dapm_stream_event (struct snd_soc_pcm_runtime *rtd, int stream, int event)h]j )}(hVvoid snd_soc_dapm_stream_event(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](j)}(hvoidh]hvoid}(hjn!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj!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 ]j.ah"]h$]h&]uh1j!hjj!hhhj|!hM ubj3)}(hsnd_soc_dapm_stream_eventh]j9)}(hsnd_soc_dapm_stream_eventh]hsnd_soc_dapm_stream_event}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj!ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjj!hhhj|!hM ubjT)}(h8(struct snd_soc_pcm_runtime *rtd, int stream, int event)h](jZ)}(hstruct snd_soc_pcm_runtime *rtdh](j`)}(hjch]hstruct}(hj!hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj!ubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!ubh)}(hhh]j9)}(hsnd_soc_pcm_runtimeh]hsnd_soc_pcm_runtime}(hj!hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jj!sbc.snd_soc_dapm_stream_eventasbuh1hhj!ubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj9)}(hrtdh]hrtd}(hj"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj!ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubjZ)}(h int streamh](j)}(hinth]hint}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj")}(h h]h }(hj+"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"ubj9)}(hstreamh]hstream}(hj9"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj"ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubjZ)}(h int eventh](j)}(hinth]hint}(hjR"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN"ubj")}(h h]h }(hj`"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjN"ubj9)}(heventh]hevent}(hjn"hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjN"ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj!ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjj!hhhj|!hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjf!hhhj|!hM ubah}(h]ja!ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj|!hM hjc!hhubjv)}(hhh]j{)}(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&]uh1jzhf/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&]uh1juhjc!hhhj|!hM ubeh}(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](j{)}(h**Parameters**h]j)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(hPCM runtime datah]hPCM runtime data}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj"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&]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]j{)}(h stream nameh]h stream name}(hj+#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'#hMhj(#ubah}(h]h ]h"]h$]h&]uh1jhj #ubeh}(h]h ]h"]h$]h&]uh1jhj'#hMhj"ubj)}(h``int event`` stream event h](j)}(h ``int event``h]j)}(hjK#h]h int event}(hjM#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI#ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjE#ubj)}(hhh]j{)}(h stream eventh]h stream event}(hjd#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj`#hMhja#ubah}(h]h ]h"]h$]h&]uh1jhjE#ubeh}(h]h ]h"]h$]h&]uh1jhj`#hMhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubj{)}(h**Description**h]j)}(hj#h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj"ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj"ubj{)}(h!Returns 0 for success else error.h]h!Returns 0 for success else error.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/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](j)}(hYint snd_soc_dapm_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hXint snd_soc_dapm_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9ubj")}(h h]h }(hj#hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#hhhj#hM9ubj3)}(h snd_soc_dapm_enable_pin_unlockedh]j9)}(h snd_soc_dapm_enable_pin_unlockedh]h snd_soc_dapm_enable_pin_unlocked}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj#ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj#hhhj#hM9ubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj$hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj$ubj")}(h h]h }(hj$$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj5$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7$modnameN classnameNjj)}j]j)}jj#sb"c.snd_soc_dapm_enable_pin_unlockedasbuh1hhj$ubj")}(h h]h }(hjU$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hjc$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(hdapmh]hdapm}(hjp$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj$hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj$ubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hcharh]hchar}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(hpinh]hpin}(hj$hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj$ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj#hhhj#hM9ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj#hhhj#hM9ubah}(h]j#ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj#hM9hj#hhubjv)}(hhh]j{)}(h enable pin.h]h enable pin.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM9hj$hhubah}(h]h ]h"]h$]h&]uh1juhj#hhhj#hM9ubeh}(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 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](j{)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhf/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)}(hj8%h]h!struct snd_soc_dapm_context *dapm}(hj:%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6%ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM:hj2%ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hjQ%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjM%hM:hjN%ubah}(h]h ]h"]h$]h&]uh1jhj2%ubeh}(h]h ]h"]h$]h&]uh1jhjM%hM:hj/%ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hjq%h]hconst char *pin}(hjs%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo%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;hjk%ubj)}(hhh]j{)}(hpin nameh]hpin name}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj%hM;hj%ubah}(h]h ]h"]h$]h&]uh1jhjk%ubeh}(h]h ]h"]h$]h&]uh1jhj%hM;hj/%ubeh}(h]h ]h"]h$]h&]uh1jhj%ubj{)}(h**Description**h]j)}(hj%h]h Description}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM=hj%ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM<hj%ubj{)}(hRequires external locking.h]hRequires external locking.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM?hj%ubj{)}(h**NOTE**h]j)}(hj%h]hNOTE}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMAhj%ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMBhj%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](j)}(hPint snd_soc_dapm_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hOint snd_soc_dapm_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj'&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#&hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMMubj")}(h h]h }(hj6&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj#&hhhj5&hMMubj3)}(hsnd_soc_dapm_enable_pinh]j9)}(hsnd_soc_dapm_enable_pinh]hsnd_soc_dapm_enable_pin}(hjH&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjD&ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj#&hhhj5&hMMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjd&hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj`&ubj")}(h h]h }(hjq&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`&ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jjJ&sbc.snd_soc_dapm_enable_pinasbuh1hhj`&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`&ubj9)}(hdapmh]hdapm}(hj&hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj\&ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj&hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hcharh]hchar}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hjh]h*}(hj 'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj9)}(hpinh]hpin}(hj'hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj\&ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj#&hhhj5&hMMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj&hhhj5&hMMubah}(h]j&ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj5&hMMhj&hhubjv)}(hhh]j{)}(h enable pin.h]h enable pin.}(hjD'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMMhjA'hhubah}(h]h ]h"]h$]h&]uh1juhj&hhhj5&hMMubeh}(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](j{)}(h**Parameters**h]j)}(hjf'h]h Parameters}(hjh'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd'ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMQhj`'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.chMNhj'ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMNhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMNhj|'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.chMOhj'ubj)}(hhh]j{)}(hpin nameh]hpin name}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'hMOhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMOhj|'ubeh}(h]h ]h"]h$]h&]uh1jhj`'ubj{)}(h**Description**h]j)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMQhj`'ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMPhj`'ubj{)}(h**NOTE**h]j)}(hj (h]hNOTE}(hj"(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMShj`'ubj{)}(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.}(hj6(hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMThj`'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_soc_dapm_force_enable_pin_unlocked (C function)(c.snd_soc_dapm_force_enable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](j)}(h_int snd_soc_dapm_force_enable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(h^int snd_soc_dapm_force_enable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hje(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhja(hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMfubj")}(h h]h }(hjt(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hja(hhhjs(hMfubj3)}(h&snd_soc_dapm_force_enable_pin_unlockedh]j9)}(h&snd_soc_dapm_force_enable_pin_unlockedh]h&snd_soc_dapm_force_enable_pin_unlocked}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hja(hhhjs(hMfubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj(hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj(ubj")}(h h]h }(hj(hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj(ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(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 ]j.ah"]h$]h&]uh1j!hj(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj9)}(hdapmh]hdapm}(hj(hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj(ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj)hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj)ubj")}(h h]h }(hj!)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hcharh]hchar}(hj/)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj")}(h h]h }(hj=)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hjK)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(hpinh]hpin}(hjX)hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj(ubeh}(h]h ]h"]h$]h&]jQjRuh1jShja(hhhjs(hMfubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj](hhhjs(hMfubah}(h]jX(ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjs(hMfhjZ(hhubjv)}(hhh]j{)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMfhj)hhubah}(h]h ]h"]h$]h&]uh1juhjZ(hhhjs(hMfubeh}(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](j{)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMjhj)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.chMghj)ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj)hMghj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hMghj)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.chMhhj)ubj)}(hhh]j{)}(hpin nameh]hpin name}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj*hMhhj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj*hMhhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubj{)}(h**Description**h]j)}(hj7*h]h Description}(hj9*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5*ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMjhj)ubj{)}(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.}(hjM*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMihj)ubj{)}(hRequires external locking.h]hRequires external locking.}(hj\*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMmhj)ubj{)}(h**NOTE**h]j)}(hjm*h]hNOTE}(hjo*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk*ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMohj)ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMphj)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](j)}(hVint snd_soc_dapm_force_enable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hUint snd_soc_dapm_force_enable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*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 ]j.ah"]h$]h&]uh1j!hj*hhhj*hMubj3)}(hsnd_soc_dapm_force_enable_pinh]j9)}(hsnd_soc_dapm_force_enable_pinh]hsnd_soc_dapm_force_enable_pin}(hj*hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj*hhhj*hMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj*hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj*ubj")}(h h]h }(hj*hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj*ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj +hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj +ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+modnameN classnameNjj)}j]j)}jj*sbc.snd_soc_dapm_force_enable_pinasbuh1hhj*ubj")}(h h]h }(hj-+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj*ubj)}(hjh]h*}(hj;+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj9)}(hdapmh]hdapm}(hjH+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj*ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hja+hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj]+ubj")}(h h]h }(hjn+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]+ubj)}(hcharh]hchar}(hj|+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]+ubj")}(h h]h }(hj+hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]+ubj9)}(hpinh]hpin}(hj+hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]+ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj*ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj*hhhj*hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj*hhhj*hMubah}(h]j*ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj*hMhj*hhubjv)}(hhh]j{)}(hforce a pin to be enabledh]hforce a pin to be enabled}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj+hhubah}(h]h ]h"]h$]h&]uh1juhj*hhhj*hMubeh}(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](j{)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jzhf/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]j{)}(h DAPM contexth]h DAPM context}(hj),hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj%,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)}(hjI,h]hconst char *pin}(hjK,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG,ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjC,ubj)}(hhh]j{)}(hpin nameh]hpin name}(hjb,hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj^,hMhj_,ubah}(h]h ]h"]h$]h&]uh1jhjC,ubeh}(h]h ]h"]h$]h&]uh1jhj^,hMhj,ubeh}(h]h ]h"]h$]h&]uh1jhj+ubj{)}(h**Description**h]j)}(hj,h]h Description}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj+ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj+ubj{)}(h**NOTE**h]j)}(hj,h]hNOTE}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj+ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h.snd_soc_dapm_disable_pin_unlocked (C function)#c.snd_soc_dapm_disable_pin_unlockedhNtauh1hhjhhhNhNubh)}(hhh](j)}(hZint snd_soc_dapm_disable_pin_unlocked (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hYint snd_soc_dapm_disable_pin_unlocked(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,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 ]j.ah"]h$]h&]uh1j!hj,hhhj,hMubj3)}(h!snd_soc_dapm_disable_pin_unlockedh]j9)}(h!snd_soc_dapm_disable_pin_unlockedh]h!snd_soc_dapm_disable_pin_unlocked}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj -ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj,hhhj,hMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj--hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj)-ubj")}(h h]h }(hj:-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)-ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hjK-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjH-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjM-modnameN classnameNjj)}j]j)}jj-sb#c.snd_soc_dapm_disable_pin_unlockedasbuh1hhj)-ubj")}(h h]h }(hjk-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)-ubj)}(hjh]h*}(hjy-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)-ubj9)}(hdapmh]hdapm}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj)-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj%-ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj-hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj-ubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hcharh]hchar}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(hpinh]hpin}(hj-hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj%-ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj,hhhj,hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj,hhhj,hMubah}(h]j,ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj,hMhj,hhubjv)}(hhh]j{)}(h disable pin.h]h disable pin.}(hj .hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj .hhubah}(h]h ]h"]h$]h&]uh1juhj,hhhj,hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%.jj%.jjjuh1hhhhjhNhNubj)}(hX9**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context ``const char *pin`` pin name **Description** Disables input/output pin and its parents or children widgets. Requires external locking. **NOTE** snd_soc_dapm_sync() needs to be called after this for DAPM to do any widget power switching.h](j{)}(h**Parameters**h]j)}(hj/.h]h Parameters}(hj1.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-.ubah}(h]h ]h"]h$]h&]uh1jzhf/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)}(hjN.h]h!struct snd_soc_dapm_context *dapm}(hjP.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL.ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjH.ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hjg.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjc.hMhjd.ubah}(h]h ]h"]h$]h&]uh1jhjH.ubeh}(h]h ]h"]h$]h&]uh1jhjc.hMhjE.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]j{)}(hpin nameh]hpin name}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj.hMhj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hMhjE.ubeh}(h]h ]h"]h$]h&]uh1jhj).ubj{)}(h**Description**h]j)}(hj.h]h Description}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj).ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj).ubj{)}(hRequires external locking.h]hRequires external locking.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj).ubj{)}(h**NOTE**h]j)}(hj.h]hNOTE}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj).ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj).ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%snd_soc_dapm_disable_pin (C function)c.snd_soc_dapm_disable_pinhNtauh1hhjhhhNhNubh)}(hhh](j)}(hQint snd_soc_dapm_disable_pin (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hPint snd_soc_dapm_disable_pin(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj=/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9/hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hjL/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9/hhhjK/hMubj3)}(hsnd_soc_dapm_disable_pinh]j9)}(hsnd_soc_dapm_disable_pinh]hsnd_soc_dapm_disable_pin}(hj^/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjZ/ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj9/hhhjK/hMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hjz/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjv/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjv/ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj/modnameN classnameNjj)}j]j)}jj`/sbc.snd_soc_dapm_disable_pinasbuh1hhjv/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjv/ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjv/ubj9)}(hdapmh]hdapm}(hj/hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjv/ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjr/ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj/hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj)}(hcharh]hchar}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj)}(hjh]h*}(hj#0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj9)}(hpinh]hpin}(hj00hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj/ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjr/ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj9/hhhjK/hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj5/hhhjK/hMubah}(h]j0/ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjK/hMhj2/hhubjv)}(hhh]j{)}(h disable pin.h]h disable pin.}(hjZ0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjW0hhubah}(h]h ]h"]h$]h&]uh1juhj2/hhhjK/hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjr0jjr0jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj|0h]h Parameters}(hj~0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz0ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjv0ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj0h]h!struct snd_soc_dapm_context *dapm}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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]j{)}(h DAPM contexth]h DAPM context}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj0ubj)}(h``const char *pin`` pin name h](j)}(h``const char *pin``h]j)}(hj0h]hconst char *pin}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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]j{)}(hpin nameh]hpin name}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0hMhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMhj0ubeh}(h]h ]h"]h$]h&]uh1jhjv0ubj{)}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 1ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjv0ubj{)}(h>Disables input/output pin and its parents or children widgets.h]h>Disables input/output pin and its parents or children widgets.}(hj%1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjv0ubj{)}(h**NOTE**h]j)}(hj61h]hNOTE}(hj81hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj41ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjv0ubj{)}(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.}(hjL1hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhjv0ubeh}(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](j)}(hTint snd_soc_dapm_get_pin_status (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hSint snd_soc_dapm_get_pin_status(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj{1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw1hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjw1hhhj1hMubj3)}(hsnd_soc_dapm_get_pin_statush]j9)}(hsnd_soc_dapm_get_pin_statush]hsnd_soc_dapm_get_pin_status}(hj1hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjw1hhhj1hMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj1hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj1ubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj1hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNjj)}j]j)}jj1sbc.snd_soc_dapm_get_pin_statusasbuh1hhj1ubj")}(h h]h }(hj1hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj1ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj9)}(hdapmh]hdapm}(hj2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj1ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hj*2hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj&2ubj")}(h h]h }(hj72hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&2ubj)}(hcharh]hchar}(hjE2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&2ubj")}(h h]h }(hjS2hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&2ubj)}(hjh]h*}(hja2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&2ubj9)}(hpinh]hpin}(hjn2hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&2ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj1ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjw1hhhj1hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjs1hhhj1hMubah}(h]jn1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hMhjp1hhubjv)}(hhh]j{)}(hget audio pin statush]hget audio pin status}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2hhubah}(h]h ]h"]h$]h&]uh1juhjp1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj2jj2jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj)}(hhh](j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj2h]h!struct snd_soc_dapm_context *dapm}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMhj2ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hj3h]hconst char *pin}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(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]j{)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hj+3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj'3hMhj(3ubah}(h]h ]h"]h$]h&]uh1jhj 3ubeh}(h]h ]h"]h$]h&]uh1jhj'3hMhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubj{)}(h**Description**h]j)}(hjM3h]h Description}(hjO3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK3ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj{)}(h1Get audio pin status - connected or disconnected.h]h1Get audio pin status - connected or disconnected.}(hjc3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubj{)}(h$Returns 1 for connected otherwise 0.h]h$Returns 1 for connected otherwise 0.}(hjr3hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj2ubeh}(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](j)}(hTint snd_soc_dapm_ignore_suspend (struct snd_soc_dapm_context *dapm, const char *pin)h]j )}(hSint snd_soc_dapm_ignore_suspend(struct snd_soc_dapm_context *dapm, const char *pin)h](j)}(hinth]hint}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3hhhj3hMubj3)}(hsnd_soc_dapm_ignore_suspendh]j9)}(hsnd_soc_dapm_ignore_suspendh]hsnd_soc_dapm_ignore_suspend}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj3hhhj3hMubjT)}(h4(struct snd_soc_dapm_context *dapm, const char *pin)h](jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj3hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj3ubj")}(h h]h }(hj3hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj3hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj3modnameN classnameNjj)}j]j)}jj3sbc.snd_soc_dapm_ignore_suspendasbuh1hhj3ubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3ubj)}(hjh]h*}(hj*4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubj9)}(hdapmh]hdapm}(hj74hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj3ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj3ubjZ)}(hconst char *pinh](j`)}(hjph]hconst}(hjP4hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjL4ubj")}(h h]h }(hj]4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjL4ubj)}(hcharh]hchar}(hjk4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL4ubj")}(h h]h }(hjy4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjL4ubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL4ubj9)}(hpinh]hpin}(hj4hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjL4ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj3ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj3hhhj3hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj3hhhj3hMubah}(h]j3ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj3hMhj3hhubjv)}(hhh]j{)}(h'ignore suspend status for DAPM endpointh]h'ignore suspend status for DAPM endpoint}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4hhubah}(h]h ]h"]h$]h&]uh1juhj3hhhj3hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4jj4jjjuh1hhhhjhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jzhf/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}(hj5hhhNhNubah}(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]j{)}(h DAPM contexth]h DAPM context}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhj4ubj)}(h?``const char *pin`` audio signal pin endpoint (or start point) h](j)}(h``const char *pin``h]j)}(hj85h]hconst char *pin}(hj:5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj65ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj25ubj)}(hhh]j{)}(h*audio signal pin endpoint (or start point)h]h*audio signal pin endpoint (or start point)}(hjQ5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjM5hMhjN5ubah}(h]h ]h"]h$]h&]uh1jhj25ubeh}(h]h ]h"]h$]h&]uh1jhjM5hMhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj{)}(h**Description**h]j)}(hjs5h]h Description}(hju5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq5ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4ubj{)}(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.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj4ubeh}(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](j)}(h:void snd_soc_dapm_free (struct snd_soc_dapm_context *dapm)h]j )}(h9void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm)h](j)}(hvoidh]hvoid}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM ubj")}(h h]h }(hj5hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5hhhj5hM ubj3)}(hsnd_soc_dapm_freeh]j9)}(hsnd_soc_dapm_freeh]hsnd_soc_dapm_free}(hj5hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj5hhhj5hM ubjT)}(h#(struct snd_soc_dapm_context *dapm)h]jZ)}(h!struct snd_soc_dapm_context *dapmh](j`)}(hjch]hstruct}(hj5hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj5ubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubh)}(hhh]j9)}(hsnd_soc_dapm_contexth]hsnd_soc_dapm_context}(hj6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNjj)}j]j)}jj5sbc.snd_soc_dapm_freeasbuh1hhj5ubj")}(h h]h }(hj36hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj5ubj)}(hjh]h*}(hjA6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubj9)}(hdapmh]hdapm}(hjN6hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj5ubah}(h]h ]h"]h$]h&]jQjRuh1jShj5hhhj5hM ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj5hhhj5hM ubah}(h]j5ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj5hM hj5hhubjv)}(hhh]j{)}(hfree dapm resourcesh]hfree dapm resources}(hjx6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hju6hhubah}(h]h ]h"]h$]h&]uh1juhj5hhhj5hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj6jj6jjjuh1hhhhjhNhNubj)}(h{**Parameters** ``struct snd_soc_dapm_context *dapm`` DAPM context **Description** Free all dapm widgets and resources.h](j{)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj6ubj)}(hhh]j)}(h3``struct snd_soc_dapm_context *dapm`` DAPM context h](j)}(h%``struct snd_soc_dapm_context *dapm``h]j)}(hj6h]h!struct snd_soc_dapm_context *dapm}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chM hj6ubj)}(hhh]j{)}(h DAPM contexth]h DAPM context}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6hM hj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hM hj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubj{)}(h**Description**h]j)}(hj6h]h Description}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj6ubj{)}(h$Free all dapm widgets and resources.h]h$Free all dapm widgets and resources.}(hj 7hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:109: ./sound/soc/soc-dapm.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjhhhNhNubeh}(h] asoc-dapm-apiah ]h"] asoc dapm apiah$]h&]uh1hhjthhhhhKlubh)}(hhh](h)}(hASoC DMA Engine APIh]hASoC DMA Engine API}(hj+7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(7hhhhhKpubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h3snd_dmaengine_pcm_prepare_slave_config (C function)(c.snd_dmaengine_pcm_prepare_slave_confighNtauh1hhj(7hhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjR7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN7hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&ubj")}(h h]h }(hja7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjN7hhhj`7hK&ubj3)}(h&snd_dmaengine_pcm_prepare_slave_configh]j9)}(h&snd_dmaengine_pcm_prepare_slave_configh]h&snd_dmaengine_pcm_prepare_slave_config}(hjs7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjo7ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjN7hhhj`7hK&ubjT)}(hn(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, struct dma_slave_config *slave_config)h](jZ)}(h#struct snd_pcm_substream *substreamh](j`)}(hjch]hstruct}(hj7hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_pcm_substreamh]hsnd_pcm_substream}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNjj)}j]j)}jju7sb(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj7ubj")}(h h]h }(hj7hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(h substreamh]h substream}(hj7hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubjZ)}(h struct snd_pcm_hw_params *paramsh](j`)}(hjch]hstruct}(hj8hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj7ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubh)}(hhh]j9)}(hsnd_pcm_hw_paramsh]hsnd_pcm_hw_params}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!8modnameN classnameNjj)}j]j7(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhj7ubj")}(h h]h }(hj=8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj7ubj)}(hjh]h*}(hjK8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj9)}(hparamsh]hparams}(hjX8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj7ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubjZ)}(h%struct dma_slave_config *slave_configh](j`)}(hjch]hstruct}(hjq8hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjm8ubj")}(h h]h }(hj~8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjm8ubh)}(hhh]j9)}(hdma_slave_configh]hdma_slave_config}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj8ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8modnameN classnameNjj)}j]j7(c.snd_dmaengine_pcm_prepare_slave_configasbuh1hhjm8ubj")}(h h]h }(hj8hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjm8ubj)}(hjh]h*}(hj8hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm8ubj9)}(h slave_configh]h slave_config}(hj8hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjm8ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj7ubeh}(h]h ]h"]h$]h&]jQjRuh1jShjN7hhhj`7hK&ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjJ7hhhj`7hK&ubah}(h]jE7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj`7hK&hjG7hhubjv)}(hhh]j{)}(h%Generic prepare_slave_config callbackh]h%Generic prepare_slave_config callback}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK&hj8hhubah}(h]h ]h"]h$]h&]uh1juhjG7hhhj`7hK&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj 9jj 9jjjuh1hhhhj(7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hj9ubj)}(hhh](j)}(h6``struct snd_pcm_substream *substream`` PCM substream h](j)}(h'``struct snd_pcm_substream *substream``h]j)}(hj39h]h#struct snd_pcm_substream *substream}(hj59hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj19ubah}(h]h ]h"]h$]h&]uh1jhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK'hj-9ubj)}(hhh]j{)}(h PCM substreamh]h PCM substream}(hjL9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjH9hK'hjI9ubah}(h]h ]h"]h$]h&]uh1jhj-9ubeh}(h]h ]h"]h$]h&]uh1jhjH9hK'hj*9ubj)}(h/``struct snd_pcm_hw_params *params`` hw_params h](j)}(h$``struct snd_pcm_hw_params *params``h]j)}(hjl9h]h struct snd_pcm_hw_params *params}(hjn9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj9ubah}(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(hjf9ubj)}(hhh]j{)}(h hw_paramsh]h hw_params}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9hK(hj9ubah}(h]h ]h"]h$]h&]uh1jhjf9ubeh}(h]h ]h"]h$]h&]uh1jhj9hK(hj*9ubj)}(hF``struct dma_slave_config *slave_config`` DMA slave config to prepare h](j)}(h)``struct dma_slave_config *slave_config``h]j)}(hj9h]h%struct dma_slave_config *slave_config}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(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)hj9ubj)}(hhh]j{)}(hDMA slave config to prepareh]hDMA slave config to prepare}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9hK)hj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hK)hj*9ubeh}(h]h ]h"]h$]h&]uh1jhj9ubj{)}(h**Description**h]j)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK+hj9ubj{)}(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.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chK*hj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj(7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h'snd_dmaengine_pcm_register (C function)c.snd_dmaengine_pcm_registerhNtauh1hhj(7hhhNhNubh)}(hhh](j)}(hvint snd_dmaengine_pcm_register (struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h]j )}(huint snd_dmaengine_pcm_register(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](j)}(hinth]hint}(hj%:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!:hhhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMubj")}(h h]h }(hj4:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!:hhhj3:hMubj3)}(hsnd_dmaengine_pcm_registerh]j9)}(hsnd_dmaengine_pcm_registerh]hsnd_dmaengine_pcm_register}(hjF:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjB:ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj!:hhhj3:hMubjT)}(hW(struct device *dev, const struct snd_dmaengine_pcm_config *config, unsigned int flags)h](jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hjb:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj^:ubj")}(h h]h }(hjo:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^:ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj}:ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:modnameN classnameNjj)}j]j)}jjH:sbc.snd_dmaengine_pcm_registerasbuh1hhj^:ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj^:ubj)}(hjh]h*}(hj:hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^:ubj9)}(hdevh]hdev}(hj:hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZ:ubjZ)}(h-const struct snd_dmaengine_pcm_config *configh](j`)}(hjph]hconst}(hj:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj:ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj`)}(hjch]hstruct}(hj:hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj:ubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubh)}(hhh]j9)}(hsnd_dmaengine_pcm_configh]hsnd_dmaengine_pcm_config}(hj ;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj ;ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;modnameN classnameNjj)}j]j:c.snd_dmaengine_pcm_registerasbuh1hhj:ubj")}(h h]h }(hj+;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj:ubj)}(hjh]h*}(hj9;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:ubj9)}(hconfigh]hconfig}(hjF;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj:ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZ:ubjZ)}(hunsigned int flagsh](j)}(hunsignedh]hunsigned}(hj_;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[;ubj")}(h h]h }(hjm;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[;ubj)}(hinth]hint}(hj{;hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[;ubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[;ubj9)}(hflagsh]hflags}(hj;hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[;ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjZ:ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj!:hhhj3:hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj:hhhj3:hMubah}(h]j:ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj3:hMhj:hhubjv)}(hhh]j{)}(h%Register a dmaengine based PCM deviceh]h%Register a dmaengine based PCM device}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/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&]uh1juhj:hhhj3:hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;jj;jjjuh1hhhhj(7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jzhw/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]j{)}(h$The parent device for the PCM deviceh]h$The parent device for the PCM device}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj;ubj)}(hV``const struct snd_dmaengine_pcm_config *config`` Platform specific PCM configuration h](j)}(h1``const struct snd_dmaengine_pcm_config *config``h]j)}(hj;<h]h-const struct snd_dmaengine_pcm_config *config}(hj=<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9<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.chMhj5<ubj)}(hhh]j{)}(h#Platform specific PCM configurationh]h#Platform specific PCM configuration}(hjT<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjP<hMhjQ<ubah}(h]h ]h"]h$]h&]uh1jhj5<ubeh}(h]h ]h"]h$]h&]uh1jhjP<hMhj;ubj)}(h/``unsigned int flags`` Platform specific quirksh](j)}(h``unsigned int flags``h]j)}(hjt<h]hunsigned int flags}(hjv<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr<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.chMhjn<ubj)}(hhh]j{)}(hPlatform specific quirksh]hPlatform specific quirks}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/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&]uh1jhjn<ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj(7hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)snd_dmaengine_pcm_unregister (C function)c.snd_dmaengine_pcm_unregisterhNtauh1hhj(7hhhNhNubh)}(hhh](j)}(h6void snd_dmaengine_pcm_unregister (struct device *dev)h]j )}(h5void snd_dmaengine_pcm_unregister(struct device *dev)h](j)}(hvoidh]hvoid}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<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 ]j.ah"]h$]h&]uh1j!hj<hhhj<hMubj3)}(hsnd_dmaengine_pcm_unregisterh]j9)}(hsnd_dmaengine_pcm_unregisterh]hsnd_dmaengine_pcm_unregister}(hj<hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj<ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj<hhhj<hMubjT)}(h(struct device *dev)h]jZ)}(hstruct device *devh](j`)}(hjch]hstruct}(hj =hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj=ubj")}(h h]h }(hj=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubh)}(hhh]j9)}(hdeviceh]hdevice}(hj)=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj&=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj+=modnameN classnameNjj)}j]j)}jj<sbc.snd_dmaengine_pcm_unregisterasbuh1hhj=ubj")}(h h]h }(hjI=hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=ubj)}(hjh]h*}(hjW=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj9)}(hdevh]hdev}(hjd=hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj=ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj=ubah}(h]h ]h"]h$]h&]jQjRuh1jShj<hhhj<hMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj<hhhj<hMubah}(h]j<ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj<hMhj<hhubjv)}(hhh]j{)}(h$Removes a dmaengine based PCM deviceh]h$Removes a dmaengine based PCM device}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/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&]uh1juhj<hhhj<hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj=jj=jjjuh1hhhhj(7hNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj=h]h Parameters}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jzhw/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]j{)}(h'Parent device the PCM was register withh]h'Parent device the PCM was register with}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubj{)}(h**Description**h]j)}(hj >h]h Description}(hj >hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj=ubj{)}(h[Removes a dmaengine based PCM device previously registered with snd_dmaengine_pcm_register.h]h[Removes a dmaengine based PCM device previously registered with snd_dmaengine_pcm_register.}(hj >hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhw/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:113: ./sound/soc/soc-generic-dmaengine-pcm.chMhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj(7hhhNhNubeh}(h]asoc-dma-engine-apiah ]h"]asoc dma engine apiah$]h&]uh1hhjthhhhhKpubeh}(h]asocah ]h"]asocah$]h&]uh1hhhhhhhhK_ubh)}(hhh](h)}(hMiscellaneous Functionsh]hMiscellaneous Functions}(hjI>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjF>hhhhhKtubh)}(hhh](h)}(hHardware-Dependent Devices APIh]hHardware-Dependent Devices API}(hjZ>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjW>hhhhhKwubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_hwdep_new (C function)c.snd_hwdep_newhNtauh1hhjW>hhhNhNubh)}(hhh](j)}(hZint snd_hwdep_new (struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h]j )}(hYint snd_hwdep_new(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](j)}(hinth]hint}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}>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 ]j.ah"]h$]h&]uh1j!hj}>hhhj>hM_ubj3)}(h snd_hwdep_newh]j9)}(h snd_hwdep_newh]h snd_hwdep_new}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj}>hhhj>hM_ubjT)}(hH(struct snd_card *card, char *id, int device, struct snd_hwdep **rhwdep)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj>hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj>ubj")}(h h]h }(hj>hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>ubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj>hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>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 ]j.ah"]h$]h&]uh1j!hj>ubj)}(hjh]h*}(hj ?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj9)}(hcardh]hcard}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj>ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubjZ)}(hchar *idh](j)}(hcharh]hchar}(hj0?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,?ubj")}(h h]h }(hj>?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj,?ubj)}(hjh]h*}(hjL?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,?ubj9)}(hidh]hid}(hjY?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubjZ)}(h int deviceh](j)}(hinth]hint}(hjr?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn?ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjn?ubj9)}(hdeviceh]hdevice}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjn?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubjZ)}(hstruct snd_hwdep **rhwdeph](j`)}(hjch]hstruct}(hj?hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj?ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj?ubh)}(hhh]j9)}(h snd_hwdeph]h snd_hwdep}(hj?hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj?modnameN classnameNjj)}j]j>c.snd_hwdep_newasbuh1hhj?ubj")}(h h]h }(hj?hhhNhNubah}(h]h ]j.ah"]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?ubj9)}(hrhwdeph]hrhwdep}(hj @hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj?ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj>ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj}>hhhj>hM_ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjy>hhhj>hM_ubah}(h]jt>ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj>hM_hjv>hhubjv)}(hhh]j{)}(hcreate a new hwdep instanceh]hcreate a new hwdep instance}(hj5@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM_hj2@hhubah}(h]h ]h"]h$]h&]uh1juhjv>hhhj>hM_ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjM@jjM@jjjuh1hhhhjW>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](j{)}(h**Parameters**h]j)}(hjW@h]h Parameters}(hjY@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU@ubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjQ@ubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hjv@h]hstruct snd_card *card}(hjx@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt@ubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chM`hjp@ubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hM`hj@ubah}(h]h ]h"]h$]h&]uh1jhjp@ubeh}(h]h ]h"]h$]h&]uh1jhj@hM`hjm@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]j{)}(h the id stringh]h the id string}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hMahj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMahjm@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]j{)}(hthe device index (zero-based)h]hthe device index (zero-based)}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@hMbhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMbhjm@ubj)}(hJ``struct snd_hwdep **rhwdep`` the pointer to store the new hwdep instance h](j)}(h``struct snd_hwdep **rhwdep``h]j)}(hj!Ah]hstruct snd_hwdep **rhwdep}(hj#AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMchjAubj)}(hhh]j{)}(h+the pointer to store the new hwdep instanceh]h+the pointer to store the new hwdep instance}(hj:AhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj6AhMchj7Aubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj6AhMchjm@ubeh}(h]h ]h"]h$]h&]uh1jhjQ@ubj{)}(h**Description**h]j)}(hj\Ah]h Description}(hj^AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZAubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMehjQ@ubj{)}(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.}(hjrAhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMdhjQ@ubj{)}(h **Return**h]j)}(hjAh]hReturn}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMhhjQ@ubj{)}(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&]uh1jzhd/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:120: ./sound/core/hwdep.chMihjQ@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjW>hhhNhNubeh}(h]hardware-dependent-devices-apiah ]h"]hardware-dependent devices apiah$]h&]uh1hhjF>hhhhhKwubh)}(hhh](h)}(hJack Abstraction Layer APIh]hJack Abstraction Layer API}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhhhhK{ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_types (C enum)c.snd_jack_typeshNtauh1hhjAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhNubh)}(hhh](j)}(hsnd_jack_typesh]j )}(henum snd_jack_typesh](j`)}(hj(h]henum}(hjAhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjAhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKubj")}(h h]h }(hjAhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAhhhjAhKubj3)}(hsnd_jack_typesh]j9)}(hjAh]hsnd_jack_types}(hjBhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjAhhhjAhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjAhhhjAhKubah}(h]jAah ](jmjneh"]h$]h&]jrjs)jthuh1jhjAhKhjAhhubjv)}(hhh]j{)}(h Jack types which can be reportedh]h Jack types which can be reported}(hj$BhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKhj!Bhhubah}(h]h ]h"]h$]h&]uh1juhjAhhhjAhKubeh}(h]h ](jenumeh"]h$]h&]jjjjhjDEubj)}(hhh]j{)}(hButton 4h]hButton 4}(hjcEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj_EhK>hj`Eubah}(h]h ]h"]h$]h&]uh1jhjDEubeh}(h]h ]h"]h$]h&]uh1jhj_EhK>hj\Bubj)}(h``SND_JACK_BTN_5`` Button 5h](j)}(h``SND_JACK_BTN_5``h]j)}(hjEh]hSND_JACK_BTN_5}(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:124: ./include/sound/jack.hhK@hj}Eubj)}(hhh]j{)}(hButton 5h]hButton 5}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKAhjEubah}(h]h ]h"]h$]h&]uh1jhj}Eubeh}(h]h ]h"]h$]h&]uh1jhjEhK@hj\Bubeh}(h]h ]h"]h$]h&]uh1jhj@Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhjAhNubj{)}(h**Description**h]j)}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhKChjAhhubj{)}(h#These values are used as a bitmask.h]h#These values are used as a bitmask.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK hjAhhubj{)}(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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:124: ./include/sound/jack.hhK"hjAhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_jack_add_new_kctl (C function)c.snd_jack_add_new_kctlhNtauh1hhjAhhhNhNubh)}(hhh](j)}(hNint snd_jack_add_new_kctl (struct snd_jack *jack, const char * name, int mask)h]j )}(hLint snd_jack_add_new_kctl(struct snd_jack *jack, const char *name, int mask)h](j)}(hinth]hint}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj")}(h h]h }(hj"FhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFhhhj!FhMubj3)}(hsnd_jack_add_new_kctlh]j9)}(hsnd_jack_add_new_kctlh]hsnd_jack_add_new_kctl}(hj4FhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj0Fubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjFhhhj!FhMubjT)}(h3(struct snd_jack *jack, const char *name, int mask)h](jZ)}(hstruct snd_jack *jackh](j`)}(hjch]hstruct}(hjPFhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjLFubj")}(h h]h }(hj]FhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjLFubh)}(hhh]j9)}(hsnd_jackh]hsnd_jack}(hjnFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpFmodnameN classnameNjj)}j]j)}jj6Fsbc.snd_jack_add_new_kctlasbuh1hhjLFubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjLFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLFubj9)}(hjackh]hjack}(hjFhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjLFubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHFubjZ)}(hconst char *nameh](j`)}(hjph]hconst}(hjFhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjFubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFubj)}(hcharh]hchar}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj")}(h h]h }(hjFhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjFubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj9)}(hnameh]hname}(hjGhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHFubjZ)}(hint maskh](j)}(hinth]hint}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubj")}(h h]h }(hj-GhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjGubj9)}(hmaskh]hmask}(hj;GhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjGubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHFubeh}(h]h ]h"]h$]h&]jQjRuh1jShjFhhhj!FhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj Fhhhj!FhMubah}(h]jFah ](jmjneh"]h$]h&]jrjs)jthuh1jhj!FhMhjFhhubjv)}(hhh]j{)}(h-Create a new snd_jack_kctl and add it to jackh]h-Create a new snd_jack_kctl and add it to jack}(hjeGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjbGhhubah}(h]h ]h"]h$]h&]uh1juhjFhhhj!FhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}Gjj}Gjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjGh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(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)}(hjGh]hstruct snd_jack *jack}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(hhh]j{)}(h2the jack instance which the kctl will attaching toh]h2the jack instance which the kctl will attaching to}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjGubj)}(h;``const char * name`` the name for the snd_kcontrol object h](j)}(h``const char * name``h]j)}(hjGh]hconst char * name}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj)}(hhh]j{)}(h$the name for the snd_kcontrol objecth]h$the name for the snd_kcontrol object}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjGhMhjGubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjGhMhjGubj)}(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)}(hjHh]hint mask}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjHubj)}(hhh]j{)}(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.}(hj1HhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj.Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhj-HhMhjGubeh}(h]h ]h"]h$]h&]uh1jhjGubj{)}(h**Description**h]j)}(hjTHh]h Description}(hjVHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRHubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj{)}(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.}(hjjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj{)}(h **Return**h]j)}(hj{Hh]hReturn}(hj}HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyHubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubj{)}(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&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_new (C function)c.snd_jack_newhNtauh1hhjAhhhNhNubh)}(hhh](j)}(hint snd_jack_new (struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h]j )}(hint snd_jack_new(struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h](j)}(hinth]hint}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMubj")}(h h]h }(hjHhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHhhhjHhMubj3)}(h snd_jack_newh]j9)}(h snd_jack_newh]h snd_jack_new}(hjHhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjHhhhjHhMubjT)}(hp(struct snd_card *card, const char *id, int type, struct snd_jack **jjack, bool initial_kctl, bool phantom_jack)h](jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjHhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjHubj")}(h h]h }(hj IhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjImodnameN classnameNjj)}j]j)}jjHsbc.snd_jack_newasbuh1hhjHubj")}(h h]h }(hj;IhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHubj)}(hjh]h*}(hjIIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHubj9)}(hcardh]hcard}(hjVIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hconst char *idh](j`)}(hjph]hconst}(hjoIhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjkIubj")}(h h]h }(hj|IhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkIubj)}(hcharh]hchar}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkIubj")}(h h]h }(hjIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkIubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkIubj9)}(hidh]hid}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkIubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hint typeh](j)}(hinth]hint}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj")}(h h]h }(hjIhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubj9)}(htypeh]htype}(hjIhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hstruct snd_jack **jjackh](j`)}(hjch]hstruct}(hjJhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjIubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubh)}(hhh]j9)}(hsnd_jackh]hsnd_jack}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!JmodnameN classnameNjj)}j]j7Ic.snd_jack_newasbuh1hhjIubj")}(h h]h }(hj=JhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjIubj)}(hjh]h*}(hjKJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj)}(hjh]h*}(hjXJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjIubj9)}(hjjackh]hjjack}(hjeJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjIubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hbool initial_kctlh](j)}(hj_h]hbool}(hj~JhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjzJubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjzJubj9)}(h initial_kctlh]h initial_kctl}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjzJubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubjZ)}(hbool phantom_jackh](j)}(hj_h]hbool}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj")}(h h]h }(hjJhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjJubj9)}(h phantom_jackh]h phantom_jack}(hjJhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjHubeh}(h]h ]h"]h$]h&]jQjRuh1jShjHhhhjHhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjHhhhjHhMubah}(h]jHah ](jmjneh"]h$]h&]jrjs)jthuh1jhjHhMhjHhhubjv)}(hhh]j{)}(hCreate a new jackh]hCreate a new jack}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjJhhubah}(h]h ]h"]h$]h&]uh1juhjHhhhjHhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKjjKjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjKh]h Parameters}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj)}(hhh](j)}(h,``struct snd_card *card`` the card instance h](j)}(h``struct snd_card *card``h]j)}(hj8Kh]hstruct snd_card *card}(hj:KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Kubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhj2Kubj)}(hhh]j{)}(hthe card instanceh]hthe card instance}(hjQKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjMKhMhjNKubah}(h]h ]h"]h$]h&]uh1jhj2Kubeh}(h]h ]h"]h$]h&]uh1jhjMKhMhj/Kubj)}(h7``const char *id`` an identifying string for this jack h](j)}(h``const char *id``h]j)}(hjqKh]hconst char *id}(hjsKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoKubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjkKubj)}(hhh]j{)}(h#an identifying string for this jackh]h#an identifying string for this jack}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjkKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj/Kubj)}(hV``int type`` a bitmask of enum snd_jack_type values that can be detected by this jack h](j)}(h ``int type``h]j)}(hjKh]hint type}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj)}(hhh]j{)}(hHa bitmask of enum snd_jack_type values that can be detected by this jackh]hHa bitmask of enum snd_jack_type values that can be detected by this jack}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj/Kubj)}(hU``struct snd_jack **jjack`` Used to provide the allocated jack object to the caller. h](j)}(h``struct snd_jack **jjack``h]j)}(hjKh]hstruct snd_jack **jjack}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj)}(hhh]j{)}(h8Used to provide the allocated jack object to the caller.h]h8Used to provide the allocated jack object to the caller.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjKhMhjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhMhj/Kubj)}(hN``bool initial_kctl`` if true, create a kcontrol and add it to the jack list. h](j)}(h``bool initial_kctl``h]j)}(hjLh]hbool initial_kctl}(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.chMhjLubj)}(hhh]j{)}(h7if true, create a kcontrol and add it to the jack list.h]h7if true, create a kcontrol and add it to the jack list.}(hj6LhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj2LhMhj3Lubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhj2LhMhj/Kubj)}(hE``bool phantom_jack`` Don't create a input device for phantom jacks. h](j)}(h``bool phantom_jack``h]j)}(hjVLh]hbool phantom_jack}(hjXLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTLubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjPLubj)}(hhh]j{)}(h.Don't create a input device for phantom jacks.h]h0Don’t create a input device for phantom jacks.}(hjoLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjkLhMhjlLubah}(h]h ]h"]h$]h&]uh1jhjPLubeh}(h]h ]h"]h$]h&]uh1jhjkLhMhj/Kubeh}(h]h ]h"]h$]h&]uh1jhjKubj{)}(h**Description**h]j)}(hjLh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj{)}(hCreates a new jack object.h]hCreates a new jack object.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj{)}(h **Return**h]j)}(hjLh]hReturn}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubj{)}(hbZero if successful, or a negative error code on failure. On success **jjack** will be initialised.h](hDZero if successful, or a negative error code on failure. On success }(hjLhhhNhNubj)}(h **jjack**h]hjjack}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh will be initialised.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMhjKubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_set_key (C function)c.snd_jack_set_keyhNtauh1hhjAhhhNhNubh)}(hhh](j)}(hSint snd_jack_set_key (struct snd_jack *jack, enum snd_jack_types type, int keytype)h]j )}(hRint snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](j)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Mhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj MhhhjMhMDubj3)}(hsnd_jack_set_keyh]j9)}(hsnd_jack_set_keyh]hsnd_jack_set_key}(hj0MhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,Mubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj MhhhjMhMDubjT)}(h>(struct snd_jack *jack, enum snd_jack_types type, int keytype)h](jZ)}(hstruct snd_jack *jackh](j`)}(hjch]hstruct}(hjLMhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjHMubj")}(h h]h }(hjYMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHMubh)}(hhh]j9)}(hsnd_jackh]hsnd_jack}(hjjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjgMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjlMmodnameN classnameNjj)}j]j)}jj2Msbc.snd_jack_set_keyasbuh1hhjHMubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjHMubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjHMubj9)}(hjackh]hjack}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjHMubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDMubjZ)}(henum snd_jack_types typeh](j`)}(hj(h]henum}(hjMhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjMubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubh)}(hhh]j9)}(hsnd_jack_typesh]hsnd_jack_types}(hjMhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjMmodnameN classnameNjj)}j]jMc.snd_jack_set_keyasbuh1hhjMubj")}(h h]h }(hjMhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjMubj9)}(htypeh]htype}(hjNhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjMubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDMubjZ)}(h int keytypeh](j)}(hinth]hint}(hj!NhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubj")}(h h]h }(hj/NhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjNubj9)}(hkeytypeh]hkeytype}(hj=NhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjNubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjDMubeh}(h]h ]h"]h$]h&]jQjRuh1jShj MhhhjMhMDubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjMhhhjMhMDubah}(h]jMah ](jmjneh"]h$]h&]jrjs)jthuh1jhjMhMDhjMhhubjv)}(hhh]j{)}(hSet a key mapping on a jackh]hSet a key mapping on a jack}(hjgNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMDhjdNhhubah}(h]h ]h"]h$]h&]uh1juhjMhhhjMhMDubeh}(h]h ](jfunctioneh"]h$]h&]jjjjNjjNjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMHhjNubj)}(hhh](j)}(h0``struct snd_jack *jack`` The jack to configure h](j)}(h``struct snd_jack *jack``h]j)}(hjNh]hstruct snd_jack *jack}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMFhjNubj)}(hhh]j{)}(hThe jack to configureh]hThe jack to configure}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjNhMFhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhMFhjNubj)}(h;``enum snd_jack_types type`` Jack report type for this key h](j)}(h``enum snd_jack_types type``h]j)}(hjNh]henum snd_jack_types type}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMGhjNubj)}(hhh]j{)}(hJack report type for this keyh]hJack report type for this key}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjNhMGhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhMGhjNubj)}(-h4``int keytype`` Input layer key type to be reported h](j)}(h``int keytype``h]j)}(hjOh]h int keytype}(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.chMHhjOubj)}(hhh]j{)}(h#Input layer key type to be reportedh]h#Input layer key type to be reported}(hj3OhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj/OhMHhj0Oubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhj/OhMHhjNubeh}(h]h ]h"]h$]h&]uh1jhjNubj{)}(h**Description**h]j)}(hjUOh]h Description}(hjWOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSOubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMJhjNubj{)}(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.}(hjkOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMIhjNubj{)}(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.}(hjzOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMNhjNubj{)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMQhjNubj{)}(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.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMWhjNubj{)}(h **Return**h]j)}(hjOh]hReturn}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMYhjNubj{)}(h8Zero if successful, or a negative error code on failure.h]h8Zero if successful, or a negative error code on failure.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMZhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_jack_report (C function)c.snd_jack_reporthNtauh1hhjAhhhNhNubh)}(hhh](j)}(h8void snd_jack_report (struct snd_jack *jack, int status)h]j )}(h7void snd_jack_report(struct snd_jack *jack, int status)h](j)}(hvoidh]hvoid}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOhhhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnubj")}(h h]h }(hjOhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjOhhhjOhMnubj3)}(hsnd_jack_reporth]j9)}(hsnd_jack_reporth]hsnd_jack_report}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Pubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjOhhhjOhMnubjT)}(h#(struct snd_jack *jack, int status)h](jZ)}(hstruct snd_jack *jackh](j`)}(hjch]hstruct}(hj+PhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj'Pubj")}(h h]h }(hj8PhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'Pubh)}(hhh]j9)}(hsnd_jackh]hsnd_jack}(hjIPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjFPubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKPmodnameN classnameNjj)}j]j)}jjPsbc.snd_jack_reportasbuh1hhj'Pubj")}(h h]h }(hjiPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'Pubj)}(hjh]h*}(hjwPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'Pubj9)}(hjackh]hjack}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj'Pubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj#PubjZ)}(h int statush](j)}(hinth]hint}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj")}(h h]h }(hjPhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjPubj9)}(hstatush]hstatus}(hjPhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjPubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj#Pubeh}(h]h ]h"]h$]h&]jQjRuh1jShjOhhhjOhMnubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjOhhhjOhMnubah}(h]jOah ](jmjneh"]h$]h&]jrjs)jthuh1jhjOhMnhjOhhubjv)}(hhh]j{)}(h#Report the current status of a jackh]h#Report the current status of a jack}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMnhjPhhubah}(h]h ]h"]h$]h&]uh1juhjOhhhjOhMnubeh}(h]h ](jfunctioneh"]h$]h&]jjjjPjjPjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjQh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjPubj)}(hhh](j)}(h8``struct snd_jack *jack`` The jack to report status for h](j)}(h``struct snd_jack *jack``h]j)}(hj$Qh]hstruct snd_jack *jack}(hj&QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"Qubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMrhjQubj)}(hhh]j{)}(hThe jack to report status forh]hThe jack to report status for}(hj=QhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj9QhMrhj:Qubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhj9QhMrhjQubj)}(h.``int status`` The current status of the jack h](j)}(h``int status``h]j)}(hj]Qh]h int status}(hj_QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[Qubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMshjWQubj)}(hhh]j{)}(hThe current status of the jackh]hThe current status of the jack}(hjvQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjrQhMshjsQubah}(h]h ]h"]h$]h&]uh1jhjWQubeh}(h]h ]h"]h$]h&]uh1jhjrQhMshjQubeh}(h]h ]h"]h$]h&]uh1jhjPubj{)}(h**Note**h]j)}(hjQh]hNote}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMuhjPubj{)}(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).}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhc/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:125: ./sound/core/jack.chMohjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h snd_soc_jack_report (C function)c.snd_soc_jack_reporthNtauh1hhjAhhhNhNubh)}(hhh](j)}(hJvoid snd_soc_jack_report (struct snd_soc_jack *jack, int status, int mask)h]j )}(hIvoid snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)h](j)}(hvoidh]hvoid}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjQhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKubj")}(h h]h }(hjQhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjQhhhjQhKubj3)}(hsnd_soc_jack_reporth]j9)}(hsnd_soc_jack_reporth]hsnd_soc_jack_report}(hjQhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjQhhhjQhKubjT)}(h1(struct snd_soc_jack *jack, int status, int mask)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hjRhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjRubj")}(h h]h }(hj'RhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hj8RhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj5Rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj:RmodnameN classnameNjj)}j]j)}jjRsbc.snd_soc_jack_reportasbuh1hhjRubj")}(h h]h }(hjXRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubj)}(hjh]h*}(hjfRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj9)}(hjackh]hjack}(hjsRhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjRubjZ)}(h int statush](j)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubj9)}(hstatush]hstatus}(hjRhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjRubjZ)}(hint maskh](j)}(hinth]hint}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjRubj9)}(hmaskh]hmask}(hjRhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjRubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjRubeh}(h]h ]h"]h$]h&]jQjRuh1jShjQhhhjQhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjQhhhjQhKubah}(h]jQah ](jmjneh"]h$]h&]jrjs)jthuh1jhjQhKhjQhhubjv)}(hhh]j{)}(h$Report the current status for a jackh]h$Report the current status for a jack}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjShhubah}(h]h ]h"]h$]h&]uh1juhjQhhhjQhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjSjjSjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj)Sh]h Parameters}(hj+ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Subah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Subj)}(hhh](j)}(h'``struct snd_soc_jack *jack`` the jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjHSh]hstruct snd_soc_jack *jack}(hjJShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjBSubj)}(hhh]j{)}(hthe jackh]hthe jack}(hjaShhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]ShKhj^Subah}(h]h ]h"]h$]h&]uh1jhjBSubeh}(h]h ]h"]h$]h&]uh1jhj]ShKhj?Subj)}(hS``int status`` a bitmask of enum snd_jack_type values that are currently detected. h](j)}(h``int status``h]j)}(hjSh]h int status}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj{Subj)}(hhh]j{)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhj{Subeh}(h]h ]h"]h$]h&]uh1jhjShKhj?Subj)}(hI``int mask`` a bitmask of enum snd_jack_type values that being reported. h](j)}(h ``int mask``h]j)}(hjSh]hint mask}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjSubj)}(hhh]j{)}(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.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhj?Subeh}(h]h ]h"]h$]h&]uh1jhj#Subj{)}(h**Description**h]j)}(hjSh]h Description}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Subj{)}(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.}(hj ThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Subj{)}(h**Note**h]j)}(hjTh]hNote}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Subj{)}(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).}(hj2ThhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj#Subeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_zones (C function)c.snd_soc_jack_add_zoneshNtauh1hhjAhhhNhNubh)}(hhh](j)}(hbint snd_soc_jack_add_zones (struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h]j )}(haint snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](j)}(hinth]hint}(hjaThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]Thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPubj")}(h h]h }(hjpThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]ThhhjoThKPubj3)}(hsnd_soc_jack_add_zonesh]j9)}(hsnd_soc_jack_add_zonesh]hsnd_soc_jack_add_zones}(hjThhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj~Tubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj]ThhhjoThKPubjT)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_zone *zones)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hjThhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjTubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjTubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hjThhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNjj)}j]j)}jjTsbc.snd_soc_jack_add_zonesasbuh1hhjTubj")}(h h]h }(hjThhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjTubj)}(hjh]h*}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTubj9)}(hjackh]hjack}(hjThhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjTubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjTubjZ)}(h int counth](j)}(hinth]hint}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Uubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj Uubj9)}(hcounth]hcount}(hj,UhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj Uubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjTubjZ)}(hstruct snd_soc_jack_zone *zonesh](j`)}(hjch]hstruct}(hjEUhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjAUubj")}(h h]h }(hjRUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAUubh)}(hhh]j9)}(hsnd_soc_jack_zoneh]hsnd_soc_jack_zone}(hjcUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`Uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjeUmodnameN classnameNjj)}j]jTc.snd_soc_jack_add_zonesasbuh1hhjAUubj")}(h h]h }(hjUhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAUubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAUubj9)}(hzonesh]hzones}(hjUhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAUubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjTubeh}(h]h ]h"]h$]h&]jQjRuh1jShj]ThhhjoThKPubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjYThhhjoThKPubah}(h]jTTah ](jmjneh"]h$]h&]jrjs)jthuh1jhjoThKPhjVThhubjv)}(hhh]j{)}(h!Associate voltage zones with jackh]h!Associate voltage zones with jack}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKPhjUhhubah}(h]h ]h"]h$]h&]uh1juhjVThhhjoThKPubeh}(h]h ](jfunctioneh"]h$]h&]jjjjUjjUjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjUubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjVh]hstruct snd_soc_jack *jack}(hj VhhhNhNubah}(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.chKRhjVubj)}(hhh]j{)}(h ASoC jackh]h ASoC jack}(hj VhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjVhKRhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKRhjUubj)}(h``int count`` Number of zones h](j)}(h ``int count``h]j)}(hj@Vh]h int count}(hjBVhhhNhNubah}(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:126: ./sound/soc/soc-jack.chKShj:Vubj)}(hhh]j{)}(hNumber of zonesh]hNumber of zones}(hjYVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjUVhKShjVVubah}(h]h ]h"]h$]h&]uh1jhj:Vubeh}(h]h ]h"]h$]h&]uh1jhjUVhKShjUubj)}(h3``struct snd_soc_jack_zone *zones`` Array of zones h](j)}(h#``struct snd_soc_jack_zone *zones``h]j)}(hjyVh]hstruct snd_soc_jack_zone *zones}(hj{VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwVubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKThjsVubj)}(hhh]j{)}(hArray of zonesh]hArray of zones}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjVhKThjVubah}(h]h ]h"]h$]h&]uh1jhjsVubeh}(h]h ]h"]h$]h&]uh1jhjVhKThjUubeh}(h]h ]h"]h$]h&]uh1jhjUubj{)}(h**Description**h]j)}(hjVh]h Description}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKVhjUubj{)}(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.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKUhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_get_type (C function)c.snd_soc_jack_get_typehNtauh1hhjAhhhNhNubh)}(hhh](j)}(hJint snd_soc_jack_get_type (struct snd_soc_jack *jack, int micbias_voltage)h]j )}(hIint snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage)h](j)}(hinth]hint}(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjVhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKgubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjVhhhjWhKgubj3)}(hsnd_soc_jack_get_typeh]j9)}(hsnd_soc_jack_get_typeh]hsnd_soc_jack_get_type}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjVhhhjWhKgubjT)}(h0(struct snd_soc_jack *jack, int micbias_voltage)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hj6WhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj2Wubj")}(h h]h }(hjCWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2Wubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hjTWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjQWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVWmodnameN classnameNjj)}j]j)}jjWsbc.snd_soc_jack_get_typeasbuh1hhj2Wubj")}(h h]h }(hjtWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj2Wubj)}(hjh]h*}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2Wubj9)}(hjackh]hjack}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj2Wubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj.WubjZ)}(hint micbias_voltageh](j)}(hinth]hint}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj")}(h h]h }(hjWhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjWubj9)}(hmicbias_voltageh]hmicbias_voltage}(hjWhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjWubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj.Wubeh}(h]h ]h"]h$]h&]jQjRuh1jShjVhhhjWhKgubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjVhhhjWhKgubah}(h]jVah ](jmjneh"]h$]h&]jrjs)jthuh1jhjWhKghjVhhubjv)}(hhh]j{)}(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}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKghjWhhubah}(h]h ]h"]h$]h&]uh1juhjVhhhjWhKgubeh}(h]h ](jfunctioneh"]h$]h&]jjjjXjjXjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhj Xubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hj/Xh]hstruct snd_soc_jack *jack}(hj1XhhhNhNubah}(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:126: ./sound/soc/soc-jack.chKjhj)Xubj)}(hhh]j{)}(h ASoC jackh]h ASoC jack}(hjHXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjDXhKjhjEXubah}(h]h ]h"]h$]h&]uh1jhj)Xubeh}(h]h ]h"]h$]h&]uh1jhjDXhKjhj&Xubj)}(hP``int micbias_voltage`` mic bias voltage at adc channel when jack is plugged in h](j)}(h``int micbias_voltage``h]j)}(hjhXh]hint micbias_voltage}(hjjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfXubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKkhjbXubj)}(hhh]j{)}(h7mic bias voltage at adc channel when jack is plugged inh]h7mic bias voltage at adc channel when jack is plugged in}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj}XhKkhj~Xubah}(h]h ]h"]h$]h&]uh1jhjbXubeh}(h]h ]h"]h$]h&]uh1jhj}XhKkhj&Xubeh}(h]h ]h"]h$]h&]uh1jhj Xubj{)}(h**Description**h]j)}(hjXh]h Description}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKmhj Xubj{)}(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}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKlhj Xubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"snd_soc_jack_add_pins (C function)c.snd_soc_jack_add_pinshNtauh1hhjAhhhNhNubh)}(hhh](j)}(h_int snd_soc_jack_add_pins (struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h]j )}(h^int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](j)}(hinth]hint}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~ubj")}(h h]h }(hjXhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXhhhjXhK~ubj3)}(hsnd_soc_jack_add_pinsh]j9)}(hsnd_soc_jack_add_pinsh]hsnd_soc_jack_add_pins}(hj YhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjXhhhjXhK~ubjT)}(hE(struct snd_soc_jack *jack, int count, struct snd_soc_jack_pin *pins)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hj%YhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj!Yubj")}(h h]h }(hj2YhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!Yubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hjCYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj@Yubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjEYmodnameN classnameNjj)}j]j)}jj Ysbc.snd_soc_jack_add_pinsasbuh1hhj!Yubj")}(h h]h }(hjcYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!Yubj)}(hjh]h*}(hjqYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!Yubj9)}(hjackh]hjack}(hj~YhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj!Yubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjYubjZ)}(h int counth](j)}(hinth]hint}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj9)}(hcounth]hcount}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjYubjZ)}(hstruct snd_soc_jack_pin *pinsh](j`)}(hjch]hstruct}(hjYhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjYubj")}(h h]h }(hjYhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubh)}(hhh]j9)}(hsnd_soc_jack_pinh]hsnd_soc_jack_pin}(hjYhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjYmodnameN classnameNjj)}j]j_Yc.snd_soc_jack_add_pinsasbuh1hhjYubj")}(h h]h }(hjZhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjYubj)}(hjh]h*}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubj9)}(hpinsh]hpins}(hj#ZhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjYubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjYubeh}(h]h ]h"]h$]h&]jQjRuh1jShjXhhhjXhK~ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjXhhhjXhK~ubah}(h]jXah ](jmjneh"]h$]h&]jrjs)jthuh1jhjXhK~hjXhhubjv)}(hhh]j{)}(h%Associate DAPM pins with an ASoC jackh]h%Associate DAPM pins with an ASoC jack}(hjMZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chK~hjJZhhubah}(h]h ]h"]h$]h&]uh1juhjXhhhjXhK~ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjeZjjeZjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjoZh]h Parameters}(hjqZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmZubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjiZubj)}(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)}(hjZh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chKhjZubj)}(hhh]j{)}(h3ASoC jack created with snd_soc_card_jack_new_pins()h]h3ASoC jack created with snd_soc_card_jack_new_pins()}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubj)}(h``int count`` Number of pins h](j)}(h ``int count``h]j)}(hjZh]h int count}(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:126: ./sound/soc/soc-jack.chKhjZubj)}(hhh]j{)}(hNumber of pinsh]hNumber of pins}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZhKhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhKhjZubj)}(h0``struct snd_soc_jack_pin *pins`` Array of pins h](j)}(h!``struct snd_soc_jack_pin *pins``h]j)}(hj[h]hstruct snd_soc_jack_pin *pins}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjZubj)}(hhh]j{)}(h Array of pinsh]h Array of pins}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj[hKhj[ubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhj[hKhjZubeh}(h]h ]h"]h$]h&]uh1jhjiZubj{)}(h**Description**h]j)}(hj;[h]h Description}(hj=[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9[ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjiZubj{)}(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.}(hjQ[hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhjiZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h+snd_soc_jack_notifier_register (C function) c.snd_soc_jack_notifier_registerhNtauh1hhjAhhhNhNubh)}(hhh](j)}(hZvoid snd_soc_jack_notifier_register (struct snd_soc_jack *jack, struct notifier_block *nb)h]j )}(hYvoid snd_soc_jack_notifier_register(struct snd_soc_jack *jack, struct notifier_block *nb)h](j)}(hvoidh]hvoid}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|[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 ]j.ah"]h$]h&]uh1j!hj|[hhhj[hKubj3)}(hsnd_soc_jack_notifier_registerh]j9)}(hsnd_soc_jack_notifier_registerh]hsnd_soc_jack_notifier_register}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj|[hhhj[hKubjT)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hj[hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hj[hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNjj)}j]j)}jj[sb c.snd_soc_jack_notifier_registerasbuh1hhj[ubj")}(h h]h }(hj[hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj[ubj)}(hjh]h*}(hj \hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubj9)}(hjackh]hjack}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj[ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj[ubjZ)}(hstruct notifier_block *nbh](j`)}(hjch]hstruct}(hj/\hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj+\ubj")}(h h]h }(hj<\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+\ubh)}(hhh]j9)}(hnotifier_blockh]hnotifier_block}(hjM\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjJ\ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjO\modnameN classnameNjj)}j]j[ c.snd_soc_jack_notifier_registerasbuh1hhj+\ubj")}(h h]h }(hjk\hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj+\ubj)}(hjh]h*}(hjy\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+\ubj9)}(hnbh]hnb}(hj\hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj+\ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj[ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj|[hhhj[hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjx[hhhj[hKubah}(h]js[ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj[hKhju[hhubjv)}(hhh]j{)}(h#Register a notifier for jack statush]h#Register a notifier for jack status}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj\hhubah}(h]h ]h"]h$]h&]uh1juhju[hhhj[hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj\jj\jjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jzhf/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)}(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]j{)}(h ASoC jackh]h ASoC jack}(hj ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj]hKhj]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)}(hj*]h]hstruct notifier_block *nb}(hj,]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(]ubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj$]ubj)}(hhh]j{)}(hNotifier block to registerh]hNotifier block to register}(hjC]hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj?]hKhj@]ubah}(h]h ]h"]h$]h&]uh1jhj$]ubeh}(h]h ]h"]h$]h&]uh1jhj?]hKhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\ubj{)}(h**Description**h]j)}(hje]h]h Description}(hjg]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc]ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj\ubj{)}(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&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h-snd_soc_jack_notifier_unregister (C function)"c.snd_soc_jack_notifier_unregisterhNtauh1hhjAhhhNhNubh)}(hhh](j)}(h\void snd_soc_jack_notifier_unregister (struct snd_soc_jack *jack, struct notifier_block *nb)h]j )}(h[void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack, struct notifier_block *nb)h](j)}(hvoidh]hvoid}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]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 ]j.ah"]h$]h&]uh1j!hj]hhhj]hKubj3)}(h snd_soc_jack_notifier_unregisterh]j9)}(h snd_soc_jack_notifier_unregisterh]h snd_soc_jack_notifier_unregister}(hj]hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj]hhhj]hKubjT)}(h6(struct snd_soc_jack *jack, struct notifier_block *nb)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hj]hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj]ubj")}(h h]h }(hj]hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]ubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNjj)}j]j)}jj]sb"c.snd_soc_jack_notifier_unregisterasbuh1hhj]ubj")}(h h]h }(hj%^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj]ubj)}(hjh]h*}(hj3^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ubj9)}(hjackh]hjack}(hj@^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj]ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubjZ)}(hstruct notifier_block *nbh](j`)}(hjch]hstruct}(hjY^hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjU^ubj")}(h h]h }(hjf^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjU^ubh)}(hhh]j9)}(hnotifier_blockh]hnotifier_block}(hjw^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjt^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjy^modnameN classnameNjj)}j]j!^"c.snd_soc_jack_notifier_unregisterasbuh1hhjU^ubj")}(h h]h }(hj^hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjU^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjU^ubj9)}(hnbh]hnb}(hj^hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjU^ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj]ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj]hhhj]hKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj]hhhj]hKubah}(h]j]ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj]hKhj]hhubjv)}(hhh]j{)}(h%Unregister a notifier for jack statush]h%Unregister a notifier for jack status}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj^hhubah}(h]h ]h"]h$]h&]uh1juhj]hhhj]hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^jj^jjjuh1hhhhjAhNhNubj)}(h**Parameters** ``struct snd_soc_jack *jack`` ASoC jack ``struct notifier_block *nb`` Notifier block to unregister **Description** Stop notifying for status changes.h](j{)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jzhf/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)}(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]j{)}(h ASoC jackh]h ASoC jack}(hj4_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj0_hKhj1_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj0_hKhj_ubj)}(h;``struct notifier_block *nb`` Notifier block to unregister h](j)}(h``struct notifier_block *nb``h]j)}(hjT_h]hstruct notifier_block *nb}(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:126: ./sound/soc/soc-jack.chKhjN_ubj)}(hhh]j{)}(hNotifier block to unregisterh]hNotifier block to unregister}(hjm_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhji_hKhjj_ubah}(h]h ]h"]h$]h&]uh1jhjN_ubeh}(h]h ]h"]h$]h&]uh1jhji_hKhj_ubeh}(h]h ]h"]h$]h&]uh1jhj^ubj{)}(h**Description**h]j)}(hj_h]h Description}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj^ubj{)}(h"Stop notifying for status changes.h]h"Stop notifying for status changes.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chKhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#snd_soc_jack_add_gpios (C function)c.snd_soc_jack_add_gpioshNtauh1hhjAhhhNhNubh)}(hhh](j)}(hbint snd_soc_jack_add_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]j )}(haint snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](j)}(hinth]hint}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_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 ]j.ah"]h$]h&]uh1j!hj_hhhj_hM-ubj3)}(hsnd_soc_jack_add_gpiosh]j9)}(hsnd_soc_jack_add_gpiosh]hsnd_soc_jack_add_gpios}(hj_hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj_ubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj_hhhj_hM-ubjT)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hj`hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj `ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj `ubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hj/`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj,`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1`modnameN classnameNjj)}j]j)}jj_sbc.snd_soc_jack_add_gpiosasbuh1hhj `ubj")}(h h]h }(hjO`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj `ubj)}(hjh]h*}(hj]`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj `ubj9)}(hjackh]hjack}(hjj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj `ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj `ubjZ)}(h int counth](j)}(hinth]hint}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj9)}(hcounth]hcount}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj `ubjZ)}(hstruct snd_soc_jack_gpio *gpiosh](j`)}(hjch]hstruct}(hj`hhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hj`ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubh)}(hhh]j9)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hj`hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj`modnameN classnameNjj)}j]jK`c.snd_soc_jack_add_gpiosasbuh1hhj`ubj")}(h h]h }(hj`hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj`ubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubj9)}(hgpiosh]hgpios}(hjahhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`ubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj `ubeh}(h]h ]h"]h$]h&]jQjRuh1jShj_hhhj_hM-ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj_hhhj_hM-ubah}(h]j_ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj_hM-hj_hhubjv)}(hhh]j{)}(h%Associate GPIO pins with an ASoC jackh]h%Associate GPIO pins with an ASoC jack}(hj9ahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM-hj6ahhubah}(h]h ]h"]h$]h&]uh1juhj_hhhj_hM-ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjQajjQajjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj[ah]h Parameters}(hj]ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYaubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM1hjUaubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjzah]hstruct snd_soc_jack *jack}(hj|ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxaubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM/hjtaubj)}(hhh]j{)}(h ASoC jackh]h ASoC jack}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjahM/hjaubah}(h]h ]h"]h$]h&]uh1jhjtaubeh}(h]h ]h"]h$]h&]uh1jhjahM/hjqaubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjah]h int count}(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:126: ./sound/soc/soc-jack.chM0hjaubj)}(hhh]j{)}(hnumber of pinsh]hnumber of pins}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjahM0hjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahM0hjqaubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjah]hstruct snd_soc_jack_gpio *gpios}(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:126: ./sound/soc/soc-jack.chM1hjaubj)}(hhh]j{)}(harray of gpio pinsh]harray of gpio pins}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjbhM1hjbubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjbhM1hjqaubeh}(h]h ]h"]h$]h&]uh1jhjUaubj{)}(h**Description**h]j)}(hj'bh]h Description}(hj)bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%bubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM3hjUaubj{)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hj=bhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chM2hjUaubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_add_gpiods (C function)c.snd_soc_jack_add_gpiodshNtauh1hhjAhhhNhNubh)}(hhh](j)}(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]j )}(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](j)}(hinth]hint}(hjlbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhbhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj")}(h h]h }(hj{bhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhbhhhjzbhMubj3)}(hsnd_soc_jack_add_gpiodsh]j9)}(hsnd_soc_jack_add_gpiodsh]hsnd_soc_jack_add_gpiods}(hjbhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjhbhhhjzbhMubjT)}(ha(struct device *gpiod_dev, struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jZ)}(hstruct device *gpiod_devh](j`)}(hjch]hstruct}(hjbhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjbubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubh)}(hhh]j9)}(hdeviceh]hdevice}(hjbhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjbmodnameN classnameNjj)}j]j)}jjbsbc.snd_soc_jack_add_gpiodsasbuh1hhjbubj")}(h h]h }(hjbhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbubj)}(hjh]h*}(hjbhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubj9)}(h gpiod_devh]h gpiod_dev}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjbubjZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hjchhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hj(chhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hj9chhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj6cubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj;cmodnameN classnameNjj)}j]jbc.snd_soc_jack_add_gpiodsasbuh1hhjcubj")}(h h]h }(hjWchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hjechhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(hjackh]hjack}(hjrchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjbubjZ)}(h int counth](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj9)}(hcounth]hcount}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjbubjZ)}(hstruct snd_soc_jack_gpio *gpiosh](j`)}(hjch]hstruct}(hjchhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjcubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubh)}(hhh]j9)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjchhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjcmodnameN classnameNjj)}j]jbc.snd_soc_jack_add_gpiodsasbuh1hhjcubj")}(h h]h }(hjchhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjcubj)}(hjh]h*}(hj dhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjcubj9)}(hgpiosh]hgpios}(hjdhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjcubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjbubeh}(h]h ]h"]h$]h&]jQjRuh1jShjhbhhhjzbhMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjdbhhhjzbhMubah}(h]j_bah ](jmjneh"]h$]h&]jrjs)jthuh1jhjzbhMhjabhhubjv)}(hhh]j{)}(h0Associate GPIO descriptor pins with an ASoC jackh]h0Associate GPIO descriptor pins with an ASoC jack}(hjAdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj>dhhubah}(h]h ]h"]h$]h&]uh1juhjabhhhjzbhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjYdjjYdjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjcdh]h Parameters}(hjedhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjadubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj]dubj)}(hhh](j)}(h2``struct device *gpiod_dev`` GPIO consumer device h](j)}(h``struct device *gpiod_dev``h]j)}(hjdh]hstruct device *gpiod_dev}(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:126: ./sound/soc/soc-jack.chMhj|dubj)}(hhh]j{)}(hGPIO consumer deviceh]hGPIO consumer device}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhj|dubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjydubj)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjdh]hstruct snd_soc_jack *jack}(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:126: ./sound/soc/soc-jack.chMhjdubj)}(hhh]j{)}(h ASoC jackh]h ASoC jack}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjydubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjdh]h int count}(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:126: ./sound/soc/soc-jack.chMhjdubj)}(hhh]j{)}(hnumber of pinsh]hnumber of pins}(hj ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj ehMhj eubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhj ehMhjydubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hj-eh]hstruct snd_soc_jack_gpio *gpios}(hj/ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+eubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj'eubj)}(hhh]j{)}(harray of gpio pinsh]harray of gpio pins}(hjFehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjBehMhjCeubah}(h]h ]h"]h$]h&]uh1jhj'eubeh}(h]h ]h"]h$]h&]uh1jhjBehMhjydubeh}(h]h ]h"]h$]h&]uh1jhj]dubj{)}(h**Description**h]j)}(hjheh]h Description}(hjjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfeubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj]dubj{)}(h_This function will request gpio, set data direction and request irq for each gpio in the array.h]h_This function will request gpio, set data direction and request irq for each gpio in the array.}(hj~ehhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj]dubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$snd_soc_jack_free_gpios (C function)c.snd_soc_jack_free_gpioshNtauh1hhjAhhhNhNubh)}(hhh](j)}(hdvoid snd_soc_jack_free_gpios (struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h]j )}(hcvoid snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](j)}(hvoidh]hvoid}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjehhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMubj")}(h h]h }(hjehhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjehhhjehMubj3)}(hsnd_soc_jack_free_gpiosh]j9)}(hsnd_soc_jack_free_gpiosh]hsnd_soc_jack_free_gpios}(hjehhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjehhhjehMubjT)}(hG(struct snd_soc_jack *jack, int count, struct snd_soc_jack_gpio *gpios)h](jZ)}(hstruct snd_soc_jack *jackh](j`)}(hjch]hstruct}(hjehhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjeubj")}(h h]h }(hjehhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjeubh)}(hhh]j9)}(h snd_soc_jackh]h snd_soc_jack}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj fmodnameN classnameNjj)}j]j)}jjesbc.snd_soc_jack_free_gpiosasbuh1hhjeubj")}(h h]h }(hj(fhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjeubj)}(hjh]h*}(hj6fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjeubj9)}(hjackh]hjack}(hjCfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjeubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeubjZ)}(h int counth](j)}(hinth]hint}(hj\fhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXfubj")}(h h]h }(hjjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXfubj9)}(hcounth]hcount}(hjxfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjXfubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeubjZ)}(hstruct snd_soc_jack_gpio *gpiosh](j`)}(hjch]hstruct}(hjfhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjfubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubh)}(hhh]j9)}(hsnd_soc_jack_gpioh]hsnd_soc_jack_gpio}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjfmodnameN classnameNjj)}j]j$fc.snd_soc_jack_free_gpiosasbuh1hhjfubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjfubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjfubj9)}(hgpiosh]hgpios}(hjfhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjfubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjeubeh}(h]h ]h"]h$]h&]jQjRuh1jShjehhhjehMubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjehhhjehMubah}(h]jeah ](jmjneh"]h$]h&]jrjs)jthuh1jhjehMhjehhubjv)}(hhh]j{)}(h,Release GPIO pins' resources of an ASoC jackh]h.Release GPIO pins’ resources of an ASoC jack}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjghhubah}(h]h ]h"]h$]h&]uh1juhjehhhjehMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*gjj*gjjjuh1hhhhjAhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hj4gh]h Parameters}(hj6ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2gubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj.gubj)}(hhh](j)}(h(``struct snd_soc_jack *jack`` ASoC jack h](j)}(h``struct snd_soc_jack *jack``h]j)}(hjSgh]hstruct snd_soc_jack *jack}(hjUghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjMgubj)}(hhh]j{)}(h ASoC jackh]h ASoC jack}(hjlghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjhghMhjigubah}(h]h ]h"]h$]h&]uh1jhjMgubeh}(h]h ]h"]h$]h&]uh1jhjhghMhjJgubj)}(h``int count`` number of pins h](j)}(h ``int count``h]j)}(hjgh]h int count}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjgubj)}(hhh]j{)}(hnumber of pinsh]hnumber of pins}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjJgubj)}(h7``struct snd_soc_jack_gpio *gpios`` array of gpio pins h](j)}(h#``struct snd_soc_jack_gpio *gpios``h]j)}(hjgh]hstruct snd_soc_jack_gpio *gpios}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhjgubj)}(hhh]j{)}(harray of gpio pinsh]harray of gpio pins}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjJgubeh}(h]h ]h"]h$]h&]uh1jhj.gubj{)}(h**Description**h]j)}(hjhh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj.gubj{)}(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.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:126: ./sound/soc/soc-jack.chMhj.gubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjAhhhNhNubeh}(h]jack-abstraction-layer-apiah ]h"]jack abstraction layer apiah$]h&]uh1hhjF>hhhhhK{ubh)}(hhh](h)}(hISA DMA Helpersh]hISA DMA Helpers}(hj7hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hhhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_program (C function)c.snd_dma_programhNtauh1hhj4hhhhNhNubh)}(hhh](j)}(hdvoid snd_dma_program (unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h]j )}(hcvoid snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](j)}(hvoidh]hvoid}(hj^hhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZhhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKubj")}(h h]h }(hjmhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjZhhhhjlhhKubj3)}(hsnd_dma_programh]j9)}(hsnd_dma_programh]hsnd_dma_program}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj{hubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjZhhhhjlhhKubjT)}(hO(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode)h](jZ)}(hunsigned long dmah](j)}(hunsignedh]hunsigned}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj)}(hlongh]hlong}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj9)}(hdmah]hdma}(hjhhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubjZ)}(hunsigned long addrh](j)}(hunsignedh]hunsigned}(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj")}(h h]h }(hjhhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj)}(hlongh]hlong}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhubj9)}(haddrh]haddr}(hj$ihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubjZ)}(hunsigned int sizeh](j)}(hunsignedh]hunsigned}(hj=ihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9iubj")}(h h]h }(hjKihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9iubj)}(hinth]hint}(hjYihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9iubj")}(h h]h }(hjgihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj9iubj9)}(hsizeh]hsize}(hjuihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj9iubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubjZ)}(hunsigned short modeh](j)}(hunsignedh]hunsigned}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjiubj)}(hshorth]hshort}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjiubj")}(h h]h }(hjihhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjiubj9)}(hmodeh]hmode}(hjihhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjiubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjhubeh}(h]h ]h"]h$]h&]jQjRuh1jShjZhhhhjlhhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjVhhhhjlhhKubah}(h]jQhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjlhhKhjShhhubjv)}(hhh]j{)}(hprogram an ISA DMA transferh]hprogram an ISA DMA transfer}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjihhubah}(h]h ]h"]h$]h&]uh1juhjShhhhjlhhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjjjuh1hhhhj4hhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj jubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj1jh]hunsigned long dma}(hj3jhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/jubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj+jubj)}(hhh]j{)}(hthe dma numberh]hthe dma number}(hjJjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjFjhKhjGjubah}(h]h ]h"]h$]h&]uh1jhj+jubeh}(h]h ]h"]h$]h&]uh1jhjFjhKhj(jubj)}(h:``unsigned long addr`` the physical address of the buffer h](j)}(h``unsigned long addr``h]j)}(hjjjh]hunsigned long addr}(hjljhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjdjubj)}(hhh]j{)}(h"the physical address of the bufferh]h"the physical address of the buffer}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjdjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj(jubj)}(h,``unsigned int size`` the DMA transfer size h](j)}(h``unsigned int size``h]j)}(hjjh]hunsigned int size}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjjubj)}(hhh]j{)}(hthe DMA transfer sizeh]hthe DMA transfer size}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj(jubj)}(h<``unsigned short mode`` the DMA transfer mode, DMA_MODE_XXX h](j)}(h``unsigned short mode``h]j)}(hjjh]hunsigned short mode}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhjjubj)}(hhh]j{)}(h#the DMA transfer mode, DMA_MODE_XXXh]h#the DMA transfer mode, DMA_MODE_XXX}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjhKhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhKhj(jubeh}(h]h ]h"]h$]h&]uh1jhj jubj{)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj jubj{)}(h2Programs an ISA DMA transfer for the given buffer.h]h2Programs an ISA DMA transfer for the given buffer.}(hj-khhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKhj jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_disable (C function)c.snd_dma_disablehNtauh1hhj4hhhhNhNubh)}(hhh](j)}(h(void snd_dma_disable (unsigned long dma)h]j )}(h'void snd_dma_disable(unsigned long dma)h](j)}(hvoidh]hvoid}(hj\khhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXkhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.ubj")}(h h]h }(hjkkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjXkhhhjjkhK.ubj3)}(hsnd_dma_disableh]j9)}(hsnd_dma_disableh]hsnd_dma_disable}(hj}khhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjykubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjXkhhhjjkhK.ubjT)}(h(unsigned long dma)h]jZ)}(hunsigned long dmah](j)}(hunsignedh]hunsigned}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkubj)}(hlongh]hlong}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj")}(h h]h }(hjkhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkubj9)}(hdmah]hdma}(hjkhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjkubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjkubah}(h]h ]h"]h$]h&]jQjRuh1jShjXkhhhjjkhK.ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjTkhhhjjkhK.ubah}(h]jOkah ](jmjneh"]h$]h&]jrjs)jthuh1jhjjkhK.hjQkhhubjv)}(hhh]j{)}(hstop the ISA DMA transferh]hstop the ISA DMA transfer}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK.hjkhhubah}(h]h ]h"]h$]h&]uh1juhjQkhhhjjkhK.ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjljjljjjuh1hhhhj4hhNhNubj)}(hd**Parameters** ``unsigned long dma`` the dma number **Description** Stops the ISA DMA transfer.h](j{)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK2hjlubj)}(hhh]j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:lubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK/hj6lubj)}(hhh]j{)}(hthe dma numberh]hthe dma number}(hjUlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjQlhK/hjRlubah}(h]h ]h"]h$]h&]uh1jhj6lubeh}(h]h ]h"]h$]h&]uh1jhjQlhK/hj3lubah}(h]h ]h"]h$]h&]uh1jhjlubj{)}(h**Description**h]j)}(hjwlh]h Description}(hjylhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjulubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK1hjlubj{)}(hStops the ISA DMA transfer.h]hStops the ISA DMA transfer.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK0hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj4hhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_dma_pointer (C function)c.snd_dma_pointerhNtauh1hhj4hhhhNhNubh)}(hhh](j)}(hCunsigned int snd_dma_pointer (unsigned long dma, unsigned int size)h]j )}(hBunsigned int snd_dma_pointer(unsigned long dma, unsigned int size)h](j)}(hunsignedh]hunsigned}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?ubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlhhhjlhK?ubj)}(hinth]hint}(hjlhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlhhhjlhK?ubj")}(h h]h }(hjlhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjlhhhjlhK?ubj3)}(hsnd_dma_pointerh]j9)}(hsnd_dma_pointerh]hsnd_dma_pointer}(hjlhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjlubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjlhhhjlhK?ubjT)}(h&(unsigned long dma, unsigned int size)h](jZ)}(hunsigned long dmah](j)}(hunsignedh]hunsigned}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj")}(h h]h }(hj#mhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubj)}(hlongh]hlong}(hj1mhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjmubj")}(h h]h }(hj?mhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjmubj9)}(hdmah]hdma}(hjMmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjmubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj mubjZ)}(hunsigned int sizeh](j)}(hunsignedh]hunsigned}(hjfmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbmubj")}(h h]h }(hjtmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbmubj)}(hinth]hint}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbmubj")}(h h]h }(hjmhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjbmubj9)}(hsizeh]hsize}(hjmhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjbmubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj mubeh}(h]h ]h"]h$]h&]jQjRuh1jShjlhhhjlhK?ubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjlhhhjlhK?ubah}(h]jlah ](jmjneh"]h$]h&]jrjs)jthuh1jhjlhK?hjlhhubjv)}(hhh]j{)}(h:return the current pointer to DMA transfer buffer in bytesh]h:return the current pointer to DMA transfer buffer in bytes}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chK?hjmhhubah}(h]h ]h"]h$]h&]uh1juhjlhhhjlhK?ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjmjjmjjjuh1hhhhj4hhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjmh]h Parameters}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jzhe/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:130: ./sound/core/isadma.chKChjmubj)}(hhh](j)}(h%``unsigned long dma`` the dma number h](j)}(h``unsigned long dma``h]j)}(hj nh]hunsigned long dma}(hj nhhhNhNubah}(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.chK@hjnubj)}(hhh]j{)}(hthe dma numberh]hthe dma number}(hj"nhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjnhK@hjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhK@hjnubj)}(h,``unsigned int size`` the dma transfer size h](j)}(h``unsigned int size``h]j)}(hjBnh]hunsigned int size}(hjDnhhhNhNubah}(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.chKAhjhhhhhKubh)}(hhh](h)}(hOther Helper Macrosh]hOther Helper Macros}(hj`qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]qhhhhhKubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_ref (C function)c.snd_power_refhNtauh1hhj]qhhhNhNubh)}(hhh](j)}(h*void snd_power_ref (struct snd_card *card)h]j )}(h)void snd_power_ref(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjqhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqhhhjqhKubj3)}(h snd_power_refh]j9)}(h snd_power_refh]h snd_power_ref}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjqhhhjqhKubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjqhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjqubj")}(h h]h }(hjqhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjqhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqmodnameN classnameNjj)}j]j)}jjqsbc.snd_power_refasbuh1hhjqubj")}(h h]h }(hjrhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjqubj)}(hjh]h*}(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj9)}(hcardh]hcard}(hjrhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjqubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjqubah}(h]h ]h"]h$]h&]jQjRuh1jShjqhhhjqhKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjqhhhjqhKubah}(h]jzqah ](jmjneh"]h$]h&]jrjs)jthuh1jhjqhKhj|qhhubjv)}(hhh]j{)}(h*Take the reference count for power controlh]h*Take the reference count for power control}(hjGrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjDrhhubah}(h]h ]h"]h$]h&]uh1juhj|qhhhjqhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj_rjj_rjjjuh1hhhhj]qhNhNubj)}(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](j{)}(h**Parameters**h]j)}(hjirh]h Parameters}(hjkrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgrubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjcrubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjrh]hstruct snd_card *card}(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:134: ./include/sound/core.hhKhjrubj)}(hhh]j{)}(hsound card objecth]hsound card object}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjrhKhjrubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjrhKhjrubah}(h]h ]h"]h$]h&]uh1jhjcrubj{)}(h**Description**h]j)}(hjrh]h Description}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjcrubj{)}(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.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjcrubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]qhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_unref (C function)c.snd_power_unrefhNtauh1hhj]qhhhNhNubh)}(hhh](j)}(h,void snd_power_unref (struct snd_card *card)h]j )}(h+void snd_power_unref(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjshhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj")}(h h]h }(hjshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjshhhjshKubj3)}(hsnd_power_unrefh]j9)}(hsnd_power_unrefh]hsnd_power_unref}(hj)shhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj%subah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjshhhjshKubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjEshhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjAsubj")}(h h]h }(hjRshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAsubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjcshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hj`subah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjesmodnameN classnameNjj)}j]j)}jj+ssbc.snd_power_unrefasbuh1hhjAsubj")}(h h]h }(hjshhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjAsubj)}(hjh]h*}(hjshhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAsubj9)}(hcardh]hcard}(hjshhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjAsubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhj=subah}(h]h ]h"]h$]h&]jQjRuh1jShjshhhjshKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihjshhhjshKubah}(h]jrah ](jmjneh"]h$]h&]jrjs)jthuh1jhjshKhjrhhubjv)}(hhh]j{)}(h-Release the reference count for power controlh]h-Release the reference count for power control}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjshhubah}(h]h ]h"]h$]h&]uh1juhjrhhhjshKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsjjsjjjuh1hhhhj]qhNhNubj)}(h=**Parameters** ``struct snd_card *card`` sound card objecth](j{)}(h**Parameters**h]j)}(hjsh]h Parameters}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjsubj)}(hhh]j)}(h+``struct snd_card *card`` sound card objecth](j)}(h``struct snd_card *card``h]j)}(hj th]hstruct snd_card *card}(hj thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjtubj)}(hhh]j{)}(hsound card objecth]hsound card object}(hj"thhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhjtubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjthKhjtubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]qhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_power_sync_ref (C function)c.snd_power_sync_refhNtauh1hhj]qhhhNhNubh)}(hhh](j)}(h/void snd_power_sync_ref (struct snd_card *card)h]j )}(h.void snd_power_sync_ref(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjcthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_thhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKubj")}(h h]h }(hjrthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj_thhhjqthKubj3)}(hsnd_power_sync_refh]j9)}(hsnd_power_sync_refh]hsnd_power_sync_ref}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hj_thhhjqthKubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hjthhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjtubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjtmodnameN classnameNjj)}j]j)}jjtsbc.snd_power_sync_refasbuh1hhjtubj")}(h h]h }(hjthhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjtubj)}(hjh]h*}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubj9)}(hcardh]hcard}(hjthhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjtubeh}(h]h ]h"]h$]h&]noemphjQjRuh1jYhjtubah}(h]h ]h"]h$]h&]jQjRuh1jShj_thhhjqthKubeh}(h]h ]h"]h$]h&]jQjRjguh1j jhjihj[thhhjqthKubah}(h]jVtah ](jmjneh"]h$]h&]jrjs)jthuh1jhjqthKhjXthhubjv)}(hhh]j{)}(h&wait until the card power_ref is freedh]h&wait until the card power_ref is freed}(hj#uhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj uhhubah}(h]h ]h"]h$]h&]uh1juhjXthhhjqthKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj;ujj;ujjjuh1hhhhj]qhNhNubj)}(h**Parameters** ``struct snd_card *card`` sound card object **Description** This function is used to synchronize with the pending power_ref being released.h](j{)}(h**Parameters**h]j)}(hjEuh]h Parameters}(hjGuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCuubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj?uubj)}(hhh]j)}(h,``struct snd_card *card`` sound card object h](j)}(h``struct snd_card *card``h]j)}(hjduh]hstruct snd_card *card}(hjfuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbuubah}(h]h ]h"]h$]h&]uh1jhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj^uubj)}(hhh]j{)}(hsound card objecth]hsound card object}(hj}uhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjyuhKhjzuubah}(h]h ]h"]h$]h&]uh1jhj^uubeh}(h]h ]h"]h$]h&]uh1jhjyuhKhj[uubah}(h]h ]h"]h$]h&]uh1jhj?uubj{)}(h**Description**h]j)}(hjuh]h Description}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj?uubj{)}(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.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhKhj?uubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj]qhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hsnd_card_unref (C function)c.snd_card_unrefhNtauh1hhj]qhhhNhNubh)}(hhh](j)}(h+void snd_card_unref (struct snd_card *card)h]j )}(h*void snd_card_unref(struct snd_card *card)h](j)}(hvoidh]hvoid}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjuhhhf/var/lib/git/docbuild/linux/Documentation/sound/kernel-api/alsa-driver-api:134: ./include/sound/core.hhM5ubj")}(h h]h }(hjuhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjuhhhjuhM5ubj3)}(hsnd_card_unrefh]j9)}(hsnd_card_unrefh]hsnd_card_unref}(hjvhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjvubah}(h]h ](jLjMeh"]h$]h&]jQjRuh1j2hjuhhhjuhM5ubjT)}(h(struct snd_card *card)h]jZ)}(hstruct snd_card *cardh](j`)}(hjch]hstruct}(hj!vhhhNhNubah}(h]h ]jlah"]h$]h&]uh1j_hjvubj")}(h h]h }(hj.vhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjvubh)}(hhh]j9)}(hsnd_cardh]hsnd_card}(hj?vhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j8hjhhhhhKubeh}(h]miscellaneous-functionsah ]h"]miscellaneous functionsah$]h&]uh1hhhhhhhhKtubeh}(h]the-alsa-driver-apiah ]h"]the alsa driver apiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j|jyj]j]j'j'j1j1jN;jK;j]j]jjj=j=jTjSjijijjj\jYj^j[jjjTjQj"j"jjj"j"j7j7j|7jy7jtjtjsjsjC>j@>jjj%7j"7j;>j8>jtjqjAjAj1hj.hjZqjWqjljiu nametypes}(j|j]j'j1jN;j]jj=jTjijj\j^jjTj"jj"j7j|7jtjsjC>jj%7j;>jtjAj1hjZqjluh}(jyhj]hj'hhjj}jjjj j jjjkjpjojtjjjjjOjTjpjujjjgjljjj "j"je$jj$j&j!&j1j'j'j'jp+ju+j-j-j/j/jK;j1j1j1j3j#3jA5jF5j9j9j]jQ;jn;js;j?>jD>j#Aj(AjCjCjFjFjJjJjMjMjYOj^OjRjRjUjUjVjVj YjYjI[jN[jj]j=j^j,^j1^j_j_j1bj6bj~fjfjjjjjljljojoj'sj,sjujujxjxjH|jM|jjjjjއjjKjPjʎjώjjjjjSjXj|jjjj0j5jjjjjEjJjjjjj-j2j8j=j8j=jjj6j;jjj~jjjjjjj jjjj"jjjj$j*j/jj jjj jjjjjj]jbjj jjj jjjjj jYj^jjjj"j`jejjjZj_j\jajqjvjjjjjjjjjFjKjjjjjPjUjjjx j} j j% j j jpjujjjjjjjjjgjljj#jjjjjCjHj!j!j(#j-#j$j$j&j&j(j(j),j.,ji/jn/j1j1j84j=4j5j5jR7jW7j8j9jA;jF;j<j<jSj=j=j=j?j?j\@ja@jAjAjCjCjgDjlDjEjEjGjGjIj IjJjJj:Mj?MjNjNj^PjcPjQjQjijTj Tj%TjUjUj"Wj'WjZjZj(^j-^j^bjcbjfj$fjHhjMhjjij jjjj9mj>mjBpjGpjXrj]rjtjtjujujxj xjUzjZzj{j{j~}j}j!j'jjjjjYjj[jj+j0jߋjjj"jŒjʒjPjUjіj֖j1j6jjjqjvj jǠjjjҥjץjjjjjGjLjjjjjjjAjFjjjj jjjj jYj^jjjjaj~jjjjajfjjjjjjjjjjjjjjjjjjjjjHjMj>jCjjj>jCjQjjjjjjjjjjjjjjjjjj"j_jjpjjjUjZj j j j jjjUjZjjjjj"jjjjjjjj7j"jy7j"j#j#j%j%jI(jN(j}+j+j.j.j20j70j1j1jtj7jsj7j7j7j9j9j<j<j?j?j@j@jpBjuBj_DjdDjNFjSFjGjGjHjHjjKjoKjLjLjMjNj=OjBOjQjQjRjRjUjUj6Wj;WjXjXjZjZj]j]j`j`jZej_ejhjhjtmjymjEpjJpjqjqj@>jtjjtj4tj9tj2vj7vj\xjaxjzjzj|j|j~j~j8j=jj jjjmjrjȋj͋j#j(jjjujzjjjjjujzjjjnjsjájȡjhjmjڥjߥjj jjjjjPjUjojtjjjfjkjjjj jLjQjjj8j=jjj jjBjGj{jjjjjj&j+j_jdjjjjjVj[jjjjjjj:j?jsjxj"7jj jjjj_jdjj jGjLjsjxjjjNjSj`jejjjjjjjjjjjjjMjRj j j j jjj"j'jLjQjvj{jjjjjYj^j7j<ja!jf!j#j#j&j&jX(j](j*j*j,j,j0/j5/jn1js1j3j3j5j5j8>j(7jE7jJ7j:j:j<j<jqjF>jAjW>jt>jy>j.hjAjAjAjFj FjHjHjMjMjOjOjQjQjTTjYTjVjVjXjXjs[jx[j]j]j_j_j_bjdbjejejWqj4hjQhjVhjOkjTkjljljnjnjij]qjzqjqjrjsjVtj[tjujujXwj]wjxj xjyjyj{j{j0~j5~jzjjȁj́jju 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.