mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 09:36:25 +00:00 
			
		
		
		
	 a5fcf89eff
			
		
	
	
		a5fcf89eff
		
	
	
	
	
		
			
			Describe what ELD proc interface provides and how to fix incorrect values. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
		
			
				
	
	
		
			218 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 		Proc Files of ALSA Drivers
 | |
| 		==========================
 | |
| 		Takashi Iwai <tiwai@suse.de>
 | |
| 
 | |
| General
 | |
| -------
 | |
| 
 | |
| ALSA 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.
 | |
| 
 | |
| Each card has its subtree cardX, where X is from 0 to 7. The
 | |
| card-specific files are stored in the card* subdirectories.
 | |
| 
 | |
| 
 | |
| Global Information
 | |
| ------------------
 | |
| 
 | |
| cards
 | |
| 	Shows the list of currently configured ALSA drivers,
 | |
| 	index, the id string, short and long descriptions.
 | |
| 
 | |
| version
 | |
| 	Shows the version string and compile date.
 | |
| 
 | |
| modules
 | |
| 	Lists the module of each card
 | |
| 
 | |
| devices
 | |
| 	Lists the ALSA native device mappings.
 | |
| 
 | |
| meminfo
 | |
| 	Shows the status of allocated pages via ALSA drivers.
 | |
| 	Appears only when CONFIG_SND_DEBUG=y.
 | |
| 
 | |
| hwdep
 | |
| 	Lists the currently available hwdep devices in format of
 | |
| 	<card>-<device>: <name>
 | |
| 
 | |
| pcm
 | |
| 	Lists the currently available PCM devices in format of
 | |
| 	<card>-<device>: <id>: <name> : <sub-streams>
 | |
| 
 | |
| timer
 | |
| 	Lists the currently available timer devices
 | |
| 
 | |
| 
 | |
| oss/devices
 | |
| 	Lists the OSS device mappings.
 | |
| 
 | |
| oss/sndstat
 | |
| 	Provides the output compatible with /dev/sndstat.
 | |
| 	You can symlink this to /dev/sndstat.
 | |
| 
 | |
| 
 | |
| Card Specific Files
 | |
| -------------------
 | |
| 
 | |
| 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.
 | |
| 
 | |
| When 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.
 | |
| 
 | |
| The status of MIDI I/O is found in midi* files.  It shows the device
 | |
| name and the received/transmitted bytes through the MIDI device.
 | |
| 
 | |
| When the card is equipped with AC97 codecs, there are codec97#*
 | |
| subdirectories (described later).
 | |
| 
 | |
| When 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.
 | |
| 
 | |
| 
 | |
| PCM Proc Files
 | |
| --------------
 | |
| 
 | |
| card*/pcm*/info
 | |
| 	The general information of this PCM device: card #, device #,
 | |
| 	substreams, etc.
 | |
| 
 | |
| card*/pcm*/xrun_debug
 | |
| 	This file appears when CONFIG_SND_DEBUG=y.
 | |
| 	This shows the status of xrun (= buffer overrun/xrun) debug of
 | |
| 	ALSA PCM middle layer, as an integer from 0 to 2.  The value
 | |
| 	can be changed by writing to this file, such as
 | |
| 
 | |
| 		 # cat 2 > /proc/asound/card0/pcm0p/xrun_debug
 | |
| 
 | |
| 	When this value is greater than 0, 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 this value is greater than 1, the driver will show the
 | |
| 	stack trace additionally.  This may help the debugging.
 | |
| 
 | |
| card*/pcm*/sub*/info
 | |
| 	The general information of this PCM sub-stream.
 | |
| 
 | |
| card*/pcm*/sub*/status
 | |
| 	The current status of this PCM sub-stream, elapsed time,
 | |
| 	H/W position, etc.
 | |
| 
 | |
| card*/pcm*/sub*/hw_params
 | |
| 	The hardware parameters set for this sub-stream.
 | |
| 
 | |
| card*/pcm*/sub*/sw_params
 | |
| 	The soft parameters set for this sub-stream.
 | |
| 
 | |
| card*/pcm*/sub*/prealloc
 | |
| 	The buffer pre-allocation information.
 | |
| 
 | |
| 
 | |
| AC97 Codec Information
 | |
| ----------------------
 | |
| 
 | |
| card*/codec97#*/ac97#?-?
 | |
| 	Shows the general information of this AC97 codec chip, such as
 | |
| 	name, capabilities, set up.
 | |
| 
 | |
| 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,
 | |
| 
 | |
| 	# echo 02 9f1f > /proc/asound/card0/codec97#0/ac97#0-0+regs
 | |
| 
 | |
| 
 | |
| USB Audio Streams
 | |
| -----------------
 | |
| 
 | |
| card*/stream*
 | |
| 	Shows the assignment and the current status of each audio stream
 | |
| 	of the given card.  This information is very useful for debugging.
 | |
| 
 | |
| 
 | |
| HD-Audio Codecs
 | |
| ---------------
 | |
| 
 | |
| card*/codec#*
 | |
| 	Shows the general codec information and the attribute of each
 | |
| 	widget node.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| Sequencer Information
 | |
| ---------------------
 | |
| 
 | |
| seq/drivers
 | |
| 	Lists the currently available ALSA sequencer drivers.
 | |
| 
 | |
| seq/clients
 | |
| 	Shows the list of currently available sequencer clients and
 | |
| 	ports.  The connection status and the running status are shown
 | |
| 	in this file, too.
 | |
| 
 | |
| seq/queues
 | |
| 	Lists the currently allocated/running sequencer queues.
 | |
| 
 | |
| seq/timer
 | |
| 	Lists the currently allocated/running sequencer timers.
 | |
| 
 | |
| seq/oss
 | |
| 	Lists the OSS-compatible sequencer stuffs.
 | |
| 
 | |
| 
 | |
| Help For Debugging?
 | |
| -------------------
 | |
| 
 | |
| When 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.
 | |
| 
 | |
| If it's really a bug, report it with the following information:
 | |
| 
 | |
|   - the name of the driver/card, show in /proc/asound/cards
 | |
|   - the register dump, if available (e.g. card*/cmipci)
 | |
| 
 | |
| when it's a PCM problem,
 | |
| 
 | |
|   - set-up of PCM, shown in hw_parms, sw_params, and status in the PCM
 | |
|     sub-stream directory
 | |
| 
 | |
| when it's a mixer problem,
 | |
| 
 | |
|   - AC97 proc files, codec97#*/* files
 | |
| 
 | |
| for USB audio/midi,
 | |
| 
 | |
|   - output of lsusb -v
 | |
|   - stream* files in card directory
 | |
| 
 | |
| 
 | |
| The ALSA bug-tracking system is found at:
 | |
| 
 | |
|     https://bugtrack.alsa-project.org/alsa-bug/
 |