sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget*/translations/zh_CN/sound/designs/procfilemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/zh_TW/sound/designs/procfilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/it_IT/sound/designs/procfilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ja_JP/sound/designs/procfilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/ko_KR/sound/designs/procfilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget*/translations/sp_SP/sound/designs/procfilemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hProc Files of ALSA Driversh]hProc Files of ALSA Drivers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhD/var/lib/git/docbuild/linux/Documentation/sound/designs/procfile.rsthKubh paragraph)}(hTakashi Iwai h](hTakashi Iwai <}(hhhhhNhNubh reference)}(h tiwai@suse.deh]h tiwai@suse.de}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:tiwai@suse.deuh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hGeneralh]hGeneral}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hALSA has its own proc tree, /proc/asound. Many useful information are found in this tree. When you encounter a problem and need debugging, check the files listed in the following sections.h]hALSA has its own proc tree, /proc/asound. Many useful information are found in this tree. When you encounter a problem and need debugging, check the files listed in the following sections.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h|Each card has its subtree cardX, where X is from 0 to 7. The card-specific files are stored in the ``card*`` subdirectories.h](hcEach card has its subtree cardX, where X is from 0 to 7. The card-specific files are stored in the }(hhhhhNhNubhliteral)}(h ``card*``h]hcard*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhubh subdirectories.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]generalah ]h"]generalah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hGlobal Informationh]hGlobal Information}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhKubhdefinition_list)}(hhh](hdefinition_list_item)}(hncards Shows the list of currently configured ALSA drivers, index, the id string, short and long descriptions. h](hterm)}(hcardsh]hcards}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhj>ubh definition)}(hhh]h)}(hgShows the list of currently configured ALSA drivers, index, the id string, short and long descriptions.h]hgShows the list of currently configured ALSA drivers, index, the id string, short and long descriptions.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjTubah}(h]h ]h"]h$]h&]uh1jRhj>ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhj9ubj=)}(h3version Shows the version string and compile date. h](jC)}(hversionh]hversion}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhjqubjS)}(hhh]h)}(h*Shows the version string and compile date.h]h*Shows the version string and compile date.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjqubeh}(h]h ]h"]h$]h&]uh1j<hhhKhj9hhubj=)}(h&modules Lists the module of each card h](jC)}(hmodulesh]hmodules}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hLists the module of each cardh]hLists the module of each card}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhj9hhubj=)}(h/devices Lists the ALSA native device mappings. h](jC)}(hdevicesh]hdevices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK hjubjS)}(hhh]h)}(h&Lists the ALSA native device mappings.h]h&Lists the ALSA native device mappings.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhK hj9hhubj=)}(hhmeminfo Shows the status of allocated pages via ALSA drivers. Appears only when ``CONFIG_SND_DEBUG=y``. h](jC)}(hmeminfoh]hmeminfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK$hjubjS)}(hhh]h)}(h_Shows the status of allocated pages via ALSA drivers. Appears only when ``CONFIG_SND_DEBUG=y``.h](hHShows the status of allocated pages via ALSA drivers. Appears only when }(hjhhhNhNubj)}(h``CONFIG_SND_DEBUG=y``h]hCONFIG_SND_DEBUG=y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhK$hj9hhubj=)}(h[hwdep Lists the currently available hwdep devices in format of ``-: `` h](jC)}(hhwdeph]hhwdep}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK(hj?ubjS)}(hhh]h)}(hTLists the currently available hwdep devices in format of ``-: ``h](h9Lists the currently available hwdep devices in format of }(hjThhhNhNubj)}(h``-: ``h]h-: }(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1hhhhK'hjQubah}(h]h ]h"]h$]h&]uh1jRhj?ubeh}(h]h ]h"]h$]h&]uh1j<hhhK(hj9hhubj=)}(hmpcm Lists the currently available PCM devices in format of ``-: : : `` h](jC)}(hpcmh]hpcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK,hj|ubjS)}(hhh]h)}(hhLists the currently available PCM devices in format of ``-: : : ``h](h7Lists the currently available PCM devices in format of }(hjhhhNhNubj)}(h1``-: : : ``h]h--: : : }(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jRhj|ubeh}(h]h ]h"]h$]h&]uh1j<hhhK,hj9hhubj=)}(h3timer Lists the currently available timer devices h](jC)}(htimerh]htimer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK0hjubjS)}(hhh]h)}(h+Lists the currently available timer devicesh]h+Lists the currently available timer devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhK0hj9hhubj=)}(h+oss/devices Lists the OSS device mappings. h](jC)}(h oss/devicesh]h oss/devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK3hjubjS)}(hhh]h)}(hLists the OSS device mappings.h]hLists the OSS device mappings.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhK3hj9hhubj=)}(heoss/sndstat Provides the output compatible with /dev/sndstat. You can symlink this to /dev/sndstat. h](jC)}(h oss/sndstath]h oss/sndstat}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhK8hjubjS)}(hhh]h)}(hWProvides the output compatible with /dev/sndstat. You can symlink this to /dev/sndstat.h]hWProvides the output compatible with /dev/sndstat. You can symlink this to /dev/sndstat.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj)ubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhK8hj9hhubeh}(h]h ]h"]h$]h&]uh1j7hj&hhhhhNubeh}(h]global-informationah ]h"]global informationah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hCard Specific Filesh]hCard Specific Files}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThhhhhK;ubh)}(hX The card-specific files are found in ``/proc/asound/card*`` directories. Some drivers (e.g. cmipci) have their own proc entries for the register dump, etc (e.g. ``/proc/asound/card*/cmipci`` shows the register dump). These files would be really helpful for debugging.h](h%The card-specific files are found in }(hjehhhNhNubj)}(h``/proc/asound/card*``h]h/proc/asound/card*}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubhf directories. Some drivers (e.g. cmipci) have their own proc entries for the register dump, etc (e.g. }(hjehhhNhNubj)}(h``/proc/asound/card*/cmipci``h]h/proc/asound/card*/cmipci}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubhN shows the register dump). These files would be really helpful for debugging.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK=hjThhubh)}(hX8When PCM devices are available on this card, you can see directories like pcm0p or pcm1c. They hold the PCM information for each PCM stream. The number after ``pcm`` is the PCM device number from 0, and the last ``p`` or ``c`` means playback or capture direction. The files in this subtree is described later.h](hWhen PCM devices are available on this card, you can see directories like pcm0p or pcm1c. They hold the PCM information for each PCM stream. The number after }(hjhhhNhNubj)}(h``pcm``h]hpcm}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/ is the PCM device number from 0, and the last }(hjhhhNhNubj)}(h``p``h]hp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h``c``h]hc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhT means playback or capture direction. The files in this subtree is described later.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKBhjThhubh)}(hThe status of MIDI I/O is found in ``midi*`` files. It shows the device name and the received/transmitted bytes through the MIDI device.h](h#The status of MIDI I/O is found in }(hjhhhNhNubj)}(h ``midi*``h]hmidi*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh] files. It shows the device name and the received/transmitted bytes through the MIDI device.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKHhjThhubh)}(heWhen the card is equipped with AC97 codecs, there are ``codec97#*`` subdirectories (described later).h](h6When the card is equipped with AC97 codecs, there are }(hjhhhNhNubj)}(h ``codec97#*``h]h codec97#*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh" subdirectories (described later).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhjThhubh)}(hXWhen the OSS mixer emulation is enabled (and the module is loaded), oss_mixer file appears here, too. This shows the current mapping of OSS mixer elements to the ALSA control elements. You can change the mapping by writing to this device. Read OSS-Emulation.txt for details.h]hXWhen the OSS mixer emulation is enabled (and the module is loaded), oss_mixer file appears here, too. This shows the current mapping of OSS mixer elements to the ALSA control elements. You can change the mapping by writing to this device. Read OSS-Emulation.txt for details.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjThhubeh}(h]card-specific-filesah ]h"]card specific filesah$]h&]uh1hhhhhhhhK;ubh)}(hhh](h)}(hPCM Proc Filesh]hPCM Proc Files}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhKVubj8)}(hhh](j=)}(hc``card*/pcm*/info`` The general information of this PCM device: card #, device #, substreams, etc. h](jC)}(h``card*/pcm*/info``h]j)}(hjKh]hcard*/pcm*/info}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jBhhhKZhjEubjS)}(hhh]h)}(hNThe general information of this PCM device: card #, device #, substreams, etc.h]hNThe general information of this PCM device: card #, device #, substreams, etc.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj`ubah}(h]h ]h"]h$]h&]uh1jRhjEubeh}(h]h ]h"]h$]h&]uh1j<hhhKZhjBubj=)}(hX``card*/pcm*/xrun_debug`` This file appears when ``CONFIG_SND_DEBUG=y`` and ``CONFIG_SND_PCM_XRUN_DEBUG=y``. This shows the status of xrun (= buffer overrun/xrun) and invalid PCM position debug/check of ALSA PCM middle layer. It takes an integer value, can be changed by writing to this file, such as:: # echo 5 > /proc/asound/card0/pcm0p/xrun_debug The value consists of the following bit flags: * bit 0 = Enable XRUN/jiffies debug messages * bit 1 = Show stack trace at XRUN / jiffies check * bit 2 = Enable additional jiffies check When the bit 0 is set, the driver will show the messages to kernel log when an xrun is detected. The debug message is shown also when the invalid H/W pointer is detected at the update of periods (usually called from the interrupt handler). When the bit 1 is set, the driver will show the stack trace additionally. This may help the debugging. Since 2.6.30, this option can enable the hwptr check using jiffies. This detects spontaneous invalid pointer callback values, but can be lead to too much corrections for a (mostly buggy) hardware that doesn't give smooth pointer updates. This feature is enabled via the bit 2. h](jC)}(h``card*/pcm*/xrun_debug``h]j)}(hjh]hcard*/pcm*/xrun_debug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKyhj}ubjS)}(hhh](h)}(hXThis file appears when ``CONFIG_SND_DEBUG=y`` and ``CONFIG_SND_PCM_XRUN_DEBUG=y``. This shows the status of xrun (= buffer overrun/xrun) and invalid PCM position debug/check of ALSA PCM middle layer. It takes an integer value, can be changed by writing to this file, such as::h](hThis file appears when }(hjhhhNhNubj)}(h``CONFIG_SND_DEBUG=y``h]hCONFIG_SND_DEBUG=y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``CONFIG_SND_PCM_XRUN_DEBUG=y``h]hCONFIG_SND_PCM_XRUN_DEBUG=y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. This shows the status of xrun (= buffer overrun/xrun) and invalid PCM position debug/check of ALSA PCM middle layer. It takes an integer value, can be changed by writing to this file, such as:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK]hjubh literal_block)}(h.# echo 5 > /proc/asound/card0/pcm0p/xrun_debugh]h.# echo 5 > /proc/asound/card0/pcm0p/xrun_debug}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhKdhjubh)}(h.The value consists of the following bit flags:h]h.The value consists of the following bit flags:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubh bullet_list)}(hhh](h list_item)}(h*bit 0 = Enable XRUN/jiffies debug messagesh]h)}(hjh]h*bit 0 = Enable XRUN/jiffies debug messages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h0bit 1 = Show stack trace at XRUN / jiffies checkh]h)}(hj h]h0bit 1 = Show stack trace at XRUN / jiffies check}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h(bit 2 = Enable additional jiffies check h]h)}(h'bit 2 = Enable additional jiffies checkh]h'bit 2 = Enable additional jiffies check}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj"ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKhhjubh)}(hWhen the bit 0 is set, the driver will show the messages to kernel log when an xrun is detected. The debug message is shown also when the invalid H/W pointer is detected at the update of periods (usually called from the interrupt handler).h]hWhen the bit 0 is set, the driver will show the messages to kernel log when an xrun is detected. The debug message is shown also when the invalid H/W pointer is detected at the update of periods (usually called from the interrupt handler).}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubh)}(hgWhen the bit 1 is set, the driver will show the stack trace additionally. This may help the debugging.h]hgWhen the bit 1 is set, the driver will show the stack trace additionally. This may help the debugging.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubh)}(hXSince 2.6.30, this option can enable the hwptr check using jiffies. This detects spontaneous invalid pointer callback values, but can be lead to too much corrections for a (mostly buggy) hardware that doesn't give smooth pointer updates. This feature is enabled via the bit 2.h]hXSince 2.6.30, this option can enable the hwptr check using jiffies. This detects spontaneous invalid pointer callback values, but can be lead to too much corrections for a (mostly buggy) hardware that doesn’t give smooth pointer updates. This feature is enabled via the bit 2.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubeh}(h]h ]h"]h$]h&]uh1jRhj}ubeh}(h]h ]h"]h$]h&]uh1j<hhhKyhjBhhubj=)}(hI``card*/pcm*/sub*/info`` The general information of this PCM sub-stream. h](jC)}(h``card*/pcm*/sub*/info``h]j)}(hj~h]hcard*/pcm*/sub*/info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1jBhhhK|hjxubjS)}(hhh]h)}(h/The general information of this PCM sub-stream.h]h/The general information of this PCM sub-stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1jRhjxubeh}(h]h ]h"]h$]h&]uh1j<hhhK|hjBhhubj=)}(hg``card*/pcm*/sub*/status`` The current status of this PCM sub-stream, elapsed time, H/W position, etc. h](jC)}(h``card*/pcm*/sub*/status``h]j)}(hjh]hcard*/pcm*/sub*/status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hKThe current status of this PCM sub-stream, elapsed time, H/W position, etc.h]hKThe current status of this PCM sub-stream, elapsed time, H/W position, etc.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjBhhubj=)}(hO``card*/pcm*/sub*/hw_params`` The hardware parameters set for this sub-stream. h](jC)}(h``card*/pcm*/sub*/hw_params``h]j)}(hjh]hcard*/pcm*/sub*/hw_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(h0The hardware parameters set for this sub-stream.h]h0The hardware parameters set for this sub-stream.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjBhhubj=)}(hK``card*/pcm*/sub*/sw_params`` The soft parameters set for this sub-stream. h](jC)}(h``card*/pcm*/sub*/sw_params``h]j)}(hj&h]hcard*/pcm*/sub*/sw_params}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jBhhhKhj ubjS)}(hhh]h)}(h,The soft parameters set for this sub-stream.h]h,The soft parameters set for this sub-stream.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj;ubah}(h]h ]h"]h$]h&]uh1jRhj ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjBhhubj=)}(hD``card*/pcm*/sub*/prealloc`` The buffer pre-allocation information. h](jC)}(h``card*/pcm*/sub*/prealloc``h]j)}(hj^h]hcard*/pcm*/sub*/prealloc}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jBhhhKhjXubjS)}(hhh]h)}(h&The buffer pre-allocation information.h]h&The buffer pre-allocation information.}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjsubah}(h]h ]h"]h$]h&]uh1jRhjXubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjBhhubj=)}(h``card*/pcm*/sub*/xrun_injection`` Triggers an XRUN to the running stream when any value is written to this proc file. Used for fault injection. This entry is write-only. h](jC)}(h"``card*/pcm*/sub*/xrun_injection``h]j)}(hjh]hcard*/pcm*/sub*/xrun_injection}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hTriggers an XRUN to the running stream when any value is written to this proc file. Used for fault injection. This entry is write-only.h]hTriggers an XRUN to the running stream when any value is written to this proc file. Used for fault injection. This entry is write-only.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjBhhubeh}(h]h ]h"]h$]h&]uh1j7hj1hhhhhNubeh}(h]pcm-proc-filesah ]h"]pcm proc filesah$]h&]uh1hhhhhhhhKVubh)}(hhh](h)}(hAC97 Codec Informationh]hAC97 Codec Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj8)}(hhh](j=)}(hx``card*/codec97#*/ac97#?-?`` Shows the general information of this AC97 codec chip, such as name, capabilities, set up. h](jC)}(h``card*/codec97#*/ac97#?-?``h]j)}(hjh]hcard*/codec97#*/ac97#?-?}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hZShows the general information of this AC97 codec chip, such as name, capabilities, set up.h]hZShows the general information of this AC97 codec chip, such as name, capabilities, set up.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjubj=)}(h``card*/codec97#0/ac97#?-?+regs`` Shows the AC97 register dump. Useful for debugging. When CONFIG_SND_DEBUG is enabled, you can write to this file for changing an AC97 register directly. Pass two hex numbers. For example, h](jC)}(h!``card*/codec97#0/ac97#?-?+regs``h]j)}(hj(h]hcard*/codec97#0/ac97#?-?+regs}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jBhhhKhj"ubjS)}(hhh](h)}(h4Shows the AC97 register dump. Useful for debugging.h]h4Shows the AC97 register dump. Useful for debugging.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj=ubh)}(hWhen CONFIG_SND_DEBUG is enabled, you can write to this file for changing an AC97 register directly. Pass two hex numbers. For example,h]hWhen CONFIG_SND_DEBUG is enabled, you can write to this file for changing an AC97 register directly. Pass two hex numbers. For example,}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj=ubeh}(h]h ]h"]h$]h&]uh1jRhj"ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubeh}(h]h ]h"]h$]h&]uh1j7hjhhhhhNubj)}(h;# echo 02 9f1f > /proc/asound/card0/codec97#0/ac97#0-0+regsh]h;# echo 02 9f1f > /proc/asound/card0/codec97#0/ac97#0-0+regs}hjnsbah}(h]h ]h"]h$]h&]jjuh1jhhhKhjhhubeh}(h]ac97-codec-informationah ]h"]ac97 codec informationah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hUSB Audio Streamsh]hUSB Audio Streams}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj8)}(hhh]j=)}(h``card*/stream*`` Shows the assignment and the current status of each audio stream of the given card. This information is very useful for debugging. h](jC)}(h``card*/stream*``h]j)}(hjh]h card*/stream*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hShows the assignment and the current status of each audio stream of the given card. This information is very useful for debugging.h]hShows the assignment and the current status of each audio stream of the given card. This information is very useful for debugging.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjubah}(h]h ]h"]h$]h&]uh1j7hjhhhhhNubeh}(h]usb-audio-streamsah ]h"]usb audio streamsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hHD-Audio Codecsh]hHD-Audio Codecs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj8)}(hhh](j=)}(h]``card*/codec#*`` Shows the general codec information and the attribute of each widget node. h](jC)}(h``card*/codec#*``h]j)}(hjh]h card*/codec#*}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hJShows the general codec information and the attribute of each widget node.h]hJShows the general codec information and the attribute of each widget node.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjubj=)}(hX``card*/eld#*`` Available for HDMI or DisplayPort interfaces. Shows ELD(EDID Like Data) info retrieved from the attached HDMI sink, and describes its audio capabilities and configurations. Some ELD fields may be modified by doing ``echo name hex_value > eld#*``. Only do this if you are sure the HDMI sink provided value is wrong. And if that makes your HDMI audio work, please report to us so that we can fix it in future kernel releases. h](jC)}(h``card*/eld#*``h]j)}(hj0h]h card*/eld#*}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1jBhhhKhj*ubjS)}(hhh](h)}(hAvailable for HDMI or DisplayPort interfaces. Shows ELD(EDID Like Data) info retrieved from the attached HDMI sink, and describes its audio capabilities and configurations.h]hAvailable for HDMI or DisplayPort interfaces. Shows ELD(EDID Like Data) info retrieved from the attached HDMI sink, and describes its audio capabilities and configurations.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjEubh)}(hSome ELD fields may be modified by doing ``echo name hex_value > eld#*``. Only do this if you are sure the HDMI sink provided value is wrong. And if that makes your HDMI audio work, please report to us so that we can fix it in future kernel releases.h](h)Some ELD fields may be modified by doing }(hjVhhhNhNubj)}(h``echo name hex_value > eld#*``h]hecho name hex_value > eld#*}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh. Only do this if you are sure the HDMI sink provided value is wrong. And if that makes your HDMI audio work, please report to us so that we can fix it in future kernel releases.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjEubeh}(h]h ]h"]h$]h&]uh1jRhj*ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubeh}(h]h ]h"]h$]h&]uh1j7hjhhhhhNubeh}(h]hd-audio-codecsah ]h"]hd-audio codecsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSequencer Informationh]hSequencer Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubj8)}(hhh](j=)}(hBseq/drivers Lists the currently available ALSA sequencer drivers. h](jC)}(h seq/driversh]h seq/drivers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(h5Lists the currently available ALSA sequencer drivers.h]h5Lists the currently available ALSA sequencer drivers.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjubj=)}(hseq/clients Shows the list of currently available sequencer clients and ports. The connection status and the running status are shown in this file, too. h](jC)}(h seq/clientsh]h seq/clients}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhjubjS)}(hhh]h)}(hShows the list of currently available sequencer clients and ports. The connection status and the running status are shown in this file, too.h]hShows the list of currently available sequencer clients and ports. The connection status and the running status are shown in this file, too.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jRhjubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubj=)}(hCseq/queues Lists the currently allocated/running sequencer queues. h](jC)}(h seq/queuesh]h seq/queues}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhj ubjS)}(hhh]h)}(h7Lists the currently allocated/running sequencer queues.h]h7Lists the currently allocated/running sequencer queues.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jRhj ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubj=)}(hBseq/timer Lists the currently allocated/running sequencer timers. h](jC)}(h seq/timerh]h seq/timer}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhj1 ubjS)}(hhh]h)}(h7Lists the currently allocated/running sequencer timers.h]h7Lists the currently allocated/running sequencer timers.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjC ubah}(h]h ]h"]h$]h&]uh1jRhj1 ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubj=)}(h4seq/oss Lists the OSS-compatible sequencer stuffs. h](jC)}(hseq/ossh]hseq/oss}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jBhhhKhj` ubjS)}(hhh]h)}(h*Lists the OSS-compatible sequencer stuffs.h]h*Lists the OSS-compatible sequencer stuffs.}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjr ubah}(h]h ]h"]h$]h&]uh1jRhj` ubeh}(h]h ]h"]h$]h&]uh1j<hhhKhjhhubeh}(h]h ]h"]h$]h&]uh1j7hjhhhhhNubeh}(h]sequencer-informationah ]h"]sequencer informationah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hHelp For Debugging?h]hHelp For Debugging?}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hWhen the problem is related with PCM, first try to turn on xrun_debug mode. This will give you the kernel messages when and where xrun happened.h]hWhen the problem is related with PCM, first try to turn on xrun_debug mode. This will give you the kernel messages when and where xrun happened.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h?If it's really a bug, report it with the following information:h]hAIf it’s really a bug, report it with the following information:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh](j)}(h;the name of the driver/card, show in ``/proc/asound/cards``h]h)}(hj h](h%the name of the driver/card, show in }(hj hhhNhNubj)}(h``/proc/asound/cards``h]h/proc/asound/cards}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubj)}(h8the register dump, if available (e.g. ``card*/cmipci``) h]h)}(h7the register dump, if available (e.g. ``card*/cmipci``)h](h&the register dump, if available (e.g. }(hj hhhNhNubj)}(h``card*/cmipci``h]h card*/cmipci}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h]h ]h"]h$]h&]j@-uh1jhhhKhj hhubh)}(hwhen it's a PCM problem,h]hwhen it’s a PCM problem,}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh]j)}(hXset-up of PCM, shown in hw_parms, sw_params, and status in the PCM sub-stream directory h]h)}(hWset-up of PCM, shown in hw_parms, sw_params, and status in the PCM sub-stream directoryh]hWset-up of PCM, shown in hw_parms, sw_params, and status in the PCM sub-stream directory}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4 ubah}(h]h ]h"]h$]h&]uh1jhj1 hhhhhNubah}(h]h ]h"]h$]h&]j@j" uh1jhhhKhj hhubh)}(hwhen it's a mixer problem,h]hwhen it’s a mixer problem,}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh]j)}(h'AC97 proc files, ``codec97#*/*`` files h]h)}(h&AC97 proc files, ``codec97#*/*`` filesh](hAC97 proc files, }(hjg hhhNhNubj)}(h``codec97#*/*``h]h codec97#*/*}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg ubh files}(hjg hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjc ubah}(h]h ]h"]h$]h&]uh1jhj` hhhhhNubah}(h]h ]h"]h$]h&]j@j" uh1jhhhKhj hhubh)}(hfor USB audio/midi,h]hfor USB audio/midi,}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh](j)}(houtput of ``lsusb -v``h]h)}(hj h](h output of }(hj hhhNhNubj)}(h ``lsusb -v``h]hlsusb -v}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubj)}(h%``stream*`` files in card directory h]h)}(h#``stream*`` files in card directoryh](j)}(h ``stream*``h]hstream*}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh files in card directory}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h]h ]h"]h$]h&]j@j" uh1jhhhKhj hhubh)}(hUThe ALSA bug-tracking system is found at: https://bugtrack.alsa-project.org/alsa-bug/h](h*The ALSA bug-tracking system is found at: }(hj hhhNhNubh)}(h+https://bugtrack.alsa-project.org/alsa-bug/h]h+https://bugtrack.alsa-project.org/alsa-bug/}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurij uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]help-for-debuggingah ]h"]help for debugging?ah$]h&]uh1hhhhhhhhKubeh}(h]proc-files-of-alsa-driversah ]h"]proc files of alsa driversah$]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_handlerjE error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j j j#j jQjNj.j+jjjj~jjjjj j j j u nametypes}(j j#jQj.jjjjj j uh}(j hj hjNj&j+jTjj1j~jjjjjj jj j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.