* ALC883 recording troubles...
@ 2008-06-09 19:59 Daniel J Blueman
2008-06-10 5:59 ` Takashi Iwai
2008-06-10 12:22 ` Romano Giannetti
0 siblings, 2 replies; 41+ messages in thread
From: Daniel J Blueman @ 2008-06-09 19:59 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Linux Kernel
Hi Takashi-san,
I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04
LTS x86-64). I can see on Audacity that the DC offset that varies with
the recording capture level. Plus, the mixer playback->mic-boost
muting enables/disables mic-boost in recording.
It feels like the ALC883 pins aren't configured quite right. The mobo
is an Asus P5E-VM with current BIOS [1]
What's the routine to debug this? Would it help to install windows,
dump the register space and compare?
Thanks in advance,
Daniel
--- [1]
$ sudo lspci -vvvxxxs 0:1b.0
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio
Controller (rev 02)
Subsystem: ASUSTeK Computer Inc. Unknown device 829f
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 22
Region 0: Memory at fe9f8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express Unknown type IRQ 0
Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
Device: Latency L0s <64ns, L1 <1us
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 128 bytes, MaxReadReq 128 bytes
Link: Supported Speed unknown, Width x0, ASPM unknown, Port 0
Link: Latency L0s <64ns, L1 <1us
Link: ASPM Disabled CommClk- ExtSynch-
Link: Speed unknown, Width x0
00: 86 80 3e 29 06 00 10 00 02 00 03 04 08 00 00 00
10: 04 80 9f fe 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 9f 82
30: 00 00 00 00 50 00 00 00 00 00 00 00 0f 01 00 00
40: 01 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00
50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00
60: 05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 10 00 91 00 00 00 00 10 00 08 10 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 04 00 01 00 00 00 00 31 00 a3 02 00 00 00 00
d0: 61 00 a3 02 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
daniel@veyron:~$ aplay -L
default:CARD=Intel
HDA Intel, ALC883 Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=U0x46d0x990
USB Device 0x46d:0x990, USB Audio
Default Audio Device
front:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
Front speakers
surround40:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=U0x46d0x990,DEV=0
USB Device 0x46d:0x990, USB Audio
IEC958 (S/PDIF) Digital Audio Output
front:CARD=HDMI
HDA ATI HDMI
Front speakers
surround40:CARD=HDMI
HDA ATI HDMI
4.0 Surround output to Front and Rear speakers
surround41:CARD=HDMI
HDA ATI HDMI
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=HDMI
HDA ATI HDMI
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=HDMI
HDA ATI HDMI
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=HDMI
HDA ATI HDMI
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
--
Daniel J Blueman
^ permalink raw reply [flat|nested] 41+ messages in thread* Re: ALC883 recording troubles... 2008-06-09 19:59 ALC883 recording troubles Daniel J Blueman @ 2008-06-10 5:59 ` Takashi Iwai 2008-06-11 19:00 ` Daniel J Blueman 2008-06-10 12:22 ` Romano Giannetti 1 sibling, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-06-10 5:59 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Linux Kernel At Mon, 9 Jun 2008 20:59:00 +0100, Daniel J Blueman wrote: > > Hi Takashi-san, > > I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 > LTS x86-64). I can see on Audacity that the DC offset that varies with > the recording capture level. Could you elaborate? The mic bias level could be changed via the pin control value. Usually, it's set as VREF 80%. > Plus, the mixer playback->mic-boost > muting enables/disables mic-boost in recording. This is a known bug in alsa-lib mixer abstraction. No kernel issue. > It feels like the ALC883 pins aren't configured quite right. The mobo > is an Asus P5E-VM with current BIOS [1] > > What's the routine to debug this? Would it help to install windows, > dump the register space and compare? You can find *.INI file that contains the default pin configuration in Windows. This might be useful in the case BIOS is broken but Windows does a black magic. Anyway, please run alsa-info.sh with --no-upload option and show the generated file here. It contains the codec information and mixer setup. http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh Also, you can adjust the pin setting on the fly via hda-verb utility below: http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 Don't forget to build snd-hda-intel module with CONFIG_SND_HDA_HWDEP=y to use this command. Takashi > > Thanks in advance, > Daniel > > --- [1] > > $ sudo lspci -vvvxxxs 0:1b.0 > 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio > Controller (rev 02) > Subsystem: ASUSTeK Computer Inc. Unknown device 829f > Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- > Stepping- SERR- FastB2B- > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- > <TAbort- <MAbort- >SERR- <PERR- > Latency: 0, Cache Line Size: 32 bytes > Interrupt: pin A routed to IRQ 22 > Region 0: Memory at fe9f8000 (64-bit, non-prefetchable) [size=16K] > Capabilities: [50] Power Management version 2 > Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+) > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- > Address: 0000000000000000 Data: 0000 > Capabilities: [70] Express Unknown type IRQ 0 > Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag- > Device: Latency L0s <64ns, L1 <1us > Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported- > Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ > Device: MaxPayload 128 bytes, MaxReadReq 128 bytes > Link: Supported Speed unknown, Width x0, ASPM unknown, Port 0 > Link: Latency L0s <64ns, L1 <1us > Link: ASPM Disabled CommClk- ExtSynch- > Link: Speed unknown, Width x0 > 00: 86 80 3e 29 06 00 10 00 02 00 03 04 08 00 00 00 > 10: 04 80 9f fe 00 00 00 00 00 00 00 00 00 00 00 00 > 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 9f 82 > 30: 00 00 00 00 50 00 00 00 00 00 00 00 0f 01 00 00 > 40: 01 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 > 50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00 > 60: 05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00 > 70: 10 00 91 00 00 00 00 10 00 08 10 00 00 00 00 00 > 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > c0: 00 04 00 01 00 00 00 00 31 00 a3 02 00 00 00 00 > d0: 61 00 a3 02 00 00 00 00 00 00 00 00 00 00 00 00 > e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00 > > $ aplay -l > **** List of PLAYBACK Hardware Devices **** > card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > daniel@veyron:~$ aplay -L > default:CARD=Intel > HDA Intel, ALC883 Analog > Default Audio Device > front:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > Front speakers > surround40:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > 4.0 Surround output to Front and Rear speakers > surround41:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > 4.1 Surround output to Front, Rear and Subwoofer speakers > surround50:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > 5.0 Surround output to Front, Center and Rear speakers > surround51:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > 5.1 Surround output to Front, Center, Rear and Subwoofer speakers > surround71:CARD=Intel,DEV=0 > HDA Intel, ALC883 Analog > 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers > null > Discard all samples (playback) or generate zero samples (capture) > default:CARD=U0x46d0x990 > USB Device 0x46d:0x990, USB Audio > Default Audio Device > front:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > Front speakers > surround40:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > 4.0 Surround output to Front and Rear speakers > surround41:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > 4.1 Surround output to Front, Rear and Subwoofer speakers > surround50:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > 5.0 Surround output to Front, Center and Rear speakers > surround51:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > 5.1 Surround output to Front, Center, Rear and Subwoofer speakers > surround71:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers > iec958:CARD=U0x46d0x990,DEV=0 > USB Device 0x46d:0x990, USB Audio > IEC958 (S/PDIF) Digital Audio Output > front:CARD=HDMI > HDA ATI HDMI > Front speakers > surround40:CARD=HDMI > HDA ATI HDMI > 4.0 Surround output to Front and Rear speakers > surround41:CARD=HDMI > HDA ATI HDMI > 4.1 Surround output to Front, Rear and Subwoofer speakers > surround50:CARD=HDMI > HDA ATI HDMI > 5.0 Surround output to Front, Center and Rear speakers > surround51:CARD=HDMI > HDA ATI HDMI > 5.1 Surround output to Front, Center, Rear and Subwoofer speakers > surround71:CARD=HDMI > HDA ATI HDMI > 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers > -- > Daniel J Blueman > ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-10 5:59 ` Takashi Iwai @ 2008-06-11 19:00 ` Daniel J Blueman 2008-06-11 21:37 ` Daniel J Blueman 2008-06-12 10:49 ` Takashi Iwai 0 siblings, 2 replies; 41+ messages in thread From: Daniel J Blueman @ 2008-06-11 19:00 UTC (permalink / raw) To: Takashi Iwai; +Cc: Linux Kernel On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: > At Mon, 9 Jun 2008 20:59:00 +0100, > Daniel J Blueman wrote: >> >> Hi Takashi-san, >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >> LTS x86-64). I can see on Audacity that the DC offset that varies with >> the recording capture level. > > Could you elaborate? The mic bias level could be changed via the pin > control value. Usually, it's set as VREF 80%. When the recording->capture level is set to 0, the mic has no DC offset as expected. Maxing the recording->capture level, the mic input is saturated, in between, we see a linear connection. >> Plus, the mixer playback->mic-boost >> muting enables/disables mic-boost in recording. > > This is a known bug in alsa-lib mixer abstraction. No kernel issue. >> It feels like the ALC883 pins aren't configured quite right. The mobo >> is an Asus P5E-VM with current BIOS [1] >> >> What's the routine to debug this? Would it help to install windows, >> dump the register space and compare? > > You can find *.INI file that contains the default pin configuration > in Windows. This might be useful in the case BIOS is broken but > Windows does a black magic. That'll be these defaults stashed in the INF file [2]. Let me know if it's not what you expected and I'll publish the complete INF file. > Anyway, please run alsa-info.sh with --no-upload option and show the > generated file here. It contains the codec information and mixer > setup. > http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh See [3]. > Also, you can adjust the pin setting on the fly via hda-verb utility > below: > http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 > > Don't forget to build snd-hda-intel module with > CONFIG_SND_HDA_HWDEP=y to use this command. I'll give this a shot if I get time. Thanks for your time! Daniel > Takashi > >> >> Thanks in advance, >> Daniel >> >> --- [1] >> >> $ sudo lspci -vvvxxxs 0:1b.0 >> 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio >> Controller (rev 02) >> Subsystem: ASUSTeK Computer Inc. Unknown device 829f >> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- >> Stepping- SERR- FastB2B- >> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- >> <TAbort- <MAbort- >SERR- <PERR- >> Latency: 0, Cache Line Size: 32 bytes >> Interrupt: pin A routed to IRQ 22 >> Region 0: Memory at fe9f8000 (64-bit, non-prefetchable) [size=16K] >> Capabilities: [50] Power Management version 2 >> Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+) >> Status: D0 PME-Enable- DSel=0 DScale=0 PME- >> Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- >> Address: 0000000000000000 Data: 0000 >> Capabilities: [70] Express Unknown type IRQ 0 >> Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag- >> Device: Latency L0s <64ns, L1 <1us >> Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported- >> Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ >> Device: MaxPayload 128 bytes, MaxReadReq 128 bytes >> Link: Supported Speed unknown, Width x0, ASPM unknown, Port 0 >> Link: Latency L0s <64ns, L1 <1us >> Link: ASPM Disabled CommClk- ExtSynch- >> Link: Speed unknown, Width x0 >> 00: 86 80 3e 29 06 00 10 00 02 00 03 04 08 00 00 00 >> 10: 04 80 9f fe 00 00 00 00 00 00 00 00 00 00 00 00 >> 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 9f 82 >> 30: 00 00 00 00 50 00 00 00 00 00 00 00 0f 01 00 00 >> 40: 01 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 >> 50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00 >> 60: 05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00 >> 70: 10 00 91 00 00 00 00 10 00 08 10 00 00 00 00 00 >> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> c0: 00 04 00 01 00 00 00 00 31 00 a3 02 00 00 00 00 >> d0: 61 00 a3 02 00 00 00 00 00 00 00 00 00 00 00 00 >> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >> f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00 >> >> $ aplay -l >> **** List of PLAYBACK Hardware Devices **** >> card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] >> Subdevices: 1/1 >> Subdevice #0: subdevice #0 >> card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] >> Subdevices: 1/1 >> Subdevice #0: subdevice #0 >> card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI] >> Subdevices: 1/1 >> Subdevice #0: subdevice #0 >> card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] >> Subdevices: 1/1 >> Subdevice #0: subdevice #0 >> daniel@veyron:~$ aplay -L >> default:CARD=Intel >> HDA Intel, ALC883 Analog >> Default Audio Device >> front:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> Front speakers >> surround40:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> 4.0 Surround output to Front and Rear speakers >> surround41:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> 4.1 Surround output to Front, Rear and Subwoofer speakers >> surround50:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> 5.0 Surround output to Front, Center and Rear speakers >> surround51:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >> surround71:CARD=Intel,DEV=0 >> HDA Intel, ALC883 Analog >> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers >> null >> Discard all samples (playback) or generate zero samples (capture) >> default:CARD=U0x46d0x990 >> USB Device 0x46d:0x990, USB Audio >> Default Audio Device >> front:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> Front speakers >> surround40:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> 4.0 Surround output to Front and Rear speakers >> surround41:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> 4.1 Surround output to Front, Rear and Subwoofer speakers >> surround50:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> 5.0 Surround output to Front, Center and Rear speakers >> surround51:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >> surround71:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers >> iec958:CARD=U0x46d0x990,DEV=0 >> USB Device 0x46d:0x990, USB Audio >> IEC958 (S/PDIF) Digital Audio Output >> front:CARD=HDMI >> HDA ATI HDMI >> Front speakers >> surround40:CARD=HDMI >> HDA ATI HDMI >> 4.0 Surround output to Front and Rear speakers >> surround41:CARD=HDMI >> HDA ATI HDMI >> 4.1 Surround output to Front, Rear and Subwoofer speakers >> surround50:CARD=HDMI >> HDA ATI HDMI >> 5.0 Surround output to Front, Center and Rear speakers >> surround51:CARD=HDMI >> HDA ATI HDMI >> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >> surround71:CARD=HDMI >> HDA ATI HDMI >> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers --- [2] [OEMSettingsOverride.AddReg] HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY% ;48k16bit HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04 ,00,10,00,16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,DC,05,00,08,00,20,00, 16,00,18,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 ;;HKR,"EP\\0", %PKEY_AudioEndpoint_Ext_UiClsid%,,%AUDIOENDPOINT_EXT_UI_CLSID% [OEMSPDIFSettingsOverride.AddReg] HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_HDMI_INTERFACE% HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00, 16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 HKR,"EP\\0", %PKEY_SupportFormat_OEMFormat%, %REG_BINARY%, 41,00,75,00,0c,00,00,00,10,00,00,00,02,00,00,00,00,00,00,00 HKR,"EP\\1", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY% HKR,"EP\\1", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00, 16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 --- [3] name=daniel&type=33&description=/tmp/alsa-info.txt&expiry=&s=Submit+Post&content= !!################################ !!ALSA Information Script v 0.4.48 !!################################ !!Script ran on: Wed Jun 11 19:13:55 BST 2008 !!Linux Distribution !!------------------ Ubuntu 8.04 \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 8.04" !!Kernel Information !!------------------ Kernel release: 2.6.24-18-generic Operating System: GNU/Linux Architecture: x86_64 Processor: unknown SMP Enabled: Yes !!ALSA Version !!------------ Driver version: 1.0.16 Library version: 1.0.15 Utilities version: 1.0.15 !!Loaded ALSA modules !!------------------- snd_hda_intel snd_usb_audio snd_hda_intel !!Soundcards recognised by ALSA !!----------------------------- 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xfe9f8000 irq 22 1 [U0x46d0x990 ]: USB-Audio - USB Device 0x46d:0x990 USB Device 0x46d:0x990 at usb-0000:00:1a.7-1, high speed 2 [HDMI ]: HDA-Intel - HDA ATI HDMI HDA ATI HDMI at 0xfeafc000 irq 17 !!PCI Soundcards installed in the system !!-------------------------------------- 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02) 01:00.1 Audio device: ATI Technologies Inc Radeon HD 3870 Audio device !!Advanced information - PCI Vendor/Device/Susbsystem ID's !!-------------------------------------------------------- 00:1b.0 0403: 8086:293e (rev 02) Subsystem: 1043:829f -- 01:00.1 0403: 1002:aa18 Subsystem: 174b:aa18 !!Modprobe options (Sound related) !!-------------------------------- snd-atiixp-modem: index=-2 snd-intel8x0m: index=-2 snd-via82xx-modem: index=-2 snd-usb-audio: index=-2 snd-usb-usx2y: index=-2 snd-usb-caiaq: index=-2 snd-cmipci: mpu_port=0x330 fm_port=0x388 !!Loaded sound module options !!-------------------------- !!Module: snd_hda_intel enable : Y,Y,Y,Y,Y,Y,Y,Y enable_msi : 0 id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> index : -1,-1,-1,-1,-1,-1,-1,-1 model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> position_fix : 0,0,0,0,0,0,0,0 power_save : 0 power_save_controller : Y probe_mask : -1,-1,-1,-1,-1,-1,-1,-1 single_cmd : N !!Module: snd_usb_audio async_unlink : Y device_setup : 0,0,0,0,0,0,0,0 enable : Y,Y,Y,Y,Y,Y,Y,Y id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> index : -2,-1,-1,-1,-1,-1,-1,-1 nrpacks : 8 pid : -1,-1,-1,-1,-1,-1,-1,-1 vid : -1,-1,-1,-1,-1,-1,-1,-1 !!Module: snd_hda_intel enable : Y,Y,Y,Y,Y,Y,Y,Y enable_msi : 0 id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> index : -1,-1,-1,-1,-1,-1,-1,-1 model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> position_fix : 0,0,0,0,0,0,0,0 power_save : 0 power_save_controller : Y probe_mask : -1,-1,-1,-1,-1,-1,-1,-1 single_cmd : N !!HDA-Intel Codec information !!--------------------------- --startcollapse-- Codec: Realtek ALC883 Address: 0 Vendor Id: 0x10ec0883 Subsystem Id: 0x1043829f Revision Id: 0x100002 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=2, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0 Node 0x02 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x03 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x04 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x05 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x1 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In Amp-In caps: ofs=0x08, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x00 0x00] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x160]: 44100 48000 96000 bits [0x6]: 16 20 formats [0x1]: PCM Connection: 1 0x23 Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In Amp-In caps: ofs=0x08, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x80 0x80] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x160]: 44100 48000 96000 bits [0x6]: 16 20 formats [0x1]: PCM Connection: 1 0x22 Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Digital category: 0x0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Unsolicited: tag=00, enabled=0 Connection: 1 0x1f Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 Amp-In vals: [0x0c 0x0c] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Connection: 10 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 Node 0x0c [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 Amp-Out vals: [0x1f 0x1f] Connection: 2 0x02 0x0b Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 Amp-Out vals: [0x00 0x00] Connection: 2 0x03 0x0b Node 0x0e [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 Amp-Out vals: [0x00 0x00] Connection: 2 0x04 0x0b Node 0x0f [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x80 0x80] [0x80 0x80] Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 Amp-Out vals: [0x00 0x00] Connection: 2 0x05 0x0b Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01014010: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Green DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01011012: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0x2 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d* 0x0e 0x0f 0x26 Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01016011: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Orange DefAssociation = 0x1, Sequence = 0x1 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e* 0x0f 0x26 Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x083e: IN OUT HP Detect Trigger Pin Default 0x01012014: [Jack] Line Out at Ext Rear Conn = 1/8, Color = Grey DefAssociation = 0x1, Sequence = 0x4 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 5 0x0c 0x0d 0x0e 0x0f* 0x26 Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x08173e: IN OUT HP Detect Trigger Vref caps: HIZ 50 GRD 80 Pin Default 0x01a19840: [Jack] Mic at Ext Rear Conn = 1/8, Color = Pink DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x08173e: IN OUT HP Detect Trigger Vref caps: HIZ 50 GRD 80 Pin Default 0x02a19c50: [Jack] Mic at Ext Front Conn = 1/8, Color = Pink DefAssociation = 0x5, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x08173e: IN OUT HP Detect Trigger Vref caps: HIZ 50 GRD 80 Pin Default 0x0181304f: [Jack] Line In at Ext Rear Conn = 1/8, Color = Blue DefAssociation = 0x4, Sequence = 0xf Pin-ctls: 0x20: IN VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x08173e: IN OUT HP Detect Trigger Vref caps: HIZ 50 GRD 80 Pin Default 0x02214c20: [Jack] HP Out at Ext Front Conn = 1/8, Color = Green DefAssociation = 0x2, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP VREF_HIZ Unsolicited: tag=04, enabled=1 Connection: 5 0x0c* 0x0d 0x0e 0x0f 0x26 Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x593301f0: [N/A] CD at Int ATAPI Conn = ATAPI, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pincap 0x0820: IN Pin Default 0x4005e601: [N/A] Line Out at Ext N/A Conn = Optical, Color = White DefAssociation = 0x0, Sequence = 0x1 Pin-ctls: 0x00: Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital Pincap 0x0810: OUT Pin Default 0x01441130: [Jack] SPDIF Out at Ext Rear Conn = RCA, Color = Black DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Connection: 1 0x06 Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital Pincap 0x0820: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=17 Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x22 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Amp-Out caps: N/A Amp-Out vals: [0x00 0x00] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x23 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] Amp-Out caps: N/A Amp-Out vals: [0x00 0x00] Connection: 11 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x25 [Audio Output] wcaps 0x11: Stereo Converter: stream=0, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x26 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x00 0x00] Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 Amp-Out vals: [0x00 0x00] Connection: 2 0x25 0x0b Codec: Generic 1095 SI HDMI Address: 1 Vendor Id: 0x10951392 Subsystem Id: 0xffffffff Revision Id: 0x100000 No Modem Function Group found Default PCM: rates [0x0]: bits [0x0]: formats [0x0]: Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 Node 0x02 [Audio Output] wcaps 0x6211: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Node 0x03 [Pin Complex] wcaps 0x40738d: Stereo Digital Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x0894: OUT Detect R/L Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x02 Codec: Generic 1002 ATI R6xx HDMI Address: 0 Vendor Id: 0x1002aa01 Subsystem Id: 0xaa0100 Revision Id: 0x100000 No Modem Function Group found Default PCM: rates [0x40]: 48000 bits [0x2]: 16 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 Node 0x02 [Audio Output] wcaps 0x201: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 Node 0x03 [Pin Complex] wcaps 0x400381: Stereo Digital Pincap 0x0894: OUT Detect R/L Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x02 --endcollapse-- !!ALSA Device nodes !!----------------- crw-rw----+ 1 root audio 116, 0 2008-06-11 17:36 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 32 2008-06-11 17:36 /dev/snd/controlC1 crw-rw----+ 1 root audio 116, 64 2008-06-11 17:36 /dev/snd/controlC2 crw-rw----+ 1 root audio 116, 4 2008-06-11 17:36 /dev/snd/hwC0D0 crw-rw----+ 1 root audio 116, 5 2008-06-11 17:36 /dev/snd/hwC0D1 crw-rw----+ 1 root audio 116, 68 2008-06-11 17:36 /dev/snd/hwC2D0 crw-rw----+ 1 root audio 116, 24 2008-06-11 17:55 /dev/snd/pcmC0D0c crw-rw----+ 1 root audio 116, 16 2008-06-11 18:02 /dev/snd/pcmC0D0p crw-rw----+ 1 root audio 116, 17 2008-06-11 17:36 /dev/snd/pcmC0D1p crw-rw----+ 1 root audio 116, 26 2008-06-11 17:36 /dev/snd/pcmC0D2c crw-rw----+ 1 root audio 116, 19 2008-06-11 17:36 /dev/snd/pcmC0D3p crw-rw----+ 1 root audio 116, 56 2008-06-11 17:55 /dev/snd/pcmC1D0c crw-rw----+ 1 root audio 116, 83 2008-06-11 17:36 /dev/snd/pcmC2D3p crw-rw----+ 1 root audio 116, 1 2008-06-11 17:36 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 2008-06-11 17:36 /dev/snd/timer !!Aplay/Arecord output !!------------ APLAY **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0 ARECORD **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Intel [HDA Intel], device 2: ALC883 Analog [ALC883 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: U0x46d0x990 [USB Device 0x46d:0x990], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 !!Amixer output !!------------- !!-------Mixer controls for card 0 [Intel] Simple mixer control 'Master',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 31 Mono: Playback 31 [100%] [0.00dB] [on] Simple mixer control 'Headphone',0 Capabilities: pswitch Playback channels: Front Left - Front Right Mono: Front Left: Playback [on] Front Right: Playback [on] Simple mixer control 'PCM',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 255 [100%] [0.00dB] Front Right: Playback 255 [100%] [0.00dB] Simple mixer control 'Front',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 31 [100%] [0.00dB] [on] Front Right: Playback 31 [100%] [0.00dB] [on] Simple mixer control 'Front Mic',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 0 [0%] [-34.50dB] [off] Front Right: Playback 0 [0%] [-34.50dB] [off] Simple mixer control 'Front Mic Boost',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 3 Front Left: 0 [0%] Front Right: 0 [0%] Simple mixer control 'Surround',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 0 [0%] [-46.50dB] [off] Front Right: Playback 0 [0%] [-46.50dB] [off] Simple mixer control 'Center',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 31 Mono: Playback 0 [0%] [-46.50dB] [off] Simple mixer control 'LFE',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined Playback channels: Mono Limits: Playback 0 - 31 Mono: Playback 0 [0%] [-46.50dB] [off] Simple mixer control 'Side',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 0 [0%] [-46.50dB] [off] Front Right: Playback 0 [0%] [-46.50dB] [off] Simple mixer control 'Line',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 0 [0%] [-34.50dB] [off] Front Right: Playback 0 [0%] [-34.50dB] [off] Simple mixer control 'Mic',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Front Left: Playback 12 [39%] [-16.50dB] [on] Front Right: Playback 12 [39%] [-16.50dB] [on] Simple mixer control 'Mic Boost',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 3 Front Left: 3 [100%] Front Right: 3 [100%] Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',1 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 31 Front Left: Capture 0 [0%] [-12.00dB] [on] Front Right: Capture 0 [0%] [-12.00dB] [on] Simple mixer control 'Capture',1 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 31 Front Left: Capture 0 [0%] [-12.00dB] [off] Front Right: Capture 0 [0%] [-12.00dB] [off] Simple mixer control 'Digital',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 0 [0%] [-30.00dB] Front Right: Capture 0 [0%] [-30.00dB] Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Mic' 'Front Mic' 'Line' Item0: 'Mic' Simple mixer control 'Input Source',1 Capabilities: cenum Items: 'Mic' 'Front Mic' 'Line' Item0: 'Mic' !!-------Mixer controls for card 1 [U0x46d0x990] Simple mixer control 'Mic',0 Capabilities: cvolume cswitch cswitch-joined Capture channels: Mono Limits: Capture 0 - 3072 Mono: Capture 0 [0%] [18.00dB] [off] !!-------Mixer controls for card 2 [HDMI] Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] !!Alsactl output !!------------- --startcollapse-- state.Intel { control.1 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Front Playback Volume' value.0 31 value.1 31 } control.2 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Front Playback Switch' value.0 true value.1 true } control.3 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Surround Playback Volume' value.0 0 value.1 0 } control.4 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Surround Playback Switch' value.0 false value.1 false } control.5 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Center Playback Volume' value 0 } control.6 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'LFE Playback Volume' value 0 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Center Playback Switch' value false } control.8 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'LFE Playback Switch' value false } control.9 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Side Playback Volume' value.0 0 value.1 0 } control.10 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Side Playback Switch' value.0 false value.1 false } control.11 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Headphone Playback Switch' value.0 true value.1 true } control.12 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Mic Playback Volume' value.0 12 value.1 12 } control.13 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Mic Playback Switch' value.0 true value.1 true } control.14 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Front Mic Playback Volume' value.0 0 value.1 0 } control.15 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Front Mic Playback Switch' value.0 false value.1 false } control.16 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Line Playback Volume' value.0 0 value.1 0 } control.17 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Line Playback Switch' value.0 false value.1 false } control.18 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 3' iface MIXER name 'Mic Boost' value.0 3 value.1 3 } control.19 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 3' iface MIXER name 'Front Mic Boost' value.0 0 value.1 0 } control.20 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Capture Volume' value.0 0 value.1 0 } control.21 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 true value.1 true } control.22 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Capture Volume' index 1 value.0 0 value.1 0 } control.23 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 1 value.0 false value.1 false } control.24 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic comment.item.1 'Front Mic' comment.item.2 Line iface MIXER name 'Input Source' value Mic } control.25 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic comment.item.1 'Front Mic' comment.item.2 Line iface MIXER name 'Input Source' index 1 value Mic } control.26 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.27 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.28 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' value '0482000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.29 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' value true } control.30 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 31' iface MIXER name 'Master Playback Volume' value 31 } control.31 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Master Playback Switch' value true } control.32 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' index 1 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.33 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' index 1 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.34 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' index 1 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.35 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' index 1 value false } control.36 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' iface MIXER name 'PCM Playback Volume' value.0 255 value.1 255 } control.37 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 120' comment.tlv '0000000100000008fffff44800000032' iface MIXER name 'Digital Capture Volume' value.0 0 value.1 0 } } state.U0x46d0x990 { control.1 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'Mic Capture Switch' value false } control.2 { comment.access 'read write' comment.type INTEGER comment.count 1 comment.range '0 - 3072' iface MIXER name 'Mic Capture Volume' value 0 } } state.HDMI { control.1 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.2 { comment.access read comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.3 { comment.access 'read write' comment.type IEC958 comment.count 1 iface MIXER name 'IEC958 Playback Default' value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' } control.4 { comment.access 'read write' comment.type BOOLEAN comment.count 1 iface MIXER name 'IEC958 Playback Switch' value false } } --endcollapse-- !!All Loaded Modules !!------------------ Module ppdev ipv6 acpi_cpufreq cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_ondemand freq_table cpufreq_conservative video output sbs sbshc container dock battery microcode nfs lockd nfs_acl sunrpc iptable_filter ip_tables x_tables ext3 jbd mbcache af_packet ac parport_pc lp parport snd_usb_audio snd_usb_lib uvcvideo snd_hda_intel compat_ioctl32 psmouse snd_seq_dummy videodev v4l1_compat v4l2_common snd_seq_oss snd_seq_midi serio_raw snd_rawmidi snd_pcm_oss snd_mixer_oss fglrx atl1 mii snd_seq_midi_event snd_pcm snd_seq snd_seq_device snd_timer snd_page_alloc snd_hwdep intel_agp iTCO_wdt iTCO_vendor_support snd button evdev soundcore shpchp pci_hotplug usbhid hid xfs sg sr_mod cdrom sd_mod ahci libata scsi_mod ehci_hcd uhci_hcd usbcore thermal processor fan fbcon tileblit font bitblit softcursor fuse -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-11 19:00 ` Daniel J Blueman @ 2008-06-11 21:37 ` Daniel J Blueman 2008-06-12 10:45 ` Takashi Iwai 2008-06-12 10:49 ` Takashi Iwai 1 sibling, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-06-11 21:37 UTC (permalink / raw) To: Takashi Iwai; +Cc: Linux Kernel On Wed, Jun 11, 2008 at 8:00 PM, Daniel J Blueman <daniel.blueman@gmail.com> wrote: > On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: >> At Mon, 9 Jun 2008 20:59:00 +0100, >> Daniel J Blueman wrote: >>> >>> Hi Takashi-san, >>> >>> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >>> LTS x86-64). I can see on Audacity that the DC offset that varies with >>> the recording capture level. >> >> Could you elaborate? The mic bias level could be changed via the pin >> control value. Usually, it's set as VREF 80%. > > When the recording->capture level is set to 0, the mic has no DC > offset as expected. Maxing the recording->capture level, the mic input > is saturated, in between, we see a linear connection. > >>> Plus, the mixer playback->mic-boost >>> muting enables/disables mic-boost in recording. >> >> This is a known bug in alsa-lib mixer abstraction. No kernel issue. > >>> It feels like the ALC883 pins aren't configured quite right. The mobo >>> is an Asus P5E-VM with current BIOS [1] >>> >>> What's the routine to debug this? Would it help to install windows, >>> dump the register space and compare? >> >> You can find *.INI file that contains the default pin configuration >> in Windows. This might be useful in the case BIOS is broken but >> Windows does a black magic. > > That'll be these defaults stashed in the INF file [2]. Let me know if > it's not what you expected and I'll publish the complete INF file. > >> Anyway, please run alsa-info.sh with --no-upload option and show the >> generated file here. It contains the codec information and mixer >> setup. >> http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh > > See [3]. >> Also, you can adjust the pin setting on the fly via hda-verb utility >> below: >> http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 >> >> Don't forget to build snd-hda-intel module with >> CONFIG_SND_HDA_HWDEP=y to use this command. > > I'll give this a shot if I get time. Looking at the datasheet and ALSA report, changing the front mic node id also affects capturing from the (rear) mic input. ftp://66.104.77.130/pc/audio/ALC883_DataSheet_1.3.pdf We get the "hda_codec: Unknown model for ALC883, trying auto-probe from BIOS..." kernel message, so we may need to tweak pci/hda/patch_realtek.c. Also, I can reproduce the problem the with HD and legacy front-panel audio settings in the BIOS. Do you know a way to dump eg the pin configuration in windows or other useful state, so I can compare with all the possible node ID configuration values? > Thanks for your time! > Daniel > >> Takashi >> >>> >>> Thanks in advance, >>> Daniel >>> >>> --- [1] >>> >>> $ sudo lspci -vvvxxxs 0:1b.0 >>> 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio >>> Controller (rev 02) >>> Subsystem: ASUSTeK Computer Inc. Unknown device 829f >>> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- >>> Stepping- SERR- FastB2B- >>> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- >>> <TAbort- <MAbort- >SERR- <PERR- >>> Latency: 0, Cache Line Size: 32 bytes >>> Interrupt: pin A routed to IRQ 22 >>> Region 0: Memory at fe9f8000 (64-bit, non-prefetchable) [size=16K] >>> Capabilities: [50] Power Management version 2 >>> Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+) >>> Status: D0 PME-Enable- DSel=0 DScale=0 PME- >>> Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- >>> Address: 0000000000000000 Data: 0000 >>> Capabilities: [70] Express Unknown type IRQ 0 >>> Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag- >>> Device: Latency L0s <64ns, L1 <1us >>> Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported- >>> Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ >>> Device: MaxPayload 128 bytes, MaxReadReq 128 bytes >>> Link: Supported Speed unknown, Width x0, ASPM unknown, Port 0 >>> Link: Latency L0s <64ns, L1 <1us >>> Link: ASPM Disabled CommClk- ExtSynch- >>> Link: Speed unknown, Width x0 >>> 00: 86 80 3e 29 06 00 10 00 02 00 03 04 08 00 00 00 >>> 10: 04 80 9f fe 00 00 00 00 00 00 00 00 00 00 00 00 >>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 9f 82 >>> 30: 00 00 00 00 50 00 00 00 00 00 00 00 0f 01 00 00 >>> 40: 01 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 >>> 50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00 >>> 60: 05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 70: 10 00 91 00 00 00 00 10 00 08 10 00 00 00 00 00 >>> 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> c0: 00 04 00 01 00 00 00 00 31 00 a3 02 00 00 00 00 >>> d0: 61 00 a3 02 00 00 00 00 00 00 00 00 00 00 00 00 >>> e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >>> f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00 >>> >>> $ aplay -l >>> **** List of PLAYBACK Hardware Devices **** >>> card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] >>> Subdevices: 1/1 >>> Subdevice #0: subdevice #0 >>> card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] >>> Subdevices: 1/1 >>> Subdevice #0: subdevice #0 >>> card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI] >>> Subdevices: 1/1 >>> Subdevice #0: subdevice #0 >>> card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] >>> Subdevices: 1/1 >>> Subdevice #0: subdevice #0 >>> daniel@veyron:~$ aplay -L >>> default:CARD=Intel >>> HDA Intel, ALC883 Analog >>> Default Audio Device >>> front:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> Front speakers >>> surround40:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> 4.0 Surround output to Front and Rear speakers >>> surround41:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> 4.1 Surround output to Front, Rear and Subwoofer speakers >>> surround50:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> 5.0 Surround output to Front, Center and Rear speakers >>> surround51:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >>> surround71:CARD=Intel,DEV=0 >>> HDA Intel, ALC883 Analog >>> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers >>> null >>> Discard all samples (playback) or generate zero samples (capture) >>> default:CARD=U0x46d0x990 >>> USB Device 0x46d:0x990, USB Audio >>> Default Audio Device >>> front:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> Front speakers >>> surround40:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> 4.0 Surround output to Front and Rear speakers >>> surround41:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> 4.1 Surround output to Front, Rear and Subwoofer speakers >>> surround50:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> 5.0 Surround output to Front, Center and Rear speakers >>> surround51:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >>> surround71:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers >>> iec958:CARD=U0x46d0x990,DEV=0 >>> USB Device 0x46d:0x990, USB Audio >>> IEC958 (S/PDIF) Digital Audio Output >>> front:CARD=HDMI >>> HDA ATI HDMI >>> Front speakers >>> surround40:CARD=HDMI >>> HDA ATI HDMI >>> 4.0 Surround output to Front and Rear speakers >>> surround41:CARD=HDMI >>> HDA ATI HDMI >>> 4.1 Surround output to Front, Rear and Subwoofer speakers >>> surround50:CARD=HDMI >>> HDA ATI HDMI >>> 5.0 Surround output to Front, Center and Rear speakers >>> surround51:CARD=HDMI >>> HDA ATI HDMI >>> 5.1 Surround output to Front, Center, Rear and Subwoofer speakers >>> surround71:CARD=HDMI >>> HDA ATI HDMI >>> 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers > > --- [2] > > [OEMSettingsOverride.AddReg] > HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY% > ;48k16bit HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, > 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04 > ,00,10,00,16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 > HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, > 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,DC,05,00,08,00,20,00, > 16,00,18,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 > ;;HKR,"EP\\0", %PKEY_AudioEndpoint_Ext_UiClsid%,,%AUDIOENDPOINT_EXT_UI_CLSID% > > [OEMSPDIFSettingsOverride.AddReg] > HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_HDMI_INTERFACE% > HKR,"EP\\0", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, > 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00, > 16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 > HKR,"EP\\0", %PKEY_SupportFormat_OEMFormat%, %REG_BINARY%, > 41,00,75,00,0c,00,00,00,10,00,00,00,02,00,00,00,00,00,00,00 > > HKR,"EP\\1", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY% > HKR,"EP\\1", %PKEY_AudioEngine_OEMFormat%, %REG_BINARY%, > 41,00,C8,70,28,00,00,00,FE,FF,02,00,80,BB,00,00,00,EE,02,00,04,00,10,00, > 16,00,10,00,03,00,00,00,01,00,00,00,00,00,10,00,80,00,00,AA,00,38,9B,71 > > --- [3] > > name=daniel&type=33&description=/tmp/alsa-info.txt&expiry=&s=Submit+Post&content= > !!################################ > !!ALSA Information Script v 0.4.48 > !!################################ > > !!Script ran on: Wed Jun 11 19:13:55 BST 2008 > > > !!Linux Distribution > !!------------------ > > Ubuntu 8.04 \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 8.04" > > > !!Kernel Information > !!------------------ > > Kernel release: 2.6.24-18-generic > Operating System: GNU/Linux > Architecture: x86_64 > Processor: unknown > SMP Enabled: Yes > > > !!ALSA Version > !!------------ > > Driver version: 1.0.16 > Library version: 1.0.15 > Utilities version: 1.0.15 > > > !!Loaded ALSA modules > !!------------------- > > snd_hda_intel > snd_usb_audio > snd_hda_intel > > > !!Soundcards recognised by ALSA > !!----------------------------- > > 0 [Intel ]: HDA-Intel - HDA Intel > HDA Intel at 0xfe9f8000 irq 22 > 1 [U0x46d0x990 ]: USB-Audio - USB Device 0x46d:0x990 > USB Device 0x46d:0x990 at usb-0000:00:1a.7-1, high speed > 2 [HDMI ]: HDA-Intel - HDA ATI HDMI > HDA ATI HDMI at 0xfeafc000 irq 17 > > > !!PCI Soundcards installed in the system > !!-------------------------------------- > > 00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio > Controller (rev 02) > 01:00.1 Audio device: ATI Technologies Inc Radeon HD 3870 Audio device > > > !!Advanced information - PCI Vendor/Device/Susbsystem ID's > !!-------------------------------------------------------- > > 00:1b.0 0403: 8086:293e (rev 02) > Subsystem: 1043:829f > -- > 01:00.1 0403: 1002:aa18 > Subsystem: 174b:aa18 > > > !!Modprobe options (Sound related) > !!-------------------------------- > > snd-atiixp-modem: index=-2 > snd-intel8x0m: index=-2 > snd-via82xx-modem: index=-2 > snd-usb-audio: index=-2 > snd-usb-usx2y: index=-2 > snd-usb-caiaq: index=-2 > snd-cmipci: mpu_port=0x330 fm_port=0x388 > > > !!Loaded sound module options > !!-------------------------- > > !!Module: snd_hda_intel > enable : Y,Y,Y,Y,Y,Y,Y,Y > enable_msi : 0 > id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> > index : -1,-1,-1,-1,-1,-1,-1,-1 > model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> > position_fix : 0,0,0,0,0,0,0,0 > power_save : 0 > power_save_controller : Y > probe_mask : -1,-1,-1,-1,-1,-1,-1,-1 > single_cmd : N > > !!Module: snd_usb_audio > async_unlink : Y > device_setup : 0,0,0,0,0,0,0,0 > enable : Y,Y,Y,Y,Y,Y,Y,Y > id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> > index : -2,-1,-1,-1,-1,-1,-1,-1 > nrpacks : 8 > pid : -1,-1,-1,-1,-1,-1,-1,-1 > vid : -1,-1,-1,-1,-1,-1,-1,-1 > > !!Module: snd_hda_intel > enable : Y,Y,Y,Y,Y,Y,Y,Y > enable_msi : 0 > id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> > index : -1,-1,-1,-1,-1,-1,-1,-1 > model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> > position_fix : 0,0,0,0,0,0,0,0 > power_save : 0 > power_save_controller : Y > probe_mask : -1,-1,-1,-1,-1,-1,-1,-1 > single_cmd : N > > > !!HDA-Intel Codec information > !!--------------------------- > --startcollapse-- > > Codec: Realtek ALC883 > Address: 0 > Vendor Id: 0x10ec0883 > Subsystem Id: 0x1043829f > Revision Id: 0x100002 > No Modem Function Group found > Default PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Default Amp-In caps: N/A > Default Amp-Out caps: N/A > GPIO: io=2, o=0, i=0, unsolicited=1, wake=0 > IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0 > IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0 > Node 0x02 [Audio Output] wcaps 0x11: Stereo > Converter: stream=0, channel=0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Node 0x03 [Audio Output] wcaps 0x11: Stereo > Converter: stream=0, channel=0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Node 0x04 [Audio Output] wcaps 0x11: Stereo > Converter: stream=0, channel=0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Node 0x05 [Audio Output] wcaps 0x11: Stereo > Converter: stream=0, channel=0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital > Converter: stream=0, channel=0 > Digital: Enabled GenLevel > Digital category: 0x1 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0x1e]: 16 20 24 32 > formats [0x1]: PCM > Node 0x07 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x08 [Audio Input] wcaps 0x10011b: Stereo Amp-In > Amp-In caps: ofs=0x08, nsteps=0x1f, stepsize=0x05, mute=1 > Amp-In vals: [0x00 0x00] > Converter: stream=0, channel=0 > SDI-Select: 0 > PCM: > rates [0x160]: 44100 48000 96000 > bits [0x6]: 16 20 > formats [0x1]: PCM > Connection: 1 > 0x23 > Node 0x09 [Audio Input] wcaps 0x10011b: Stereo Amp-In > Amp-In caps: ofs=0x08, nsteps=0x1f, stepsize=0x05, mute=1 > Amp-In vals: [0x80 0x80] > Converter: stream=0, channel=0 > SDI-Select: 0 > PCM: > rates [0x160]: 44100 48000 96000 > bits [0x6]: 16 20 > formats [0x1]: PCM > Connection: 1 > 0x22 > Node 0x0a [Audio Input] wcaps 0x100391: Stereo Digital > Converter: stream=0, channel=0 > SDI-Select: 0 > Digital: > Digital category: 0x0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0x1e]: 16 20 24 32 > formats [0x1]: PCM > Unsolicited: tag=00, enabled=0 > Connection: 1 > 0x1f > Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In > Amp-In caps: ofs=0x17, nsteps=0x1f, stepsize=0x05, mute=1 > Amp-In vals: [0x0c 0x0c] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 > 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] > Connection: 10 > 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 > Node 0x0c [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 > Amp-Out vals: [0x1f 0x1f] > Connection: 2 > 0x02 0x0b > Node 0x0d [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x80 0x80] [0x80 0x80] > Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 > Amp-Out vals: [0x00 0x00] > Connection: 2 > 0x03 0x0b > Node 0x0e [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x80 0x80] [0x80 0x80] > Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 > Amp-Out vals: [0x00 0x00] > Connection: 2 > 0x04 0x0b > Node 0x0f [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x80 0x80] [0x80 0x80] > Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 > Amp-Out vals: [0x00 0x00] > Connection: 2 > 0x05 0x0b > Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x12 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x13 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x14 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x083e: IN OUT HP Detect Trigger > Pin Default 0x01014010: [Jack] Line Out at Ext Rear > Conn = 1/8, Color = Green > DefAssociation = 0x1, Sequence = 0x0 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c* 0x0d 0x0e 0x0f 0x26 > Node 0x15 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x083e: IN OUT HP Detect Trigger > Pin Default 0x01011012: [Jack] Line Out at Ext Rear > Conn = 1/8, Color = Black > DefAssociation = 0x1, Sequence = 0x2 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c 0x0d* 0x0e 0x0f 0x26 > Node 0x16 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x083e: IN OUT HP Detect Trigger > Pin Default 0x01016011: [Jack] Line Out at Ext Rear > Conn = 1/8, Color = Orange > DefAssociation = 0x1, Sequence = 0x1 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c 0x0d 0x0e* 0x0f 0x26 > Node 0x17 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x083e: IN OUT HP Detect Trigger > Pin Default 0x01012014: [Jack] Line Out at Ext Rear > Conn = 1/8, Color = Grey > DefAssociation = 0x1, Sequence = 0x4 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c 0x0d 0x0e 0x0f* 0x26 > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x03 0x03] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x80 0x80] > Pincap 0x08173e: IN OUT HP Detect Trigger > Vref caps: HIZ 50 GRD 80 > Pin Default 0x01a19840: [Jack] Mic at Ext Rear > Conn = 1/8, Color = Pink > DefAssociation = 0x4, Sequence = 0x0 > Pin-ctls: 0x24: IN VREF_80 > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c* 0x0d 0x0e 0x0f 0x26 > Node 0x19 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x80 0x80] > Pincap 0x08173e: IN OUT HP Detect Trigger > Vref caps: HIZ 50 GRD 80 > Pin Default 0x02a19c50: [Jack] Mic at Ext Front > Conn = 1/8, Color = Pink > DefAssociation = 0x5, Sequence = 0x0 > Pin-ctls: 0x24: IN VREF_80 > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c* 0x0d 0x0e 0x0f 0x26 > Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x80 0x80] > Pincap 0x08173e: IN OUT HP Detect Trigger > Vref caps: HIZ 50 GRD 80 > Pin Default 0x0181304f: [Jack] Line In at Ext Rear > Conn = 1/8, Color = Blue > DefAssociation = 0x4, Sequence = 0xf > Pin-ctls: 0x20: IN VREF_HIZ > Unsolicited: tag=00, enabled=0 > Connection: 5 > 0x0c* 0x0d 0x0e 0x0f 0x26 > Node 0x1b [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x08173e: IN OUT HP Detect Trigger > Vref caps: HIZ 50 GRD 80 > Pin Default 0x02214c20: [Jack] HP Out at Ext Front > Conn = 1/8, Color = Green > DefAssociation = 0x2, Sequence = 0x0 > Pin-ctls: 0xc0: OUT HP VREF_HIZ > Unsolicited: tag=04, enabled=1 > Connection: 5 > 0x0c* 0x0d 0x0e 0x0f 0x26 > Node 0x1c [Pin Complex] wcaps 0x400001: Stereo > Pincap 0x0820: IN > Pin Default 0x593301f0: [N/A] CD at Int ATAPI > Conn = ATAPI, Color = Unknown > DefAssociation = 0xf, Sequence = 0x0 > Misc = NO_PRESENCE > Pin-ctls: 0x00: > Node 0x1d [Pin Complex] wcaps 0x400000: Mono > Pincap 0x0820: IN > Pin Default 0x4005e601: [N/A] Line Out at Ext N/A > Conn = Optical, Color = White > DefAssociation = 0x0, Sequence = 0x1 > Pin-ctls: 0x00: > Node 0x1e [Pin Complex] wcaps 0x400300: Mono Digital > Pincap 0x0810: OUT > Pin Default 0x01441130: [Jack] SPDIF Out at Ext Rear > Conn = RCA, Color = Black > DefAssociation = 0x3, Sequence = 0x0 > Misc = NO_PRESENCE > Pin-ctls: 0x00: > Connection: 1 > 0x06 > Node 0x1f [Pin Complex] wcaps 0x400200: Mono Digital > Pincap 0x0820: IN > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear > Conn = 1/8, Color = Black > DefAssociation = 0xf, Sequence = 0x0 > Misc = NO_PRESENCE > Pin-ctls: 0x00: > Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono > Processing caps: benign=0, ncoeff=17 > Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x22 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x80 0x80] [0x00 > 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] > [0x80 0x80] > Amp-Out caps: N/A > Amp-Out vals: [0x00 0x00] > Connection: 11 > 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b > Node 0x23 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x80 0x80] [0x00 > 0x00] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] > [0x80 0x80] > Amp-Out caps: N/A > Amp-Out vals: [0x00 0x00] > Connection: 11 > 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15 0x16 0x17 0x0b > Node 0x24 [Vendor Defined Widget] wcaps 0xf00000: Mono > Node 0x25 [Audio Output] wcaps 0x11: Stereo > Converter: stream=0, channel=0 > PCM: > rates [0x560]: 44100 48000 96000 192000 > bits [0xe]: 16 20 24 > formats [0x1]: PCM > Node 0x26 [Audio Mixer] wcaps 0x20010f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-In vals: [0x00 0x00] [0x00 0x00] > Amp-Out caps: ofs=0x1f, nsteps=0x1f, stepsize=0x05, mute=0 > Amp-Out vals: [0x00 0x00] > Connection: 2 > 0x25 0x0b > Codec: Generic 1095 SI HDMI > Address: 1 > Vendor Id: 0x10951392 > Subsystem Id: 0xffffffff > Revision Id: 0x100000 > No Modem Function Group found > Default PCM: > rates [0x0]: > bits [0x0]: > formats [0x0]: > Default Amp-In caps: N/A > Default Amp-Out caps: N/A > GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 > Node 0x02 [Audio Output] wcaps 0x6211: Stereo Digital > Converter: stream=0, channel=0 > Digital: > Digital category: 0x0 > PCM: > rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 > bits [0x1e]: 16 20 24 32 > formats [0x5]: PCM AC3 > Node 0x03 [Pin Complex] wcaps 0x40738d: Stereo Digital Amp-Out > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 > Amp-Out vals: [0x00 0x00] > Pincap 0x0894: OUT Detect R/L > Pin Default 0x18560010: [Jack] Digital Out at Int HDMI > Conn = Digital, Color = Unknown > DefAssociation = 0x1, Sequence = 0x0 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 1 > 0x02 > Codec: Generic 1002 ATI R6xx HDMI > Address: 0 > Vendor Id: 0x1002aa01 > Subsystem Id: 0xaa0100 > Revision Id: 0x100000 > No Modem Function Group found > Default PCM: > rates [0x40]: 48000 > bits [0x2]: 16 > formats [0x1]: PCM > Default Amp-In caps: N/A > Default Amp-Out caps: N/A > GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 > Node 0x02 [Audio Output] wcaps 0x201: Stereo Digital > Converter: stream=0, channel=0 > Digital: > Digital category: 0x0 > Node 0x03 [Pin Complex] wcaps 0x400381: Stereo Digital > Pincap 0x0894: OUT Detect R/L > Pin Default 0x18560010: [Jack] Digital Out at Int HDMI > Conn = Digital, Color = Unknown > DefAssociation = 0x1, Sequence = 0x0 > Pin-ctls: 0x40: OUT > Unsolicited: tag=00, enabled=0 > Connection: 1 > 0x02 > --endcollapse-- > > > !!ALSA Device nodes > !!----------------- > > crw-rw----+ 1 root audio 116, 0 2008-06-11 17:36 /dev/snd/controlC0 > crw-rw----+ 1 root audio 116, 32 2008-06-11 17:36 /dev/snd/controlC1 > crw-rw----+ 1 root audio 116, 64 2008-06-11 17:36 /dev/snd/controlC2 > crw-rw----+ 1 root audio 116, 4 2008-06-11 17:36 /dev/snd/hwC0D0 > crw-rw----+ 1 root audio 116, 5 2008-06-11 17:36 /dev/snd/hwC0D1 > crw-rw----+ 1 root audio 116, 68 2008-06-11 17:36 /dev/snd/hwC2D0 > crw-rw----+ 1 root audio 116, 24 2008-06-11 17:55 /dev/snd/pcmC0D0c > crw-rw----+ 1 root audio 116, 16 2008-06-11 18:02 /dev/snd/pcmC0D0p > crw-rw----+ 1 root audio 116, 17 2008-06-11 17:36 /dev/snd/pcmC0D1p > crw-rw----+ 1 root audio 116, 26 2008-06-11 17:36 /dev/snd/pcmC0D2c > crw-rw----+ 1 root audio 116, 19 2008-06-11 17:36 /dev/snd/pcmC0D3p > crw-rw----+ 1 root audio 116, 56 2008-06-11 17:55 /dev/snd/pcmC1D0c > crw-rw----+ 1 root audio 116, 83 2008-06-11 17:36 /dev/snd/pcmC2D3p > crw-rw----+ 1 root audio 116, 1 2008-06-11 17:36 /dev/snd/seq > crw-rw----+ 1 root audio 116, 33 2008-06-11 17:36 /dev/snd/timer > > > !!Aplay/Arecord output > !!------------ > > APLAY > > **** List of PLAYBACK Hardware Devices **** > card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 0: Intel [HDA Intel], device 1: ALC883 Digital [ALC883 Digital] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 0: Intel [HDA Intel], device 3: ATI HDMI [ATI HDMI] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 2: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > > ARECORD > > **** List of CAPTURE Hardware Devices **** > card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 0: Intel [HDA Intel], device 2: ALC883 Analog [ALC883 Analog] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > card 1: U0x46d0x990 [USB Device 0x46d:0x990], device 0: USB Audio [USB Audio] > Subdevices: 1/1 > Subdevice #0: subdevice #0 > > !!Amixer output > !!------------- > > !!-------Mixer controls for card 0 [Intel] > > Simple mixer control 'Master',0 > Capabilities: pvolume pvolume-joined pswitch pswitch-joined > Playback channels: Mono > Limits: Playback 0 - 31 > Mono: Playback 31 [100%] [0.00dB] [on] > Simple mixer control 'Headphone',0 > Capabilities: pswitch > Playback channels: Front Left - Front Right > Mono: > Front Left: Playback [on] > Front Right: Playback [on] > Simple mixer control 'PCM',0 > Capabilities: pvolume > Playback channels: Front Left - Front Right > Limits: Playback 0 - 255 > Mono: > Front Left: Playback 255 [100%] [0.00dB] > Front Right: Playback 255 [100%] [0.00dB] > Simple mixer control 'Front',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 31 [100%] [0.00dB] [on] > Front Right: Playback 31 [100%] [0.00dB] [on] > Simple mixer control 'Front Mic',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 0 [0%] [-34.50dB] [off] > Front Right: Playback 0 [0%] [-34.50dB] [off] > Simple mixer control 'Front Mic Boost',0 > Capabilities: volume > Playback channels: Front Left - Front Right > Capture channels: Front Left - Front Right > Limits: 0 - 3 > Front Left: 0 [0%] > Front Right: 0 [0%] > Simple mixer control 'Surround',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 0 [0%] [-46.50dB] [off] > Front Right: Playback 0 [0%] [-46.50dB] [off] > Simple mixer control 'Center',0 > Capabilities: pvolume pvolume-joined pswitch pswitch-joined > Playback channels: Mono > Limits: Playback 0 - 31 > Mono: Playback 0 [0%] [-46.50dB] [off] > Simple mixer control 'LFE',0 > Capabilities: pvolume pvolume-joined pswitch pswitch-joined > Playback channels: Mono > Limits: Playback 0 - 31 > Mono: Playback 0 [0%] [-46.50dB] [off] > Simple mixer control 'Side',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 0 [0%] [-46.50dB] [off] > Front Right: Playback 0 [0%] [-46.50dB] [off] > Simple mixer control 'Line',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 0 [0%] [-34.50dB] [off] > Front Right: Playback 0 [0%] [-34.50dB] [off] > Simple mixer control 'Mic',0 > Capabilities: pvolume pswitch > Playback channels: Front Left - Front Right > Limits: Playback 0 - 31 > Mono: > Front Left: Playback 12 [39%] [-16.50dB] [on] > Front Right: Playback 12 [39%] [-16.50dB] [on] > Simple mixer control 'Mic Boost',0 > Capabilities: volume > Playback channels: Front Left - Front Right > Capture channels: Front Left - Front Right > Limits: 0 - 3 > Front Left: 3 [100%] > Front Right: 3 [100%] > Simple mixer control 'IEC958',0 > Capabilities: pswitch pswitch-joined > Playback channels: Mono > Mono: Playback [on] > Simple mixer control 'IEC958',1 > Capabilities: pswitch pswitch-joined > Playback channels: Mono > Mono: Playback [off] > Simple mixer control 'Capture',0 > Capabilities: cvolume cswitch > Capture channels: Front Left - Front Right > Limits: Capture 0 - 31 > Front Left: Capture 0 [0%] [-12.00dB] [on] > Front Right: Capture 0 [0%] [-12.00dB] [on] > Simple mixer control 'Capture',1 > Capabilities: cvolume cswitch > Capture channels: Front Left - Front Right > Limits: Capture 0 - 31 > Front Left: Capture 0 [0%] [-12.00dB] [off] > Front Right: Capture 0 [0%] [-12.00dB] [off] > Simple mixer control 'Digital',0 > Capabilities: cvolume > Capture channels: Front Left - Front Right > Limits: Capture 0 - 120 > Front Left: Capture 0 [0%] [-30.00dB] > Front Right: Capture 0 [0%] [-30.00dB] > Simple mixer control 'Input Source',0 > Capabilities: cenum > Items: 'Mic' 'Front Mic' 'Line' > Item0: 'Mic' > Simple mixer control 'Input Source',1 > Capabilities: cenum > Items: 'Mic' 'Front Mic' 'Line' > Item0: 'Mic' > > !!-------Mixer controls for card 1 [U0x46d0x990] > > Simple mixer control 'Mic',0 > Capabilities: cvolume cswitch cswitch-joined > Capture channels: Mono > Limits: Capture 0 - 3072 > Mono: Capture 0 [0%] [18.00dB] [off] > > !!-------Mixer controls for card 2 [HDMI] > > Simple mixer control 'IEC958',0 > Capabilities: pswitch pswitch-joined > Playback channels: Mono > Mono: Playback [off] > > > !!Alsactl output > !!------------- > > --startcollapse-- > state.Intel { > control.1 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Front Playback Volume' > value.0 31 > value.1 31 > } > control.2 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Front Playback Switch' > value.0 true > value.1 true > } > control.3 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Surround Playback Volume' > value.0 0 > value.1 0 > } > control.4 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Surround Playback Switch' > value.0 false > value.1 false > } > control.5 { > comment.access 'read write' > comment.type INTEGER > comment.count 1 > comment.range '0 - 31' > iface MIXER > name 'Center Playback Volume' > value 0 > } > control.6 { > comment.access 'read write' > comment.type INTEGER > comment.count 1 > comment.range '0 - 31' > iface MIXER > name 'LFE Playback Volume' > value 0 > } > control.7 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'Center Playback Switch' > value false > } > control.8 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'LFE Playback Switch' > value false > } > control.9 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Side Playback Volume' > value.0 0 > value.1 0 > } > control.10 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Side Playback Switch' > value.0 false > value.1 false > } > control.11 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Headphone Playback Switch' > value.0 true > value.1 true > } > control.12 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Mic Playback Volume' > value.0 12 > value.1 12 > } > control.13 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Mic Playback Switch' > value.0 true > value.1 true > } > control.14 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Front Mic Playback Volume' > value.0 0 > value.1 0 > } > control.15 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Front Mic Playback Switch' > value.0 false > value.1 false > } > control.16 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Line Playback Volume' > value.0 0 > value.1 0 > } > control.17 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Line Playback Switch' > value.0 false > value.1 false > } > control.18 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 3' > iface MIXER > name 'Mic Boost' > value.0 3 > value.1 3 > } > control.19 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 3' > iface MIXER > name 'Front Mic Boost' > value.0 0 > value.1 0 > } > control.20 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Capture Volume' > value.0 0 > value.1 0 > } > control.21 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Capture Switch' > value.0 true > value.1 true > } > control.22 { > comment.access 'read write' > comment.type INTEGER > comment.count 2 > comment.range '0 - 31' > iface MIXER > name 'Capture Volume' > index 1 > value.0 0 > value.1 0 > } > control.23 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 2 > iface MIXER > name 'Capture Switch' > index 1 > value.0 false > value.1 false > } > control.24 { > comment.access 'read write' > comment.type ENUMERATED > comment.count 1 > comment.item.0 Mic > comment.item.1 'Front Mic' > comment.item.2 Line > iface MIXER > name 'Input Source' > value Mic > } > control.25 { > comment.access 'read write' > comment.type ENUMERATED > comment.count 1 > comment.item.0 Mic > comment.item.1 'Front Mic' > comment.item.2 Line > iface MIXER > name 'Input Source' > index 1 > value Mic > } > control.26 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Con Mask' > value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.27 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Pro Mask' > value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.28 { > comment.access 'read write' > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Default' > value '0482000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.29 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'IEC958 Playback Switch' > value true > } > control.30 { > comment.access 'read write' > comment.type INTEGER > comment.count 1 > comment.range '0 - 31' > iface MIXER > name 'Master Playback Volume' > value 31 > } > control.31 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'Master Playback Switch' > value true > } > control.32 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Con Mask' > index 1 > value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.33 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Pro Mask' > index 1 > value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.34 { > comment.access 'read write' > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Default' > index 1 > value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.35 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'IEC958 Playback Switch' > index 1 > value false > } > control.36 { > comment.access 'read write user' > comment.type INTEGER > comment.count 2 > comment.range '0 - 255' > comment.tlv '0000000100000008ffffec1400000014' > iface MIXER > name 'PCM Playback Volume' > value.0 255 > value.1 255 > } > control.37 { > comment.access 'read write user' > comment.type INTEGER > comment.count 2 > comment.range '0 - 120' > comment.tlv '0000000100000008fffff44800000032' > iface MIXER > name 'Digital Capture Volume' > value.0 0 > value.1 0 > } > } > state.U0x46d0x990 { > control.1 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'Mic Capture Switch' > value false > } > control.2 { > comment.access 'read write' > comment.type INTEGER > comment.count 1 > comment.range '0 - 3072' > iface MIXER > name 'Mic Capture Volume' > value 0 > } > } > state.HDMI { > control.1 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Con Mask' > value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.2 { > comment.access read > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Pro Mask' > value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.3 { > comment.access 'read write' > comment.type IEC958 > comment.count 1 > iface MIXER > name 'IEC958 Playback Default' > value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' > } > control.4 { > comment.access 'read write' > comment.type BOOLEAN > comment.count 1 > iface MIXER > name 'IEC958 Playback Switch' > value false > } > } > --endcollapse-- > > > !!All Loaded Modules > !!------------------ > > Module > ppdev > ipv6 > acpi_cpufreq > cpufreq_userspace > cpufreq_stats > cpufreq_powersave > cpufreq_ondemand > freq_table > cpufreq_conservative > video > output > sbs > sbshc > container > dock > battery > microcode > nfs > lockd > nfs_acl > sunrpc > iptable_filter > ip_tables > x_tables > ext3 > jbd > mbcache > af_packet > ac > parport_pc > lp > parport > snd_usb_audio > snd_usb_lib > uvcvideo > snd_hda_intel > compat_ioctl32 > psmouse > snd_seq_dummy > videodev > v4l1_compat > v4l2_common > snd_seq_oss > snd_seq_midi > serio_raw > snd_rawmidi > snd_pcm_oss > snd_mixer_oss > fglrx > atl1 > mii > snd_seq_midi_event > snd_pcm > snd_seq > snd_seq_device > snd_timer > snd_page_alloc > snd_hwdep > intel_agp > iTCO_wdt > iTCO_vendor_support > snd > button > evdev > soundcore > shpchp > pci_hotplug > usbhid > hid > xfs > sg > sr_mod > cdrom > sd_mod > ahci > libata > scsi_mod > ehci_hcd > uhci_hcd > usbcore > thermal > processor > fan > fbcon > tileblit > font > bitblit > softcursor > fuse > -- > Daniel J Blueman > -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-11 21:37 ` Daniel J Blueman @ 2008-06-12 10:45 ` Takashi Iwai 0 siblings, 0 replies; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 10:45 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Linux Kernel At Wed, 11 Jun 2008 22:37:49 +0100, Daniel J Blueman wrote: > > On Wed, Jun 11, 2008 at 8:00 PM, Daniel J Blueman > <daniel.blueman@gmail.com> wrote: > > On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: > >> At Mon, 9 Jun 2008 20:59:00 +0100, > >> Daniel J Blueman wrote: > >>> > >>> Hi Takashi-san, > >>> > >>> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 > >>> LTS x86-64). I can see on Audacity that the DC offset that varies with > >>> the recording capture level. > >> > >> Could you elaborate? The mic bias level could be changed via the pin > >> control value. Usually, it's set as VREF 80%. > > > > When the recording->capture level is set to 0, the mic has no DC > > offset as expected. Maxing the recording->capture level, the mic input > > is saturated, in between, we see a linear connection. > > > >>> Plus, the mixer playback->mic-boost > >>> muting enables/disables mic-boost in recording. > >> > >> This is a known bug in alsa-lib mixer abstraction. No kernel issue. > > > >>> It feels like the ALC883 pins aren't configured quite right. The mobo > >>> is an Asus P5E-VM with current BIOS [1] > >>> > >>> What's the routine to debug this? Would it help to install windows, > >>> dump the register space and compare? > >> > >> You can find *.INI file that contains the default pin configuration > >> in Windows. This might be useful in the case BIOS is broken but > >> Windows does a black magic. > > > > That'll be these defaults stashed in the INF file [2]. Let me know if > > it's not what you expected and I'll publish the complete INF file. > > > >> Anyway, please run alsa-info.sh with --no-upload option and show the > >> generated file here. It contains the codec information and mixer > >> setup. > >> http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh > > > > See [3]. > > >> Also, you can adjust the pin setting on the fly via hda-verb utility > >> below: > >> http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 > >> > >> Don't forget to build snd-hda-intel module with > >> CONFIG_SND_HDA_HWDEP=y to use this command. > > > > I'll give this a shot if I get time. > > Looking at the datasheet and ALSA report, changing the front mic node > id also affects capturing from the (rear) mic input. Depends on the hardware implementation. But, usually, no, different pin widgets are assigned for front and mic jacks. > ftp://66.104.77.130/pc/audio/ALC883_DataSheet_1.3.pdf > > We get the "hda_codec: Unknown model for ALC883, trying auto-probe > from BIOS..." kernel message, so we may need to tweak > pci/hda/patch_realtek.c. Note that this is no error but information. The driver has preset models for known devices and use the static configuration table for such devices. For other devices, the driver just relies on BIOS setup. > Also, I can reproduce the problem the with HD > and legacy front-panel audio settings in the BIOS. Do you know a way > to dump eg the pin configuration in windows or other useful state, so > I can compare with all the possible node ID configuration values? Sorry, no, I've not booted Windows over years :) Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-11 19:00 ` Daniel J Blueman 2008-06-11 21:37 ` Daniel J Blueman @ 2008-06-12 10:49 ` Takashi Iwai 2008-06-12 13:03 ` Vegard Nossum ` (2 more replies) 1 sibling, 3 replies; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 10:49 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Linux Kernel At Wed, 11 Jun 2008 20:00:17 +0100, Daniel J Blueman wrote: > > On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: > > At Mon, 9 Jun 2008 20:59:00 +0100, > > Daniel J Blueman wrote: > >> > >> Hi Takashi-san, > >> > >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 > >> LTS x86-64). I can see on Audacity that the DC offset that varies with > >> the recording capture level. > > > > Could you elaborate? The mic bias level could be changed via the pin > > control value. Usually, it's set as VREF 80%. > > When the recording->capture level is set to 0, the mic has no DC > offset as expected. Maxing the recording->capture level, the mic input > is saturated, in between, we see a linear connection. > > >> Plus, the mixer playback->mic-boost > >> muting enables/disables mic-boost in recording. > > > > This is a known bug in alsa-lib mixer abstraction. No kernel issue. > > >> It feels like the ALC883 pins aren't configured quite right. The mobo > >> is an Asus P5E-VM with current BIOS [1] > >> > >> What's the routine to debug this? Would it help to install windows, > >> dump the register space and compare? > > > > You can find *.INI file that contains the default pin configuration > > in Windows. This might be useful in the case BIOS is broken but > > Windows does a black magic. > > That'll be these defaults stashed in the INF file [2]. Let me know if > it's not what you expected and I'll publish the complete INF file. > > > Anyway, please run alsa-info.sh with --no-upload option and show the > > generated file here. It contains the codec information and mixer > > setup. > > http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh > > See [3]. > > > Also, you can adjust the pin setting on the fly via hda-verb utility > > below: > > http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 > > > > Don't forget to build snd-hda-intel module with > > CONFIG_SND_HDA_HWDEP=y to use this command. > > I'll give this a shot if I get time. You can try to adjust VREF value of mic pins. For example, the node 0x18 and 0x19 correspond to the rear and front mics, respectively. Then run the following as root: # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 which will change the widget 0x18 (rear mic) to input-VREF 50% (0x21). The original value is input-VREF 80% (0x24). Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 10:49 ` Takashi Iwai @ 2008-06-12 13:03 ` Vegard Nossum 2008-06-12 13:12 ` Takashi Iwai 2008-06-12 21:50 ` Daniel J Blueman 2008-06-28 0:05 ` Daniel J Blueman 2 siblings, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 13:03 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel Hi, On Thu, Jun 12, 2008 at 12:49 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Wed, 11 Jun 2008 20:00:17 +0100, > Daniel J Blueman wrote: >> >> On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Mon, 9 Jun 2008 20:59:00 +0100, >> > Daniel J Blueman wrote: >> >> >> >> Hi Takashi-san, >> >> >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >> >> LTS x86-64). I can see on Audacity that the DC offset that varies with >> >> the recording capture level. >> > >> > Could you elaborate? The mic bias level could be changed via the pin >> > control value. Usually, it's set as VREF 80%. >> >> When the recording->capture level is set to 0, the mic has no DC >> offset as expected. Maxing the recording->capture level, the mic input >> is saturated, in between, we see a linear connection. I find that a good way to examine the captured PCM is the following command: $ arecord | od -t x1z -v With the "Capture" and "Digital" controls both at 0 in alsamixer, this outputs just a constant 0x80 byte. This seems natural. With "Digital" at 0, changing "Capture" has no effect. However, with "Capture" at 0 and these values for "Digital": db gain -30 byte read 0x80 db gain -28 byte read 0x81 db gain -26 byte read 0x82 db gain -22 byte read 0x83 db gain -19 byte read 0x84 db gain -17 byte read 0x85 db gain -15 byte read 0x86 db gain -13 byte read 0x87 db gain -12 byte read 0x88 db gain -11 byte read 0x89 db gain -10 byte read 0x8a db gain -9 byte read 0x8b db gain -8 byte read 0x8d <-- up two here db gain -7 byte read 0x8e db gain -6 byte read 0x90 db gain -5 byte read 0x92 db gain -4 byte read 0x94 db gain -3 byte read 0x97 ... db gain 12 byte read 0xff db gain 13 (and up) byte read 0x00 <-- seems to flip over or get capped If I now change "Capture" to have dB gain 0 (35% in alsamixer), I get this instead (for different values of "Digital"): db gain -30 byte read 0x80 db gain -29 byte read 0x85 ... db gain -18 byte read 0x90 ... db gain -12 byte read 0xa0 ... db gain -6 byte read 0xc0 ... db gain -1 byte read 0xf2 So in fact, if both controls are at dB gain 0 (or one of them is higher), the only byte I can read is 0x00. > You can try to adjust VREF value of mic pins. > For example, the node 0x18 and 0x19 correspond to the rear and front > mics, respectively. Then run the following as root: > > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 > > which will change the widget 0x18 (rear mic) to input-VREF 50% > (0x21). The original value is input-VREF 80% (0x24). I tried to do this for my card. For me, I need the 0x19 widget, which is the internal mic: Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x083724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x99a30941: [Fixed] Mic at Int ATAPI Conn = ATAPI, Color = Unknown DefAssociation = 0x4, Sequence = 0x1 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 And I tried various values for the PinCtl. 0x20, 0x21, and 0x22, (0x24 was the default), but with no change in the input byte stream AT ALL! And I double-checked, my input source is set to "Internal Mic". (Just to be 100% sure, I tried all three input sources, but it was the same for all. So no change in the input at all.) Do you have any more tips that I can try out? Also, I am just curious, is it possible to break the microphone (or other physical components) by changing the voltage levels to unsupported values, or is it safe to experiment freely? I read this in the HDA specification: "The VRefEn field encoding selects one of the possible states for the VRef signal(s). If the value written to this control does not correspond to a supported value as defined in the Pin Capabilities parameter, the control must either retain the previous value or take the value of 000, which will put the control in a Hi-Z state and prevent damage to any attached components." Thanks! Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:03 ` Vegard Nossum @ 2008-06-12 13:12 ` Takashi Iwai 2008-06-12 13:48 ` Vegard Nossum 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 13:12 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 15:03:16 +0200, Vegard Nossum wrote: > > Hi, > > On Thu, Jun 12, 2008 at 12:49 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Wed, 11 Jun 2008 20:00:17 +0100, > > Daniel J Blueman wrote: > >> > >> On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: > >> > At Mon, 9 Jun 2008 20:59:00 +0100, > >> > Daniel J Blueman wrote: > >> >> > >> >> Hi Takashi-san, > >> >> > >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 > >> >> LTS x86-64). I can see on Audacity that the DC offset that varies with > >> >> the recording capture level. > >> > > >> > Could you elaborate? The mic bias level could be changed via the pin > >> > control value. Usually, it's set as VREF 80%. > >> > >> When the recording->capture level is set to 0, the mic has no DC > >> offset as expected. Maxing the recording->capture level, the mic input > >> is saturated, in between, we see a linear connection. > > I find that a good way to examine the captured PCM is the following command: > > $ arecord | od -t x1z -v > > With the "Capture" and "Digital" controls both at 0 in alsamixer, this > outputs just a constant 0x80 byte. This seems natural. The "Digital Capture Volume" is the software attenuation/gain in alsa-lib. Keep it in the middle corresponding to 0dB. Otherwise you change the data digitally by the software. This control exists for some devices that have only digital mics and no hardware analog volume controls. "Capture Volume" is the hardware recording level. > > You can try to adjust VREF value of mic pins. > > For example, the node 0x18 and 0x19 correspond to the rear and front > > mics, respectively. Then run the following as root: > > > > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 > > > > which will change the widget 0x18 (rear mic) to input-VREF 50% > > (0x21). The original value is input-VREF 80% (0x24). > > I tried to do this for my card. For me, I need the 0x19 widget, which > is the internal mic: Did you try the external mic, too? > Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > Amp-In vals: [0x00 0x00] > Pincap 0x083724: IN Detect > Vref caps: HIZ 50 GRD 80 100 > Pin Default 0x99a30941: [Fixed] Mic at Int ATAPI > Conn = ATAPI, Color = Unknown > DefAssociation = 0x4, Sequence = 0x1 > Misc = NO_PRESENCE > Pin-ctls: 0x24: IN VREF_80 > Unsolicited: tag=00, enabled=0 > > And I tried various values for the PinCtl. 0x20, 0x21, and 0x22, (0x24 > was the default), but with no change in the input byte stream AT ALL! > And I double-checked, my input source is set to "Internal Mic". (Just > to be 100% sure, I tried all three input sources, but it was the same > for all. So no change in the input at all.) > > Do you have any more tips that I can try out? Did you get ANY input from the internal mic? If no, the pin mapping might be wrong. That is, 0x19 isn't the internal mic. > Also, I am just curious, is it possible to break the microphone (or > other physical components) by changing the voltage levels to > unsupported values, or is it safe to experiment freely? I read this in > the HDA specification: > > "The VRefEn field encoding selects one of the possible states for the > VRef signal(s). If the value written to this control does not > correspond to a supported value as defined in the Pin Capabilities > parameter, the control must either retain the previous value or take > the value of 000, which will put the control in a Hi-Z state and > prevent damage to any attached components." There is no safe thing as long as you work as root :) But, I've not heard any report that the wrong pin (at least VREF) broke the whole circuit, though. Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:12 ` Takashi Iwai @ 2008-06-12 13:48 ` Vegard Nossum 2008-06-12 13:52 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 13:48 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 3:12 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Thu, 12 Jun 2008 15:03:16 +0200, Vegard Nossum wrote: >> With the "Capture" and "Digital" controls both at 0 in alsamixer, this >> outputs just a constant 0x80 byte. This seems natural. > > The "Digital Capture Volume" is the software attenuation/gain in > alsa-lib. Keep it in the middle corresponding to 0dB. Otherwise you > change the data digitally by the software. This control exists for > some devices that have only digital mics and no hardware analog > volume controls. > > "Capture Volume" is the hardware recording level. > Thanks. I have Digital set to 0 dB now, and I am using only the Capture control. > >> > You can try to adjust VREF value of mic pins. >> > For example, the node 0x18 and 0x19 correspond to the rear and front >> > mics, respectively. Then run the following as root: >> > >> > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 >> > >> > which will change the widget 0x18 (rear mic) to input-VREF 50% >> > (0x21). The original value is input-VREF 80% (0x24). >> >> I tried to do this for my card. For me, I need the 0x19 widget, which >> is the internal mic: > > Did you try the external mic, too? > Now I've tried the external mic, with only VERY limited success (see below). > Did you get ANY input from the internal mic? If no, the pin mapping > might be wrong. That is, 0x19 isn't the internal mic. The external mic: Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x083734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x02a19840: [Jack] Mic at Ext Front Conn = 1/8, Color = Pink DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 So what I have done is this: In alsamixer, Capture is set to 21 dB gain (Digital at 0 dB). This will read mostly 0xa9 with alsarecord. If I try to sing a tone, this value can change briefly between 0xa9 and 0xaa for as long as I sing, such as this: 0631340 a9 a9 a9 a9 a9 a9 a9 a9 a9 aa a9 aa aa aa aa aa >................< 0631360 aa aa aa aa aa aa aa aa aa a9 a9 a9 a9 a9 a9 a9 >................< ...otherwise, it is at a constant 0xa9. However, something interesting here happens when I change the voltage level while recording. It seems that there is a short fluctuation (it lasts only a fraction of a second) where the values change...: If I change the PinCtl from 0x24 to 0x21, it seems that the data values will change in this order (with many repetitions of each value): ... 0xa9 0xb2 0xb1 0xb0 0xaf 0xae 0xad 0xac 0xab 0xaa 0xa9 ... and then it is back at the constant 0xa9 value. If I change the PinCtl from 0x21 to 0x24, the values will change in this order ... 0xa9 0xa0 0xa1 0xa2 0xa3 0xa4 0xa5 0xa6 0xa7 0xa8 0xa9 ... So this seems to be the only difference between the internal and external mic. I am no expert in this, but I guess the voltage change will simply raise/lower the membrane of the microphone and the change will be reflected in the values read back...? But this at least assures me that the external mic pin configuration is correct. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:48 ` Vegard Nossum @ 2008-06-12 13:52 ` Takashi Iwai 2008-06-12 13:55 ` Vegard Nossum 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 13:52 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 15:48:32 +0200, Vegard Nossum wrote: > > The external mic: > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > Amp-In vals: [0x00 0x00] The input volume is zero. Try to raise "Mic Boost" (if present)? Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:52 ` Takashi Iwai @ 2008-06-12 13:55 ` Vegard Nossum 2008-06-12 14:01 ` Vegard Nossum 2008-06-12 14:02 ` Takashi Iwai 0 siblings, 2 replies; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 13:55 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Thu, 12 Jun 2008 15:48:32 +0200, > Vegard Nossum wrote: >> >> The external mic: >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >> Amp-In vals: [0x00 0x00] > > The input volume is zero. Try to raise "Mic Boost" (if present)? They're already all up. Line In Boost = 100 Mic Boost = 100 Internal Mic Boost = 100 Right after changing all these to max, I've read the value from card0/codec#0 again: Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] There doesn't seem to be any difference. Even when changing them all to 0 in alsamixer, this output stays the same. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:55 ` Vegard Nossum @ 2008-06-12 14:01 ` Vegard Nossum 2008-06-12 14:13 ` Takashi Iwai 2008-06-12 14:02 ` Takashi Iwai 1 sibling, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 14:01 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 3:55 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: > On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: >> At Thu, 12 Jun 2008 15:48:32 +0200, >> Vegard Nossum wrote: >>> >>> The external mic: >>> >>> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >>> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >>> Amp-In vals: [0x00 0x00] >> >> The input volume is zero. Try to raise "Mic Boost" (if present)? > > They're already all up. > > Line In Boost = 100 > Mic Boost = 100 > Internal Mic Boost = 100 > > Right after changing all these to max, I've read the value from > card0/codec#0 again: > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > Amp-In vals: [0x00 0x00] > > There doesn't seem to be any difference. Even when changing them all > to 0 in alsamixer, this output stays the same. Sorry, I just discovered yet another "Mic Boost" control in the playback section in alsamixer (the others were in the capture section). Changing this now gives me: Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x02 0x02] Strange. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:01 ` Vegard Nossum @ 2008-06-12 14:13 ` Takashi Iwai 0 siblings, 0 replies; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 14:13 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 16:01:05 +0200, Vegard Nossum wrote: > > On Thu, Jun 12, 2008 at 3:55 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: > > On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> At Thu, 12 Jun 2008 15:48:32 +0200, > >> Vegard Nossum wrote: > >>> > >>> The external mic: > >>> > >>> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >>> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >>> Amp-In vals: [0x00 0x00] > >> > >> The input volume is zero. Try to raise "Mic Boost" (if present)? > > > > They're already all up. > > > > Line In Boost = 100 > > Mic Boost = 100 > > Internal Mic Boost = 100 > > > > Right after changing all these to max, I've read the value from > > card0/codec#0 again: > > > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > > Amp-In vals: [0x00 0x00] > > > > There doesn't seem to be any difference. Even when changing them all > > to 0 in alsamixer, this output stays the same. > > Sorry, I just discovered yet another "Mic Boost" control in the > playback section in alsamixer (the others were in the capture > section). Changing this now gives me: > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > Amp-In vals: [0x02 0x02] > > Strange. It's a known bug of alsa-lib mixer abstraction layer. Some controls appear on both playback and capture views although only the value is changed only on playback mode. So, don't worry, it's not your fault ;) Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 13:55 ` Vegard Nossum 2008-06-12 14:01 ` Vegard Nossum @ 2008-06-12 14:02 ` Takashi Iwai 2008-06-12 14:18 ` Vegard Nossum 1 sibling, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 14:02 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 15:55:45 +0200, Vegard Nossum wrote: > > On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Thu, 12 Jun 2008 15:48:32 +0200, > > Vegard Nossum wrote: > >> > >> The external mic: > >> > >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >> Amp-In vals: [0x00 0x00] > > > > The input volume is zero. Try to raise "Mic Boost" (if present)? > > They're already all up. > > Line In Boost = 100 > Mic Boost = 100 > Internal Mic Boost = 100 > > Right after changing all these to max, I've read the value from > card0/codec#0 again: > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > Amp-In vals: [0x00 0x00] > > There doesn't seem to be any difference. Even when changing them all > to 0 in alsamixer, this output stays the same. Weird. What happens if you execute the verb directly via hda-verb program like below? hda-verb /dev/snd/hwC0D0 0x18 SET_AMP 0x7002 Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:02 ` Takashi Iwai @ 2008-06-12 14:18 ` Vegard Nossum 2008-06-12 14:23 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 14:18 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 4:02 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Thu, 12 Jun 2008 15:55:45 +0200, > Vegard Nossum wrote: >> >> On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Thu, 12 Jun 2008 15:48:32 +0200, >> > Vegard Nossum wrote: >> >> >> >> The external mic: >> >> >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >> >> Amp-In vals: [0x00 0x00] >> > >> > The input volume is zero. Try to raise "Mic Boost" (if present)? >> >> They're already all up. >> >> Line In Boost = 100 >> Mic Boost = 100 >> Internal Mic Boost = 100 >> >> Right after changing all these to max, I've read the value from >> card0/codec#0 again: >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >> Amp-In vals: [0x00 0x00] >> >> There doesn't seem to be any difference. Even when changing them all >> to 0 in alsamixer, this output stays the same. > > Weird. What happens if you execute the verb directly via hda-verb > program like below? > hda-verb /dev/snd/hwC0D0 0x18 SET_AMP 0x7002 > Yep, this has the same effect has changing the "Mic Boost" control in the Playback section of alsamixer. What I discovered now, though, is that I get a much wider range of values from the external mic (so playback of the captured data actually sounds correct). It actually works, but there is still a very strong DC offset that seems dependent on the level of the "Capture" control. This offset still makes it unusable for recording, since even slightly louder noises will clip the samples. It also seems that this control is reset each time I start Audacity (even though the "Mic boost" level in alsamixer doesn't change). But I guess this unrelated to the DC offset issue. Changing the voltage level now (0x21, 0x22, 0x24, with Mic Boost at 0x02) doesn't change the DC offset, but has the same effect as before (the values fluctuate, but eventually stabilize at the same level). Thanks for the help. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:18 ` Vegard Nossum @ 2008-06-12 14:23 ` Takashi Iwai 2008-06-12 14:58 ` Daniel J Blueman 2008-06-12 16:55 ` Vegard Nossum 0 siblings, 2 replies; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 14:23 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 16:18:14 +0200, Vegard Nossum wrote: > > On Thu, Jun 12, 2008 at 4:02 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Thu, 12 Jun 2008 15:55:45 +0200, > > Vegard Nossum wrote: > >> > >> On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> > At Thu, 12 Jun 2008 15:48:32 +0200, > >> > Vegard Nossum wrote: > >> >> > >> >> The external mic: > >> >> > >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >> >> Amp-In vals: [0x00 0x00] > >> > > >> > The input volume is zero. Try to raise "Mic Boost" (if present)? > >> > >> They're already all up. > >> > >> Line In Boost = 100 > >> Mic Boost = 100 > >> Internal Mic Boost = 100 > >> > >> Right after changing all these to max, I've read the value from > >> card0/codec#0 again: > >> > >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >> Amp-In vals: [0x00 0x00] > >> > >> There doesn't seem to be any difference. Even when changing them all > >> to 0 in alsamixer, this output stays the same. > > > > Weird. What happens if you execute the verb directly via hda-verb > > program like below? > > hda-verb /dev/snd/hwC0D0 0x18 SET_AMP 0x7002 > > > > Yep, this has the same effect has changing the "Mic Boost" control in > the Playback section of alsamixer. > > What I discovered now, though, is that I get a much wider range of > values from the external mic (so playback of the captured data > actually sounds correct). It actually works, but there is still a very > strong DC offset that seems dependent on the level of the "Capture" > control. This offset still makes it unusable for recording, since even > slightly louder noises will clip the samples. > > It also seems that this control is reset each time I start Audacity > (even though the "Mic boost" level in alsamixer doesn't change). But I > guess this unrelated to the DC offset issue. > > Changing the voltage level now (0x21, 0x22, 0x24, with Mic Boost at > 0x02) doesn't change the DC offset, but has the same effect as before > (the values fluctuate, but eventually stabilize at the same level). Hmm, then it's all what I can guess right now. There might be some vendor-specific settings I don't know of. To be sure, try the following git tree (master branch), pull on 2.6.26: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git This contains the patches for the next kernel, and some of them are related with Realtek codecs. Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:23 ` Takashi Iwai @ 2008-06-12 14:58 ` Daniel J Blueman 2008-06-12 15:18 ` Takashi Iwai 2008-06-12 16:55 ` Vegard Nossum 1 sibling, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-06-12 14:58 UTC (permalink / raw) To: Takashi Iwai; +Cc: Vegard Nossum, Linux Kernel On Thu, Jun 12, 2008 at 3:23 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Thu, 12 Jun 2008 16:18:14 +0200, > Vegard Nossum wrote: >> >> On Thu, Jun 12, 2008 at 4:02 PM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Thu, 12 Jun 2008 15:55:45 +0200, >> > Vegard Nossum wrote: >> >> >> >> On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: >> >> > At Thu, 12 Jun 2008 15:48:32 +0200, >> >> > Vegard Nossum wrote: >> >> >> >> >> >> The external mic: >> >> >> >> >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >> >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >> >> >> Amp-In vals: [0x00 0x00] >> >> > >> >> > The input volume is zero. Try to raise "Mic Boost" (if present)? >> >> >> >> They're already all up. >> >> >> >> Line In Boost = 100 >> >> Mic Boost = 100 >> >> Internal Mic Boost = 100 >> >> >> >> Right after changing all these to max, I've read the value from >> >> card0/codec#0 again: >> >> >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 >> >> Amp-In vals: [0x00 0x00] >> >> >> >> There doesn't seem to be any difference. Even when changing them all >> >> to 0 in alsamixer, this output stays the same. >> > >> > Weird. What happens if you execute the verb directly via hda-verb >> > program like below? >> > hda-verb /dev/snd/hwC0D0 0x18 SET_AMP 0x7002 >> > >> >> Yep, this has the same effect has changing the "Mic Boost" control in >> the Playback section of alsamixer. >> >> What I discovered now, though, is that I get a much wider range of >> values from the external mic (so playback of the captured data >> actually sounds correct). It actually works, but there is still a very >> strong DC offset that seems dependent on the level of the "Capture" >> control. This offset still makes it unusable for recording, since even >> slightly louder noises will clip the samples. >> >> It also seems that this control is reset each time I start Audacity >> (even though the "Mic boost" level in alsamixer doesn't change). But I >> guess this unrelated to the DC offset issue. >> >> Changing the voltage level now (0x21, 0x22, 0x24, with Mic Boost at >> 0x02) doesn't change the DC offset, but has the same effect as before >> (the values fluctuate, but eventually stabilize at the same level). > > Hmm, then it's all what I can guess right now. > There might be some vendor-specific settings I don't know of. Maybe. I can readily dump the PCI config space of the Intel HD-audio controller in Windows and list differences; the datasheet from Intel allows us to decode the registers. Will this help us any? Of course, we really need to dump the target behind the HD-bus, but that's another matter... > To be sure, try the following git tree (master branch), pull on > 2.6.26: > > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git > > This contains the patches for the next kernel, and some of them are > related with Realtek codecs. > > > Takashi > -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:58 ` Daniel J Blueman @ 2008-06-12 15:18 ` Takashi Iwai 0 siblings, 0 replies; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 15:18 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Linux Kernel At Thu, 12 Jun 2008 15:58:30 +0100, Daniel J Blueman wrote: > > On Thu, Jun 12, 2008 at 3:23 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Thu, 12 Jun 2008 16:18:14 +0200, > > Vegard Nossum wrote: > >> > >> On Thu, Jun 12, 2008 at 4:02 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> > At Thu, 12 Jun 2008 15:55:45 +0200, > >> > Vegard Nossum wrote: > >> >> > >> >> On Thu, Jun 12, 2008 at 3:52 PM, Takashi Iwai <tiwai@suse.de> wrote: > >> >> > At Thu, 12 Jun 2008 15:48:32 +0200, > >> >> > Vegard Nossum wrote: > >> >> >> > >> >> >> The external mic: > >> >> >> > >> >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >> >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >> >> >> Amp-In vals: [0x00 0x00] > >> >> > > >> >> > The input volume is zero. Try to raise "Mic Boost" (if present)? > >> >> > >> >> They're already all up. > >> >> > >> >> Line In Boost = 100 > >> >> Mic Boost = 100 > >> >> Internal Mic Boost = 100 > >> >> > >> >> Right after changing all these to max, I've read the value from > >> >> card0/codec#0 again: > >> >> > >> >> Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > >> >> Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 > >> >> Amp-In vals: [0x00 0x00] > >> >> > >> >> There doesn't seem to be any difference. Even when changing them all > >> >> to 0 in alsamixer, this output stays the same. > >> > > >> > Weird. What happens if you execute the verb directly via hda-verb > >> > program like below? > >> > hda-verb /dev/snd/hwC0D0 0x18 SET_AMP 0x7002 > >> > > >> > >> Yep, this has the same effect has changing the "Mic Boost" control in > >> the Playback section of alsamixer. > >> > >> What I discovered now, though, is that I get a much wider range of > >> values from the external mic (so playback of the captured data > >> actually sounds correct). It actually works, but there is still a very > >> strong DC offset that seems dependent on the level of the "Capture" > >> control. This offset still makes it unusable for recording, since even > >> slightly louder noises will clip the samples. > >> > >> It also seems that this control is reset each time I start Audacity > >> (even though the "Mic boost" level in alsamixer doesn't change). But I > >> guess this unrelated to the DC offset issue. > >> > >> Changing the voltage level now (0x21, 0x22, 0x24, with Mic Boost at > >> 0x02) doesn't change the DC offset, but has the same effect as before > >> (the values fluctuate, but eventually stabilize at the same level). > > > > Hmm, then it's all what I can guess right now. > > There might be some vendor-specific settings I don't know of. > > Maybe. I can readily dump the PCI config space of the Intel HD-audio > controller in Windows and list differences; the datasheet from Intel > allows us to decode the registers. Will this help us any? Of course, > we really need to dump the target behind the HD-bus, but that's > another matter... I don't think it's an issue of PCI register but rather codec setups. PCI registers cannot influence on an analog thing like DC offset. So, we need to peek the HD-audio codec registers if really doing so. Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 14:23 ` Takashi Iwai 2008-06-12 14:58 ` Daniel J Blueman @ 2008-06-12 16:55 ` Vegard Nossum 2008-06-12 17:29 ` Vegard Nossum 1 sibling, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 16:55 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 4:23 PM, Takashi Iwai <tiwai@suse.de> wrote: > Hmm, then it's all what I can guess right now. > There might be some vendor-specific settings I don't know of. > > To be sure, try the following git tree (master branch), pull on > 2.6.26: > > git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git > > This contains the patches for the next kernel, and some of them are > related with Realtek codecs. Thanks, I've now tried it, but still it doesn't work. At least the right model is detected, because this is my laptop: hda_codec.c:2352: hda_codec: model 'acer' is selected for config 1025:11e (Acer Aspire 5720z) I also applied this patch for some extra debug output (and teach me a bit about how registers change in response to alsamixer changes): diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index d2e1093..588b69c 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -129,6 +129,7 @@ unsigned int snd_hda_codec_read(struct hda_codec *codec, hda _nid_t nid, res = (unsigned int)-1; mutex_unlock(&codec->bus->cmd_mutex); snd_hda_power_down(codec); + snd_printdd("read verb %08x parm %08x = %d\n", verb, parm, res); return res; } @@ -153,6 +154,7 @@ int snd_hda_codec_write(struct hda_codec *codec, hda_nid_t n id, int direct, err = codec->bus->ops.command(codec, nid, direct, verb, parm); mutex_unlock(&codec->bus->cmd_mutex); snd_hda_power_down(codec); + snd_printdd("write verb %08x parm %08x = %d\n", verb, parm, err); return err; } ..and in the log, I have this when modifying the "Capture" control: hda_codec.c:157: write verb 00000300 parm 0000a01a = 0 hda_codec.c:157: write verb 00000300 parm 0000901a = 0 Now I consulted the HDA specification, and I find this surprising: Verb 3h (set Amplifier Gain/Mute) has the following payload bits: 15 Set Output Amp 14 Set Input Amp ...but the payloads that I logged (a01a and 901a) would correspond to bit 15 being set, which is the Output Amp! Does that seem immediately obvious to you? I will dig some more. Thanks for the help so far. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 16:55 ` Vegard Nossum @ 2008-06-12 17:29 ` Vegard Nossum 2008-06-12 17:53 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 17:29 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 6:55 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: > Now I consulted the HDA specification, and I find this surprising: > > Verb 3h (set Amplifier Gain/Mute) has the following payload bits: > > 15 Set Output Amp > 14 Set Input Amp > > ...but the payloads that I logged (a01a and 901a) would correspond to > bit 15 being set, which is the Output Amp! I applied this as well, just to make sure, and I tested again: @@ -906,6 +908,9 @@ int snd_hda_codec_amp_update(struct hda_codec *codec, hda_nid_t nid, int ch, { struct hda_amp_info *info; + printk(KERN_ERR "snd_hda_codec_amp_update(): direction = %s\n", + direction == HDA_OUTPUT ? "output" : "input"); + info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, direction, idx)); if (!info) return 0; ..and yes, changing the "Capture" level does indeed set the Output bit when modifying this control. Maybe there's something wrong with the set-up of mixer or pin controls that makes ALSA think this is an output stream? Is there something strange here: Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x02a19840: [Jack] Mic at Ext Front Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In Pin Default 0x99a30941: [Fixed] Mic at Int ATAPI Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Pin Default 0x0281304e: [Jack] Line In at Ext Front ..or it certainly seems that all the inputs claim to have output capability too. Maybe this is what is confusing ALSA? I will try to change the Gain/Mute levels manually using hda-verb using the Input bit instead of Output and see how it goes. Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 17:29 ` Vegard Nossum @ 2008-06-12 17:53 ` Takashi Iwai 2008-06-12 18:31 ` Vegard Nossum 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-06-12 17:53 UTC (permalink / raw) To: Vegard Nossum; +Cc: Daniel J Blueman, Linux Kernel At Thu, 12 Jun 2008 19:29:57 +0200, Vegard Nossum wrote: > > On Thu, Jun 12, 2008 at 6:55 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: > > Now I consulted the HDA specification, and I find this surprising: > > > > Verb 3h (set Amplifier Gain/Mute) has the following payload bits: > > > > 15 Set Output Amp > > 14 Set Input Amp > > > > ...but the payloads that I logged (a01a and 901a) would correspond to > > bit 15 being set, which is the Output Amp! > > I applied this as well, just to make sure, and I tested again: > > @@ -906,6 +908,9 @@ int snd_hda_codec_amp_update(struct hda_codec > *codec, hda_nid_t nid, int ch, > { > struct hda_amp_info *info; > > + printk(KERN_ERR "snd_hda_codec_amp_update(): direction = %s\n", > + direction == HDA_OUTPUT ? "output" : "input"); > + > info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, direction, idx)); > if (!info) > return 0; > > ..and yes, changing the "Capture" level does indeed set the Output bit > when modifying this control. Maybe there's something wrong with the > set-up of mixer or pin controls that makes ALSA think this is an > output stream? > > Is there something strange here: > > Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Pin Default 0x02a19840: [Jack] Mic at Ext Front > > Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In > Pin Default 0x99a30941: [Fixed] Mic at Int ATAPI > > Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out > Pin Default 0x0281304e: [Jack] Line In at Ext Front > > ..or it certainly seems that all the inputs claim to have output > capability too. Maybe this is what is confusing ALSA? No. Basically, the input/output amps mean the amp input to the widget and the amp output from the widget, respectively. They don't mean that the playback or capture stream direction. So, it's perfectly OK if the amp is output for a capture stream. One exception is the pin widget. In this case, the input amp means the amp applied for the input signal from this pin, and the output amp means the amp applied before sending to this pin. So, the input/output actually corresponds to the stream direction. But, for other widgets, the amp I/O is just a difference between before or after. Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 17:53 ` Takashi Iwai @ 2008-06-12 18:31 ` Vegard Nossum 0 siblings, 0 replies; 41+ messages in thread From: Vegard Nossum @ 2008-06-12 18:31 UTC (permalink / raw) To: Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Thu, Jun 12, 2008 at 7:53 PM, Takashi Iwai <tiwai@suse.de> wrote: >> ..or it certainly seems that all the inputs claim to have output >> capability too. Maybe this is what is confusing ALSA? > > No. > > Basically, the input/output amps mean the amp input to the widget > and the amp output from the widget, respectively. They don't mean > that the playback or capture stream direction. So, it's perfectly OK > if the amp is output for a capture stream. > > One exception is the pin widget. In this case, the input amp means > the amp applied for the input signal from this pin, and the output amp > means the amp applied before sending to this pin. So, the > input/output actually corresponds to the stream direction. But, for > other widgets, the amp I/O is just a difference between before or > after. Okay, yes. I now output the nid that is changing too, and you are correct, it is not the pin widget, but this one: Node 0x23 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x03 0x03] Connection: 7 0x18 0x19 0x1a 0x1c 0x14 0x15 0x12* I guess I will need to read up on what exactly an audio selector is before attempting any more debugging. Thank you for keeping up so far. I'll try to shut up now until I have something more tangible to report :-) Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 10:49 ` Takashi Iwai 2008-06-12 13:03 ` Vegard Nossum @ 2008-06-12 21:50 ` Daniel J Blueman 2008-06-13 10:38 ` Romano Giannetti 2008-06-28 0:05 ` Daniel J Blueman 2 siblings, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-06-12 21:50 UTC (permalink / raw) To: Takashi Iwai; +Cc: Linux Kernel, Vegard Nossum On Thu, Jun 12, 2008 at 11:49 AM, Takashi Iwai <tiwai@suse.de> wrote: > At Wed, 11 Jun 2008 20:00:17 +0100, > Daniel J Blueman wrote: >> >> On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Mon, 9 Jun 2008 20:59:00 +0100, >> > Daniel J Blueman wrote: >> >> >> >> Hi Takashi-san, >> >> >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >> >> LTS x86-64). I can see on Audacity that the DC offset that varies with >> >> the recording capture level. >> > >> > Could you elaborate? The mic bias level could be changed via the pin >> > control value. Usually, it's set as VREF 80%. >> >> When the recording->capture level is set to 0, the mic has no DC >> offset as expected. Maxing the recording->capture level, the mic input >> is saturated, in between, we see a linear connection. >> >> >> Plus, the mixer playback->mic-boost >> >> muting enables/disables mic-boost in recording. >> > >> > This is a known bug in alsa-lib mixer abstraction. No kernel issue. >> >> >> It feels like the ALC883 pins aren't configured quite right. The mobo >> >> is an Asus P5E-VM with current BIOS [1] >> >> >> >> What's the routine to debug this? Would it help to install windows, >> >> dump the register space and compare? >> > >> > You can find *.INI file that contains the default pin configuration >> > in Windows. This might be useful in the case BIOS is broken but >> > Windows does a black magic. >> >> That'll be these defaults stashed in the INF file [2]. Let me know if >> it's not what you expected and I'll publish the complete INF file. >> >> > Anyway, please run alsa-info.sh with --no-upload option and show the >> > generated file here. It contains the codec information and mixer >> > setup. >> > http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh >> >> See [3]. >> >> > Also, you can adjust the pin setting on the fly via hda-verb utility >> > below: >> > http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 >> > >> > Don't forget to build snd-hda-intel module with >> > CONFIG_SND_HDA_HWDEP=y to use this command. >> >> I'll give this a shot if I get time. > > You can try to adjust VREF value of mic pins. > For example, the node 0x18 and 0x19 correspond to the rear and front > mics, respectively. Then run the following as root: > > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 > > which will change the widget 0x18 (rear mic) to input-VREF 50% > (0x21). The original value is input-VREF 80% (0x24). Yes, I had tried this and it does not help, perhaps only changing the magnitude of the sampled mic input. Another smoking gun, is when changing certain mixer settings (both on gnome-mixer and alsamixer), eg playback->front mic amplitude, moving the slider up and down, the L/R linking seems to be almost randomly unlinked and the other L/R channel jumps to a different value. When re-linking the L/R channels, often, it'll unlink again and change both value after reading back the change; mute can be erratic too. Confirmed with 2.6.26-r5. Is there a good way to debug this also? > Takashi -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 21:50 ` Daniel J Blueman @ 2008-06-13 10:38 ` Romano Giannetti 0 siblings, 0 replies; 41+ messages in thread From: Romano Giannetti @ 2008-06-13 10:38 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Takashi Iwai, Linux Kernel, Vegard Nossum On Thu, 2008-06-12 at 22:50 +0100, Daniel J Blueman wrote: > Another smoking gun, is when changing certain mixer settings (both on > gnome-mixer and alsamixer), eg playback->front mic amplitude, moving > the slider up and down, the L/R linking seems to be almost randomly > unlinked and the other L/R channel jumps to a different value. When > re-linking the L/R channels, often, it'll unlink again and change both > value after reading back the change; mute can be erratic too. > Confirmed with 2.6.26-r5. This seems: http://bugzilla.kernel.org/show_bug.cgi?id=10300 I do not think it's related, I had the mic problem *before* seeing this. It's not fixed as 2.6.26-rc5, btw. Romano -- Romano Giannetti Dep. de Electrónica y Automática http://www.dea.icai.upcomillas.es/romano Univ. Pontificia Comillas (MADRID) -- La presente comunicación tiene carácter confidencial y es para el exclusivo uso del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, le informamos que cualquier forma de distribución, reproducción o uso de esta comunicación y/o de la información contenida en la misma están estrictamente prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por favor, notifíquelo inmediatamente al remitente contestando a este mensaje y proceda a continuación a destruirlo. Gracias por su colaboración. This communication contains confidential information. It is for the exclusive use of the intended addressee. If you are not the intended addressee, please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited by law. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this message. Thank you for your cooperation. ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-12 10:49 ` Takashi Iwai 2008-06-12 13:03 ` Vegard Nossum 2008-06-12 21:50 ` Daniel J Blueman @ 2008-06-28 0:05 ` Daniel J Blueman [not found] ` <19f34abd0806280311s115062e6vc6d0f304cb744934@mail.gmail.com> 2 siblings, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-06-28 0:05 UTC (permalink / raw) To: Takashi Iwai, Vegard Nossum; +Cc: Linux Kernel, Romano Giannetti On Thu, Jun 12, 2008 at 11:49 AM, Takashi Iwai <tiwai@suse.de> wrote: > At Wed, 11 Jun 2008 20:00:17 +0100, > Daniel J Blueman wrote: >> >> On Tue, Jun 10, 2008 at 6:59 AM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Mon, 9 Jun 2008 20:59:00 +0100, >> > Daniel J Blueman wrote: >> >> >> >> Hi Takashi-san, >> >> >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >> >> LTS x86-64). I can see on Audacity that the DC offset that varies with >> >> the recording capture level. >> > >> > Could you elaborate? The mic bias level could be changed via the pin >> > control value. Usually, it's set as VREF 80%. >> >> When the recording->capture level is set to 0, the mic has no DC >> offset as expected. Maxing the recording->capture level, the mic input >> is saturated, in between, we see a linear connection. >> >> >> Plus, the mixer playback->mic-boost >> >> muting enables/disables mic-boost in recording. >> > >> > This is a known bug in alsa-lib mixer abstraction. No kernel issue. >> >> >> It feels like the ALC883 pins aren't configured quite right. The mobo >> >> is an Asus P5E-VM with current BIOS [1] >> >> >> >> What's the routine to debug this? Would it help to install windows, >> >> dump the register space and compare? >> > >> > You can find *.INI file that contains the default pin configuration >> > in Windows. This might be useful in the case BIOS is broken but >> > Windows does a black magic. >> >> That'll be these defaults stashed in the INF file [2]. Let me know if >> it's not what you expected and I'll publish the complete INF file. >> >> > Anyway, please run alsa-info.sh with --no-upload option and show the >> > generated file here. It contains the codec information and mixer >> > setup. >> > http://hg.alsa-project.org/alsa/raw-file/tip/alsa-info.sh >> >> See [3]. >> >> > Also, you can adjust the pin setting on the fly via hda-verb utility >> > below: >> > http://ftp.suse.com/pub/people/tiwai/misc/hda-verb-0.2.tar.bz2 >> > >> > Don't forget to build snd-hda-intel module with >> > CONFIG_SND_HDA_HWDEP=y to use this command. >> >> I'll give this a shot if I get time. > > You can try to adjust VREF value of mic pins. > For example, the node 0x18 and 0x19 correspond to the rear and front > mics, respectively. Then run the following as root: > > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_PIN_WID 0x21 > > which will change the widget 0x18 (rear mic) to input-VREF 50% > (0x21). The original value is input-VREF 80% (0x24). As the mic is working fine, but with this variable DC offset, it felt like something needed tweaking in the mixer (summation) node. I understand more about the node connectivity now, and found muting the front mic mixer input and setting LR gain to 0 at mixer node 23h addresses the issue: (from page 42 at ftp://66.104.77.130/pc/audio/ALC883_DataSheet_1.3.pdf) # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 Vegard - your HD bus enumeration looks similar and I'd bet the vendor followed the same Realtek application note, so can you give this a shot too? If not, try mixer node 20h. My motherboard (Asus P5E-VM HDMI) has front-panel HD-audio (selectable as legacy in the BIOS) connectors, but I've never been able to get them working, so left the cables disconnected...surely not a board design issue, as default pin configuration wouldn't explain the offset? Thanks, Daniel -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
[parent not found: <19f34abd0806280311s115062e6vc6d0f304cb744934@mail.gmail.com>]
[parent not found: <6278d2220806280329j2f77c52dp8fbae78420c136c1@mail.gmail.com>]
* Re: ALC883 recording troubles... [not found] ` <6278d2220806280329j2f77c52dp8fbae78420c136c1@mail.gmail.com> @ 2008-06-28 12:29 ` Daniel J Blueman 2008-06-28 12:39 ` Vegard Nossum 2008-08-14 19:10 ` Daniel J Blueman 1 sibling, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-06-28 12:29 UTC (permalink / raw) To: Vegard Nossum; +Cc: Takashi Iwai, Romano Giannetti, Linux Kernel On Sat, Jun 28, 2008 at 11:29 AM, Daniel J Blueman <daniel.blueman@gmail.com> wrote: > On Sat, Jun 28, 2008 at 11:11 AM, Vegard Nossum <vegard.nossum@gmail.com> wrote: >> (removed linux-kernel from Cc) >> >> On Sat, Jun 28, 2008 at 2:05 AM, Daniel J Blueman >> <daniel.blueman@gmail.com> wrote: >>> As the mic is working fine, but with this variable DC offset, it felt >>> like something needed tweaking in the mixer (summation) node. I >>> understand more about the node connectivity now, and found muting the >>> front mic mixer input and setting LR gain to 0 at mixer node 23h >>> addresses the issue: >>> >>> (from page 42 at ftp://66.104.77.130/pc/audio/ALC883_DataSheet_1.3.pdf) >>> >>> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 >> >> Are you saying that this fixes the problem completely for you? > > Yes, this addresses the problem squarely. The front mix mixer input is > adding this offset, looks like they have a capacitor between a > reference voltage and the pin or something, so it floats up. > >>> Vegard - your HD bus enumeration looks similar and I'd bet the vendor >>> followed the same Realtek application note, so can you give this a >>> shot too? If not, try mixer node 20h. >> >> I agree. Thanks for the link, I found ALC268 now as well, and I am >> experimenting... >> >> I think 23h is [in]correct -- this is the one with caps f00040h for me too. >> >> But neither of them had any effect at all. > > OK, I'll take another look at the debug output you posted; I forgot > you aren't using the ALC883. Using your dumped config and ftp://202.65.194.211/pc/audio/ALC268_DataSheet_1.3.pdf page 42, your front mic pin complex is at node 19h; the mixers connecting to it are at nodes 0Bh, 22h and 23h, all at the second input index, so one of these should work: # ./hda-verb /dev/snd/hwC0D0 0x0b SET_AMP_GAIN_MUTE 0x7280 # ./hda-verb /dev/snd/hwC0D0 0x22 SET_AMP_GAIN_MUTE 0x7280 # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7280 On my ALC883, we need to mute the first input instead, thus 0x7180. Can you see if the above helps you out? Thanks, Daniel -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-28 12:29 ` Daniel J Blueman @ 2008-06-28 12:39 ` Vegard Nossum 2008-06-28 13:24 ` Daniel J Blueman 0 siblings, 1 reply; 41+ messages in thread From: Vegard Nossum @ 2008-06-28 12:39 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Takashi Iwai, Romano Giannetti, Linux Kernel On Sat, Jun 28, 2008 at 2:29 PM, Daniel J Blueman <daniel.blueman@gmail.com> wrote: > Using your dumped config and > ftp://202.65.194.211/pc/audio/ALC268_DataSheet_1.3.pdf page 42, your > front mic pin complex is at node 19h; the mixers connecting to it are > at nodes 0Bh, 22h and 23h, all at the second input index, so one of > these should work: > > # ./hda-verb /dev/snd/hwC0D0 0x0b SET_AMP_GAIN_MUTE 0x7280 > # ./hda-verb /dev/snd/hwC0D0 0x22 SET_AMP_GAIN_MUTE 0x7280 > # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7280 > > On my ALC883, we need to mute the first input instead, thus 0x7180. > Can you see if the above helps you out? Thanks for helping out! Unfortunately, none of these commands (with either 0x7180 or 0x7280) seems to make any difference at all. (I tried various combinations, with reloading the driver in-between to undo the trial attempts.) Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-28 12:39 ` Vegard Nossum @ 2008-06-28 13:24 ` Daniel J Blueman 2008-06-28 13:46 ` Vegard Nossum 2008-06-29 17:29 ` Romano Giannetti 0 siblings, 2 replies; 41+ messages in thread From: Daniel J Blueman @ 2008-06-28 13:24 UTC (permalink / raw) To: Vegard Nossum, Romano Giannetti; +Cc: Takashi Iwai, Linux Kernel On Sat, Jun 28, 2008 at 1:39 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: > On Sat, Jun 28, 2008 at 2:29 PM, Daniel J Blueman > <daniel.blueman@gmail.com> wrote: >> Using your dumped config and >> ftp://202.65.194.211/pc/audio/ALC268_DataSheet_1.3.pdf page 42, your >> front mic pin complex is at node 19h; the mixers connecting to it are >> at nodes 0Bh, 22h and 23h, all at the second input index, so one of >> these should work: >> >> # ./hda-verb /dev/snd/hwC0D0 0x0b SET_AMP_GAIN_MUTE 0x7280 >> # ./hda-verb /dev/snd/hwC0D0 0x22 SET_AMP_GAIN_MUTE 0x7280 >> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7280 >> >> On my ALC883, we need to mute the first input instead, thus 0x7180. >> Can you see if the above helps you out? > > Thanks for helping out! > > Unfortunately, none of these commands (with either 0x7180 or 0x7280) > seems to make any difference at all. (I tried various combinations, > with reloading the driver in-between to undo the trial attempts.) I made a mistake - the second input is selected by 0x7180, as the first is 0x7080...perhaps retry this with nodes 0Bh, 22h and 23h? Failing that, these are the steps I'd try: 1. setup audio so as to reproduce input DC offset 2. start recording in audacity and observe DC offset 3. for each input of each mixer: 3.1 mute until you see the DC offset disappear ie for ALC268, mixer input amps at nodes (# inputs): 0Eh(1) 0Fh(2) 10h(3) 18h(1) 19h(1) 1Ah(1) ie: # ./hda-verb /dev/snd/hwC0D0 0x0e SET_AMP_GAIN_MUTE 0x7080 # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7080 # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7180 # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7080 # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7180 # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7280 # ./hda-verb /dev/snd/hwC0D0 0x18 SET_AMP_GAIN_MUTE 0x7080 # ./hda-verb /dev/snd/hwC0D0 0x19 SET_AMP_GAIN_MUTE 0x7080 # ./hda-verb /dev/snd/hwC0D0 0x1a SET_AMP_GAIN_MUTE 0x7080 Changes are real-time, so no need to restart anything. Once you've found which mixer input amp and input index stops the DC offset, reset the HD codec (eg reboot) and try just that one! I'm interested in hearing if this finds the issue... Dan -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-28 13:24 ` Daniel J Blueman @ 2008-06-28 13:46 ` Vegard Nossum 2008-06-29 17:29 ` Romano Giannetti 1 sibling, 0 replies; 41+ messages in thread From: Vegard Nossum @ 2008-06-28 13:46 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Romano Giannetti, Takashi Iwai, Linux Kernel On Sat, Jun 28, 2008 at 3:24 PM, Daniel J Blueman <daniel.blueman@gmail.com> wrote: > On Sat, Jun 28, 2008 at 1:39 PM, Vegard Nossum <vegard.nossum@gmail.com> wrote: >> On Sat, Jun 28, 2008 at 2:29 PM, Daniel J Blueman >> <daniel.blueman@gmail.com> wrote: >>> Using your dumped config and >>> ftp://202.65.194.211/pc/audio/ALC268_DataSheet_1.3.pdf page 42, your >>> front mic pin complex is at node 19h; the mixers connecting to it are >>> at nodes 0Bh, 22h and 23h, all at the second input index, so one of >>> these should work: >>> >>> # ./hda-verb /dev/snd/hwC0D0 0x0b SET_AMP_GAIN_MUTE 0x7280 >>> # ./hda-verb /dev/snd/hwC0D0 0x22 SET_AMP_GAIN_MUTE 0x7280 >>> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7280 >>> >>> On my ALC883, we need to mute the first input instead, thus 0x7180. >>> Can you see if the above helps you out? >> >> Thanks for helping out! >> >> Unfortunately, none of these commands (with either 0x7180 or 0x7280) >> seems to make any difference at all. (I tried various combinations, >> with reloading the driver in-between to undo the trial attempts.) > > I made a mistake - the second input is selected by 0x7180, as the > first is 0x7080...perhaps retry this with nodes 0Bh, 22h and 23h? > I did -- no difference. > Failing that, these are the steps I'd try: > 1. setup audio so as to reproduce input DC offset > 2. start recording in audacity and observe DC offset > 3. for each input of each mixer: > 3.1 mute until you see the DC offset disappear > > ie for ALC268, mixer input amps at nodes (# inputs): 0Eh(1) 0Fh(2) > 10h(3) 18h(1) 19h(1) 1Ah(1) > ie: > Also no difference :-( > Changes are real-time, so no need to restart anything. Once you've > found which mixer input amp and input index stops the DC offset, reset > the HD codec (eg reboot) and try just that one! I'm interested in > hearing if this finds the issue... > The only result was the muting of playback. But thanks for the hints, I'll try to look for other combinations that might help too. If you have other ideas too, I'll be happy to try them out! Vegard -- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036 ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-28 13:24 ` Daniel J Blueman 2008-06-28 13:46 ` Vegard Nossum @ 2008-06-29 17:29 ` Romano Giannetti 2008-06-29 21:33 ` Daniel J Blueman 1 sibling, 1 reply; 41+ messages in thread From: Romano Giannetti @ 2008-06-29 17:29 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Takashi Iwai, Linux Kernel On Sat, 2008-06-28 at 14:24 +0100, Daniel J Blueman wrote: > # ./hda-verb /dev/snd/hwC0D0 0x0e SET_AMP_GAIN_MUTE 0x7080 > # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7080 > # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7180 > # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7080 > # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7180 > # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7280 > # ./hda-verb /dev/snd/hwC0D0 0x18 SET_AMP_GAIN_MUTE 0x7080 > # ./hda-verb /dev/snd/hwC0D0 0x19 SET_AMP_GAIN_MUTE 0x7080 > # ./hda-verb /dev/snd/hwC0D0 0x1a SET_AMP_GAIN_MUTE 0x7080 I tried all this, to no avail. At some point input stopped recording sound, it has just offset, but I can't say which one was... if it's a useful data, I can retry it. And... I have almost never booted it, but I have a Vista installed in this laptop. If you explain me how to do (in windows I am a dumb user) I can try to search thing. What I know is that the sound in windows is quite louder, and that recording works better. There is a button with "offset correction" default on, if I remember correctly. Romano -- Romano Giannetti Dep. de Electrónica y Automática http://www.dea.icai.upcomillas.es/romano Univ. Pontificia Comillas (MADRID) -- La presente comunicación tiene carácter confidencial y es para el exclusivo uso del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, le informamos que cualquier forma de distribución, reproducción o uso de esta comunicación y/o de la información contenida en la misma están estrictamente prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por favor, notifíquelo inmediatamente al remitente contestando a este mensaje y proceda a continuación a destruirlo. Gracias por su colaboración. This communication contains confidential information. It is for the exclusive use of the intended addressee. If you are not the intended addressee, please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited by law. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this message. Thank you for your cooperation. ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-29 17:29 ` Romano Giannetti @ 2008-06-29 21:33 ` Daniel J Blueman 0 siblings, 0 replies; 41+ messages in thread From: Daniel J Blueman @ 2008-06-29 21:33 UTC (permalink / raw) To: Romano Giannetti; +Cc: Vegard Nossum, Takashi Iwai, Linux Kernel On Sun, Jun 29, 2008 at 6:29 PM, Romano Giannetti <romano@dea.icai.upcomillas.es> wrote: > > On Sat, 2008-06-28 at 14:24 +0100, Daniel J Blueman wrote: >> # ./hda-verb /dev/snd/hwC0D0 0x0e SET_AMP_GAIN_MUTE 0x7080 >> # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7080 >> # ./hda-verb /dev/snd/hwC0D0 0x0f SET_AMP_GAIN_MUTE 0x7180 >> # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7080 >> # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7180 >> # ./hda-verb /dev/snd/hwC0D0 0x10 SET_AMP_GAIN_MUTE 0x7280 >> # ./hda-verb /dev/snd/hwC0D0 0x18 SET_AMP_GAIN_MUTE 0x7080 >> # ./hda-verb /dev/snd/hwC0D0 0x19 SET_AMP_GAIN_MUTE 0x7080 >> # ./hda-verb /dev/snd/hwC0D0 0x1a SET_AMP_GAIN_MUTE 0x7080 > > I tried all this, to no avail. At some point input stopped recording > sound, it has just offset, but I can't say which one was... if it's a > useful data, I can retry it. > > And... I have almost never booted it, but I have a Vista installed in > this laptop. If you explain me how to do (in windows I am a dumb user) I > can try to search thing. What I know is that the sound in windows is > quite louder, and that recording works better. There is a button with > "offset correction" default on, if I remember correctly. That'll be the software 'fix' the Realtek guys mentioned to Takashi. It's clear the issue with the ALC268 is different than the ALC883 offset issue that I'm seeing, which seems to be a bug as ALSA isn't muting the mixer inputs which aren't intended. Daniel -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... [not found] ` <6278d2220806280329j2f77c52dp8fbae78420c136c1@mail.gmail.com> 2008-06-28 12:29 ` Daniel J Blueman @ 2008-08-14 19:10 ` Daniel J Blueman 2008-08-15 14:42 ` Takashi Iwai 1 sibling, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-08-14 19:10 UTC (permalink / raw) To: Takashi Iwai; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel Hi Takashi, I am still finding this recording +ve saturation on my ALC883 Intel HDA sound device with 2.6.27-rc3 (ie ALSA 1.0.17 drivers) and ALSA 1.0.16-1 libraries on Ubuntu Intrepid. The previous workaround still 'gets us out of jail': # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 nid = 0x23, verb = 0x300, param = 0x7180 value = 0x0 Note, we see this message "hda_codec: Unknown model for ALC883, trying auto-probe from BIOS..." as before on this Asus P5E-VM HDMI motherboard with current BIOS. How can we improve the situation, as out the box, the front/rear mic inputs are (still) useless? Many thanks, Daniel On Sat, Jun 28, 2008 at 11:29 AM, Daniel J Blueman <daniel.blueman@gmail.com> wrote: > On Sat, Jun 28, 2008 at 11:11 AM, Vegard Nossum <vegard.nossum@gmail.com> wrote: >> On Sat, Jun 28, 2008 at 2:05 AM, Daniel J Blueman >> <daniel.blueman@gmail.com> wrote: >>> As the mic is working fine, but with this variable DC offset, it felt >>> like something needed tweaking in the mixer (summation) node. I >>> understand more about the node connectivity now, and found muting the >>> front mic mixer input and setting LR gain to 0 at mixer node 23h >>> addresses the issue: >>> >>> (from page 42 at ftp://66.104.77.130/pc/audio/ALC883_DataSheet_1.3.pdf) >>> >>> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 >>> >> >> Are you saying that this fixes the problem completely for you? > > Yes, this addresses the problem squarely. The front mix mixer input is > adding this offset, looks like they have a capacitor between a > reference voltage and the pin or something, so it floats up. > >>> Vegard - your HD bus enumeration looks similar and I'd bet the vendor >>> followed the same Realtek application note, so can you give this a >>> shot too? If not, try mixer node 20h. >>> >> >> I agree. Thanks for the link, I found ALC268 now as well, and I am >> experimenting... >> >> I think 23h is [in]correct -- this is the one with caps f00040h for me too. >> >> But neither of them had any effect at all. > > OK, I'll take another look at the debug output you posted; I forgot > you aren't using the ALC883. -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-14 19:10 ` Daniel J Blueman @ 2008-08-15 14:42 ` Takashi Iwai 2008-08-15 22:01 ` Daniel J Blueman 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-08-15 14:42 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel At Thu, 14 Aug 2008 20:10:03 +0100, Daniel J Blueman wrote: > > Hi Takashi, > > I am still finding this recording +ve saturation on my ALC883 Intel > HDA sound device with 2.6.27-rc3 (ie ALSA 1.0.17 drivers) and ALSA > 1.0.16-1 libraries on Ubuntu Intrepid. > > The previous workaround still 'gets us out of jail': > > # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 > nid = 0x23, verb = 0x300, param = 0x7180 > value = 0x0 Could you try the patch below? With this patch, unused connections will be disabled. Let me know if it really works so that I can merge it to git tree. Takashi --- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 9473abb..6f0485a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6442,6 +6442,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) } } +static void alc882_auto_init_input_src(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + const struct hda_input_mux *imux = spec->input_mux; + int c; + + for (c = 0; c < spec->num_adc_nids; c++) { + hda_nid_t conn_list[10]; + hda_nid_t nid = spec->capsrc_nids[c]; + int conns, mute, idx, item; + + conns = snd_hda_get_connections(codec, nid, conn_list, + ARRAY_SIZE(conn_list)); + if (conns < 0) + continue; + mute = HDA_AMP_MUTE; + for (idx = 0; idx < conns; idx++) { + /* if the current connection is the selected one, + * unmute it as default - otherwise mute it + */ + for (item = 0; item < imux->num_items; item++) { + if (imux->items[item].index == idx) { + if (spec->cur_mux[c] == item) + mute = 0; + break; + } + } + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, + idx, HDA_AMP_MUTE, mute); + } + + } +} + /* add mic boosts if needed */ static int alc_auto_add_mic_boost(struct hda_codec *codec) { @@ -6496,6 +6530,7 @@ static void alc882_auto_init(struct hda_codec *codec) alc882_auto_init_multi_out(codec); alc882_auto_init_hp_out(codec); alc882_auto_init_analog_input(codec); + alc882_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -8290,6 +8325,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) } } +#define alc883_auto_init_input_src alc882_auto_init_input_src + /* almost identical with ALC880 parser... */ static int alc883_parse_auto_config(struct hda_codec *codec) { @@ -8320,6 +8357,7 @@ static void alc883_auto_init(struct hda_codec *codec) alc883_auto_init_multi_out(codec); alc883_auto_init_hp_out(codec); alc883_auto_init_analog_input(codec); + alc883_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -9703,6 +9741,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) #define alc262_auto_init_multi_out alc882_auto_init_multi_out #define alc262_auto_init_hp_out alc882_auto_init_hp_out #define alc262_auto_init_analog_input alc882_auto_init_analog_input +#define alc262_auto_init_input_src alc882_auto_init_input_src /* init callback for auto-configuration model -- overriding the default init */ @@ -9712,6 +9751,7 @@ static void alc262_auto_init(struct hda_codec *codec) alc262_auto_init_multi_out(codec); alc262_auto_init_hp_out(codec); alc262_auto_init_analog_input(codec); + alc262_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -13382,6 +13422,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) } } +#define alc861vd_auto_init_input_src alc882_auto_init_input_src + #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) @@ -13564,6 +13606,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) alc861vd_auto_init_multi_out(codec); alc861vd_auto_init_hp_out(codec); alc861vd_auto_init_analog_input(codec); + alc861vd_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -14729,6 +14772,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) } } +#define alc662_auto_init_input_src alc882_auto_init_input_src + static int alc662_parse_auto_config(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -14785,6 +14830,7 @@ static void alc662_auto_init(struct hda_codec *codec) alc662_auto_init_multi_out(codec); alc662_auto_init_hp_out(codec); alc662_auto_init_analog_input(codec); + alc662_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } ^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-15 14:42 ` Takashi Iwai @ 2008-08-15 22:01 ` Daniel J Blueman 2008-08-16 8:38 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-08-15 22:01 UTC (permalink / raw) To: Takashi Iwai; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel [-- Attachment #1: Type: text/plain, Size: 6203 bytes --] Hi Takashi, On Fri, Aug 15, 2008 at 3:42 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Thu, 14 Aug 2008 20:10:03 +0100, > Daniel J Blueman wrote: >> >> Hi Takashi, >> >> I am still finding this recording +ve saturation on my ALC883 Intel >> HDA sound device with 2.6.27-rc3 (ie ALSA 1.0.17 drivers) and ALSA >> 1.0.16-1 libraries on Ubuntu Intrepid. >> >> The previous workaround still 'gets us out of jail': >> >> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 >> nid = 0x23, verb = 0x300, param = 0x7180 >> value = 0x0 > > Could you try the patch below? With this patch, unused connections > will be disabled. Let me know if it really works so that I can merge > it to git tree. > > Takashi > > --- > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index 9473abb..6f0485a 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -6442,6 +6442,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) > } > } > > +static void alc882_auto_init_input_src(struct hda_codec *codec) > +{ > + struct alc_spec *spec = codec->spec; > + const struct hda_input_mux *imux = spec->input_mux; > + int c; > + > + for (c = 0; c < spec->num_adc_nids; c++) { > + hda_nid_t conn_list[10]; > + hda_nid_t nid = spec->capsrc_nids[c]; > + int conns, mute, idx, item; > + > + conns = snd_hda_get_connections(codec, nid, conn_list, > + ARRAY_SIZE(conn_list)); > + if (conns < 0) > + continue; > + mute = HDA_AMP_MUTE; > + for (idx = 0; idx < conns; idx++) { > + /* if the current connection is the selected one, > + * unmute it as default - otherwise mute it > + */ > + for (item = 0; item < imux->num_items; item++) { > + if (imux->items[item].index == idx) { > + if (spec->cur_mux[c] == item) > + mute = 0; > + break; > + } > + } > + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, > + idx, HDA_AMP_MUTE, mute); > + } > + > + } > +} > + > /* add mic boosts if needed */ > static int alc_auto_add_mic_boost(struct hda_codec *codec) > { > @@ -6496,6 +6530,7 @@ static void alc882_auto_init(struct hda_codec *codec) > alc882_auto_init_multi_out(codec); > alc882_auto_init_hp_out(codec); > alc882_auto_init_analog_input(codec); > + alc882_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -8290,6 +8325,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc883_auto_init_input_src alc882_auto_init_input_src > + > /* almost identical with ALC880 parser... */ > static int alc883_parse_auto_config(struct hda_codec *codec) > { > @@ -8320,6 +8357,7 @@ static void alc883_auto_init(struct hda_codec *codec) > alc883_auto_init_multi_out(codec); > alc883_auto_init_hp_out(codec); > alc883_auto_init_analog_input(codec); > + alc883_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -9703,6 +9741,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) > #define alc262_auto_init_multi_out alc882_auto_init_multi_out > #define alc262_auto_init_hp_out alc882_auto_init_hp_out > #define alc262_auto_init_analog_input alc882_auto_init_analog_input > +#define alc262_auto_init_input_src alc882_auto_init_input_src > > > /* init callback for auto-configuration model -- overriding the default init */ > @@ -9712,6 +9751,7 @@ static void alc262_auto_init(struct hda_codec *codec) > alc262_auto_init_multi_out(codec); > alc262_auto_init_hp_out(codec); > alc262_auto_init_analog_input(codec); > + alc262_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -13382,6 +13422,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc861vd_auto_init_input_src alc882_auto_init_input_src > + > #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) > #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) > > @@ -13564,6 +13606,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) > alc861vd_auto_init_multi_out(codec); > alc861vd_auto_init_hp_out(codec); > alc861vd_auto_init_analog_input(codec); > + alc861vd_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -14729,6 +14772,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc662_auto_init_input_src alc882_auto_init_input_src > + > static int alc662_parse_auto_config(struct hda_codec *codec) > { > struct alc_spec *spec = codec->spec; > @@ -14785,6 +14830,7 @@ static void alc662_auto_init(struct hda_codec *codec) > alc662_auto_init_multi_out(codec); > alc662_auto_init_hp_out(codec); > alc662_auto_init_analog_input(codec); > + alc662_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } There were a couple of issues: getting the mute logic right from moving the assignment and increasing the number of inputs beyond the 11 required here to avoid the 'Too many connections' message and fixing the last input being skipped. With the updated patch, the problem is fully addressed; no resulting DC offset, so recording quality is great. This seems logically safe and a hopeful for 2.6.27-rc4... The updated patch is against 2.6.27-rc3. Thanks once again, Daniel Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> -- Daniel J Blueman [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: alc-input-muting.patch --] [-- Type: text/x-patch; name=alc-input-muting.patch, Size: 3950 bytes --] diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index add4e87..26779b7 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6437,6 +6437,39 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) } } +static void alc882_auto_init_input_src(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + const struct hda_input_mux *imux = spec->input_mux; + int c; + + for (c = 0; c < spec->num_adc_nids; c++) { + hda_nid_t conn_list[HDA_MAX_NUM_INPUTS]; + hda_nid_t nid = spec->capsrc_nids[c]; + int conns, mute, idx, item; + + conns = snd_hda_get_connections(codec, nid, conn_list, + ARRAY_SIZE(conn_list)); + if (conns < 0) + continue; + for (idx = 0; idx < conns; idx++) { + /* if the current connection is the selected one, + * unmute it as default - otherwise mute it + */ + mute = HDA_AMP_MUTE; + for (item = 0; item < imux->num_items; item++) { + if (imux->items[item].index == idx) { + if (spec->cur_mux[c] == item) + mute = 0; + break; + } + } + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, + idx, HDA_AMP_MUTE, mute); + } + } +} + /* add mic boosts if needed */ static int alc_auto_add_mic_boost(struct hda_codec *codec) { @@ -6491,6 +6524,7 @@ static void alc882_auto_init(struct hda_codec *codec) alc882_auto_init_multi_out(codec); alc882_auto_init_hp_out(codec); alc882_auto_init_analog_input(codec); + alc882_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -8285,6 +8319,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) } } +#define alc883_auto_init_input_src alc882_auto_init_input_src + /* almost identical with ALC880 parser... */ static int alc883_parse_auto_config(struct hda_codec *codec) { @@ -8315,6 +8351,7 @@ static void alc883_auto_init(struct hda_codec *codec) alc883_auto_init_multi_out(codec); alc883_auto_init_hp_out(codec); alc883_auto_init_analog_input(codec); + alc883_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -9663,6 +9700,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) #define alc262_auto_init_multi_out alc882_auto_init_multi_out #define alc262_auto_init_hp_out alc882_auto_init_hp_out #define alc262_auto_init_analog_input alc882_auto_init_analog_input +#define alc262_auto_init_input_src alc882_auto_init_input_src /* init callback for auto-configuration model -- overriding the default init */ @@ -9672,6 +9710,7 @@ static void alc262_auto_init(struct hda_codec *codec) alc262_auto_init_multi_out(codec); alc262_auto_init_hp_out(codec); alc262_auto_init_analog_input(codec); + alc262_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -13330,6 +13369,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) } } +#define alc861vd_auto_init_input_src alc882_auto_init_input_src + #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) @@ -13512,6 +13553,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) alc861vd_auto_init_multi_out(codec); alc861vd_auto_init_hp_out(codec); alc861vd_auto_init_analog_input(codec); + alc861vd_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -14677,6 +14719,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) } } +#define alc662_auto_init_input_src alc882_auto_init_input_src + static int alc662_parse_auto_config(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -14733,6 +14777,7 @@ static void alc662_auto_init(struct hda_codec *codec) alc662_auto_init_multi_out(codec); alc662_auto_init_hp_out(codec); alc662_auto_init_analog_input(codec); + alc662_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } ^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-15 22:01 ` Daniel J Blueman @ 2008-08-16 8:38 ` Takashi Iwai 2008-08-16 13:37 ` Daniel J Blueman 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-08-16 8:38 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel At Fri, 15 Aug 2008 23:01:42 +0100, Daniel J Blueman wrote: > > Hi Takashi, > > On Fri, Aug 15, 2008 at 3:42 PM, Takashi Iwai <tiwai@suse.de> wrote: > > At Thu, 14 Aug 2008 20:10:03 +0100, > > Daniel J Blueman wrote: > >> > >> Hi Takashi, > >> > >> I am still finding this recording +ve saturation on my ALC883 Intel > >> HDA sound device with 2.6.27-rc3 (ie ALSA 1.0.17 drivers) and ALSA > >> 1.0.16-1 libraries on Ubuntu Intrepid. > >> > >> The previous workaround still 'gets us out of jail': > >> > >> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 > >> nid = 0x23, verb = 0x300, param = 0x7180 > >> value = 0x0 > > > > Could you try the patch below? With this patch, unused connections > > will be disabled. Let me know if it really works so that I can merge > > it to git tree. > > > > Takashi > > > > --- > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > > index 9473abb..6f0485a 100644 > > --- a/sound/pci/hda/patch_realtek.c > > +++ b/sound/pci/hda/patch_realtek.c > > @@ -6442,6 +6442,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) > > } > > } > > > > +static void alc882_auto_init_input_src(struct hda_codec *codec) > > +{ > > + struct alc_spec *spec = codec->spec; > > + const struct hda_input_mux *imux = spec->input_mux; > > + int c; > > + > > + for (c = 0; c < spec->num_adc_nids; c++) { > > + hda_nid_t conn_list[10]; > > + hda_nid_t nid = spec->capsrc_nids[c]; > > + int conns, mute, idx, item; > > + > > + conns = snd_hda_get_connections(codec, nid, conn_list, > > + ARRAY_SIZE(conn_list)); > > + if (conns < 0) > > + continue; > > + mute = HDA_AMP_MUTE; > > + for (idx = 0; idx < conns; idx++) { > > + /* if the current connection is the selected one, > > + * unmute it as default - otherwise mute it > > + */ > > + for (item = 0; item < imux->num_items; item++) { > > + if (imux->items[item].index == idx) { > > + if (spec->cur_mux[c] == item) > > + mute = 0; > > + break; > > + } > > + } > > + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, > > + idx, HDA_AMP_MUTE, mute); > > + } > > + > > + } > > +} > > + > > /* add mic boosts if needed */ > > static int alc_auto_add_mic_boost(struct hda_codec *codec) > > { > > @@ -6496,6 +6530,7 @@ static void alc882_auto_init(struct hda_codec *codec) > > alc882_auto_init_multi_out(codec); > > alc882_auto_init_hp_out(codec); > > alc882_auto_init_analog_input(codec); > > + alc882_auto_init_input_src(codec); > > if (spec->unsol_event) > > alc_sku_automute(codec); > > } > > @@ -8290,6 +8325,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) > > } > > } > > > > +#define alc883_auto_init_input_src alc882_auto_init_input_src > > + > > /* almost identical with ALC880 parser... */ > > static int alc883_parse_auto_config(struct hda_codec *codec) > > { > > @@ -8320,6 +8357,7 @@ static void alc883_auto_init(struct hda_codec *codec) > > alc883_auto_init_multi_out(codec); > > alc883_auto_init_hp_out(codec); > > alc883_auto_init_analog_input(codec); > > + alc883_auto_init_input_src(codec); > > if (spec->unsol_event) > > alc_sku_automute(codec); > > } > > @@ -9703,6 +9741,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) > > #define alc262_auto_init_multi_out alc882_auto_init_multi_out > > #define alc262_auto_init_hp_out alc882_auto_init_hp_out > > #define alc262_auto_init_analog_input alc882_auto_init_analog_input > > +#define alc262_auto_init_input_src alc882_auto_init_input_src > > > > > > /* init callback for auto-configuration model -- overriding the default init */ > > @@ -9712,6 +9751,7 @@ static void alc262_auto_init(struct hda_codec *codec) > > alc262_auto_init_multi_out(codec); > > alc262_auto_init_hp_out(codec); > > alc262_auto_init_analog_input(codec); > > + alc262_auto_init_input_src(codec); > > if (spec->unsol_event) > > alc_sku_automute(codec); > > } > > @@ -13382,6 +13422,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) > > } > > } > > > > +#define alc861vd_auto_init_input_src alc882_auto_init_input_src > > + > > #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) > > #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) > > > > @@ -13564,6 +13606,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) > > alc861vd_auto_init_multi_out(codec); > > alc861vd_auto_init_hp_out(codec); > > alc861vd_auto_init_analog_input(codec); > > + alc861vd_auto_init_input_src(codec); > > if (spec->unsol_event) > > alc_sku_automute(codec); > > } > > @@ -14729,6 +14772,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) > > } > > } > > > > +#define alc662_auto_init_input_src alc882_auto_init_input_src > > + > > static int alc662_parse_auto_config(struct hda_codec *codec) > > { > > struct alc_spec *spec = codec->spec; > > @@ -14785,6 +14830,7 @@ static void alc662_auto_init(struct hda_codec *codec) > > alc662_auto_init_multi_out(codec); > > alc662_auto_init_hp_out(codec); > > alc662_auto_init_analog_input(codec); > > + alc662_auto_init_input_src(codec); > > if (spec->unsol_event) > > alc_sku_automute(codec); > > } > > There were a couple of issues: getting the mute logic right from > moving the assignment and increasing the number of inputs beyond the > 11 required here to avoid the 'Too many connections' message and > fixing the last input being skipped. Oh I should have more carefully checked. > With the updated patch, the problem is fully addressed; no resulting > DC offset, so recording quality is great. This seems logically safe > and a hopeful for 2.6.27-rc4... > > The updated patch is against 2.6.27-rc3. Thanks. There is another problem in the current patch. It should use snd_hda_codec_write() without caching. Otherwise it breaks the suspend/resume. The revised patch is below. Please test and report back if it works so that I can push it to the upstream. thanks, Takashi === commit 340c6e7d8bc26354313fe8bacc636ca18f71995e Author: Takashi Iwai <tiwai@suse.de> Date: Fri Aug 15 16:46:42 2008 +0200 ALSA: hda - Fix capture source widgets on ALC codecs On some Realtek codecs like ALC882 or ALC883, the capture source is no mux but sum widget. We have to initialize all channels properly for this type, otherwise noises may come in from the unused route. The patch assures to mute unused routes, and unmute the currently selected route. Signed-off-by: Takashi Iwai <tiwai@suse.de> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index add4e87..56d899f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6437,6 +6437,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) } } +static void alc882_auto_init_input_src(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + const struct hda_input_mux *imux = spec->input_mux; + int c; + + for (c = 0; c < spec->num_adc_nids; c++) { + hda_nid_t conn_list[10]; + hda_nid_t nid = spec->capsrc_nids[c]; + int conns, mute, idx, item; + + conns = snd_hda_get_connections(codec, nid, conn_list, + ARRAY_SIZE(conn_list)); + if (conns < 0) + continue; + mute = HDA_AMP_MUTE; + for (idx = 0; idx < conns; idx++) { + /* if the current connection is the selected one, + * unmute it as default - otherwise mute it + */ + for (item = 0; item < imux->num_items; item++) { + if (imux->items[item].index == idx) { + if (spec->cur_mux[c] == item) + mute = 0; + break; + } + } + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, + idx, HDA_AMP_MUTE, mute); + } + + } +} + /* add mic boosts if needed */ static int alc_auto_add_mic_boost(struct hda_codec *codec) { @@ -6491,6 +6525,7 @@ static void alc882_auto_init(struct hda_codec *codec) alc882_auto_init_multi_out(codec); alc882_auto_init_hp_out(codec); alc882_auto_init_analog_input(codec); + alc882_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -8285,6 +8320,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) } } +#define alc883_auto_init_input_src alc882_auto_init_input_src + /* almost identical with ALC880 parser... */ static int alc883_parse_auto_config(struct hda_codec *codec) { @@ -8315,6 +8352,7 @@ static void alc883_auto_init(struct hda_codec *codec) alc883_auto_init_multi_out(codec); alc883_auto_init_hp_out(codec); alc883_auto_init_analog_input(codec); + alc883_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -9663,6 +9701,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) #define alc262_auto_init_multi_out alc882_auto_init_multi_out #define alc262_auto_init_hp_out alc882_auto_init_hp_out #define alc262_auto_init_analog_input alc882_auto_init_analog_input +#define alc262_auto_init_input_src alc882_auto_init_input_src /* init callback for auto-configuration model -- overriding the default init */ @@ -9672,6 +9711,7 @@ static void alc262_auto_init(struct hda_codec *codec) alc262_auto_init_multi_out(codec); alc262_auto_init_hp_out(codec); alc262_auto_init_analog_input(codec); + alc262_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -13330,6 +13370,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) } } +#define alc861vd_auto_init_input_src alc882_auto_init_input_src + #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) @@ -13512,6 +13554,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) alc861vd_auto_init_multi_out(codec); alc861vd_auto_init_hp_out(codec); alc861vd_auto_init_analog_input(codec); + alc861vd_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -14677,6 +14720,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) } } +#define alc662_auto_init_input_src alc882_auto_init_input_src + static int alc662_parse_auto_config(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -14733,6 +14778,7 @@ static void alc662_auto_init(struct hda_codec *codec) alc662_auto_init_multi_out(codec); alc662_auto_init_hp_out(codec); alc662_auto_init_analog_input(codec); + alc662_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } ^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-16 8:38 ` Takashi Iwai @ 2008-08-16 13:37 ` Daniel J Blueman 2008-08-16 17:00 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-08-16 13:37 UTC (permalink / raw) To: Takashi Iwai; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel Hi Takashi and thanks, On Sat, Aug 16, 2008 at 9:38 AM, Takashi Iwai <tiwai@suse.de> wrote: > At Fri, 15 Aug 2008 23:01:42 +0100, > Daniel J Blueman wrote: >> >> Hi Takashi, >> >> On Fri, Aug 15, 2008 at 3:42 PM, Takashi Iwai <tiwai@suse.de> wrote: >> > At Thu, 14 Aug 2008 20:10:03 +0100, >> > Daniel J Blueman wrote: >> >> >> >> Hi Takashi, >> >> >> >> I am still finding this recording +ve saturation on my ALC883 Intel >> >> HDA sound device with 2.6.27-rc3 (ie ALSA 1.0.17 drivers) and ALSA >> >> 1.0.16-1 libraries on Ubuntu Intrepid. >> >> >> >> The previous workaround still 'gets us out of jail': >> >> >> >> # ./hda-verb /dev/snd/hwC0D0 0x23 SET_AMP_GAIN_MUTE 0x7180 >> >> nid = 0x23, verb = 0x300, param = 0x7180 >> >> value = 0x0 >> > >> > Could you try the patch below? With this patch, unused connections >> > will be disabled. Let me know if it really works so that I can merge >> > it to git tree. >> > >> > Takashi >> > >> > --- >> > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c >> > index 9473abb..6f0485a 100644 >> > --- a/sound/pci/hda/patch_realtek.c >> > +++ b/sound/pci/hda/patch_realtek.c >> > @@ -6442,6 +6442,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) >> > } >> > } >> > >> > +static void alc882_auto_init_input_src(struct hda_codec *codec) >> > +{ >> > + struct alc_spec *spec = codec->spec; >> > + const struct hda_input_mux *imux = spec->input_mux; >> > + int c; >> > + >> > + for (c = 0; c < spec->num_adc_nids; c++) { >> > + hda_nid_t conn_list[10]; >> > + hda_nid_t nid = spec->capsrc_nids[c]; >> > + int conns, mute, idx, item; >> > + >> > + conns = snd_hda_get_connections(codec, nid, conn_list, >> > + ARRAY_SIZE(conn_list)); >> > + if (conns < 0) >> > + continue; >> > + mute = HDA_AMP_MUTE; >> > + for (idx = 0; idx < conns; idx++) { >> > + /* if the current connection is the selected one, >> > + * unmute it as default - otherwise mute it >> > + */ >> > + for (item = 0; item < imux->num_items; item++) { >> > + if (imux->items[item].index == idx) { >> > + if (spec->cur_mux[c] == item) >> > + mute = 0; >> > + break; >> > + } >> > + } >> > + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, >> > + idx, HDA_AMP_MUTE, mute); >> > + } >> > + >> > + } >> > +} >> > + >> > /* add mic boosts if needed */ >> > static int alc_auto_add_mic_boost(struct hda_codec *codec) >> > { >> > @@ -6496,6 +6530,7 @@ static void alc882_auto_init(struct hda_codec *codec) >> > alc882_auto_init_multi_out(codec); >> > alc882_auto_init_hp_out(codec); >> > alc882_auto_init_analog_input(codec); >> > + alc882_auto_init_input_src(codec); >> > if (spec->unsol_event) >> > alc_sku_automute(codec); >> > } >> > @@ -8290,6 +8325,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) >> > } >> > } >> > >> > +#define alc883_auto_init_input_src alc882_auto_init_input_src >> > + >> > /* almost identical with ALC880 parser... */ >> > static int alc883_parse_auto_config(struct hda_codec *codec) >> > { >> > @@ -8320,6 +8357,7 @@ static void alc883_auto_init(struct hda_codec *codec) >> > alc883_auto_init_multi_out(codec); >> > alc883_auto_init_hp_out(codec); >> > alc883_auto_init_analog_input(codec); >> > + alc883_auto_init_input_src(codec); >> > if (spec->unsol_event) >> > alc_sku_automute(codec); >> > } >> > @@ -9703,6 +9741,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) >> > #define alc262_auto_init_multi_out alc882_auto_init_multi_out >> > #define alc262_auto_init_hp_out alc882_auto_init_hp_out >> > #define alc262_auto_init_analog_input alc882_auto_init_analog_input >> > +#define alc262_auto_init_input_src alc882_auto_init_input_src >> > >> > >> > /* init callback for auto-configuration model -- overriding the default init */ >> > @@ -9712,6 +9751,7 @@ static void alc262_auto_init(struct hda_codec *codec) >> > alc262_auto_init_multi_out(codec); >> > alc262_auto_init_hp_out(codec); >> > alc262_auto_init_analog_input(codec); >> > + alc262_auto_init_input_src(codec); >> > if (spec->unsol_event) >> > alc_sku_automute(codec); >> > } >> > @@ -13382,6 +13422,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) >> > } >> > } >> > >> > +#define alc861vd_auto_init_input_src alc882_auto_init_input_src >> > + >> > #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) >> > #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) >> > >> > @@ -13564,6 +13606,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) >> > alc861vd_auto_init_multi_out(codec); >> > alc861vd_auto_init_hp_out(codec); >> > alc861vd_auto_init_analog_input(codec); >> > + alc861vd_auto_init_input_src(codec); >> > if (spec->unsol_event) >> > alc_sku_automute(codec); >> > } >> > @@ -14729,6 +14772,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) >> > } >> > } >> > >> > +#define alc662_auto_init_input_src alc882_auto_init_input_src >> > + >> > static int alc662_parse_auto_config(struct hda_codec *codec) >> > { >> > struct alc_spec *spec = codec->spec; >> > @@ -14785,6 +14830,7 @@ static void alc662_auto_init(struct hda_codec *codec) >> > alc662_auto_init_multi_out(codec); >> > alc662_auto_init_hp_out(codec); >> > alc662_auto_init_analog_input(codec); >> > + alc662_auto_init_input_src(codec); >> > if (spec->unsol_event) >> > alc_sku_automute(codec); >> > } >> >> There were a couple of issues: getting the mute logic right from >> moving the assignment and increasing the number of inputs beyond the >> 11 required here to avoid the 'Too many connections' message and >> fixing the last input being skipped. > > Oh I should have more carefully checked. > >> With the updated patch, the problem is fully addressed; no resulting >> DC offset, so recording quality is great. This seems logically safe >> and a hopeful for 2.6.27-rc4... >> >> The updated patch is against 2.6.27-rc3. > > Thanks. There is another problem in the current patch. > It should use snd_hda_codec_write() without caching. Otherwise > it breaks the suspend/resume. > > The revised patch is below. Please test and report back if it works > so that I can push it to the upstream. > > > thanks, > > Takashi > > === > commit 340c6e7d8bc26354313fe8bacc636ca18f71995e > Author: Takashi Iwai <tiwai@suse.de> > Date: Fri Aug 15 16:46:42 2008 +0200 > > ALSA: hda - Fix capture source widgets on ALC codecs > > On some Realtek codecs like ALC882 or ALC883, the capture source is > no mux but sum widget. We have to initialize all channels properly > for this type, otherwise noises may come in from the unused route. > > The patch assures to mute unused routes, and unmute the currently > selected route. > > Signed-off-by: Takashi Iwai <tiwai@suse.de> > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index add4e87..56d899f 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -6437,6 +6437,40 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) > } > } > > +static void alc882_auto_init_input_src(struct hda_codec *codec) > +{ > + struct alc_spec *spec = codec->spec; > + const struct hda_input_mux *imux = spec->input_mux; > + int c; > + > + for (c = 0; c < spec->num_adc_nids; c++) { > + hda_nid_t conn_list[10]; > + hda_nid_t nid = spec->capsrc_nids[c]; > + int conns, mute, idx, item; > + > + conns = snd_hda_get_connections(codec, nid, conn_list, > + ARRAY_SIZE(conn_list)); > + if (conns < 0) > + continue; > + mute = HDA_AMP_MUTE; > + for (idx = 0; idx < conns; idx++) { > + /* if the current connection is the selected one, > + * unmute it as default - otherwise mute it > + */ > + for (item = 0; item < imux->num_items; item++) { > + if (imux->items[item].index == idx) { > + if (spec->cur_mux[c] == item) > + mute = 0; > + break; > + } > + } > + snd_hda_codec_amp_stereo(codec, nid, HDA_INPUT, > + idx, HDA_AMP_MUTE, mute); > + } > + > + } > +} > + > /* add mic boosts if needed */ > static int alc_auto_add_mic_boost(struct hda_codec *codec) > { > @@ -6491,6 +6525,7 @@ static void alc882_auto_init(struct hda_codec *codec) > alc882_auto_init_multi_out(codec); > alc882_auto_init_hp_out(codec); > alc882_auto_init_analog_input(codec); > + alc882_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -8285,6 +8320,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc883_auto_init_input_src alc882_auto_init_input_src > + > /* almost identical with ALC880 parser... */ > static int alc883_parse_auto_config(struct hda_codec *codec) > { > @@ -8315,6 +8352,7 @@ static void alc883_auto_init(struct hda_codec *codec) > alc883_auto_init_multi_out(codec); > alc883_auto_init_hp_out(codec); > alc883_auto_init_analog_input(codec); > + alc883_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -9663,6 +9701,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) > #define alc262_auto_init_multi_out alc882_auto_init_multi_out > #define alc262_auto_init_hp_out alc882_auto_init_hp_out > #define alc262_auto_init_analog_input alc882_auto_init_analog_input > +#define alc262_auto_init_input_src alc882_auto_init_input_src > > > /* init callback for auto-configuration model -- overriding the default init */ > @@ -9672,6 +9711,7 @@ static void alc262_auto_init(struct hda_codec *codec) > alc262_auto_init_multi_out(codec); > alc262_auto_init_hp_out(codec); > alc262_auto_init_analog_input(codec); > + alc262_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -13330,6 +13370,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc861vd_auto_init_input_src alc882_auto_init_input_src > + > #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) > #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) > > @@ -13512,6 +13554,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) > alc861vd_auto_init_multi_out(codec); > alc861vd_auto_init_hp_out(codec); > alc861vd_auto_init_analog_input(codec); > + alc861vd_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -14677,6 +14720,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc662_auto_init_input_src alc882_auto_init_input_src > + > static int alc662_parse_auto_config(struct hda_codec *codec) > { > struct alc_spec *spec = codec->spec; > @@ -14733,6 +14778,7 @@ static void alc662_auto_init(struct hda_codec *codec) > alc662_auto_init_multi_out(codec); > alc662_auto_init_hp_out(codec); > alc662_auto_init_analog_input(codec); > + alc662_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } This patch is first one you sent, except differing line numbers (rediffed against 2.6.27-rc3?). You could try attaching the patch to the mail too, to avoid the line wrapping, silent whitespace conversion and any gmail/mailer 'hide quoted text' mangling... Thanks, Daniel -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-16 13:37 ` Daniel J Blueman @ 2008-08-16 17:00 ` Takashi Iwai 2008-08-16 17:33 ` Daniel J Blueman 0 siblings, 1 reply; 41+ messages in thread From: Takashi Iwai @ 2008-08-16 17:00 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel At Sat, 16 Aug 2008 14:37:37 +0100, Daniel J Blueman wrote: > > This patch is first one you sent, except differing line numbers > (rediffed against 2.6.27-rc3?). Oops, I forgot to refresh it. Below is the right one. > You could try attaching the patch to the mail too, to avoid the line > wrapping, silent whitespace conversion and any gmail/mailer 'hide > quoted text' mangling... On LKML, the patches should be inlined. And, you can save a raw file even via gmail, too... Takashi [PATCH] ALSA: hda - Fix capture source widgets on ALC codecs On some Realtek codecs like ALC882 or ALC883, the capture source is no mux but sum widget. We have to initialize all channels properly for this type, otherwise noises may come in from the unused route. The patch assures to mute unused routes, and unmute the currently selected route. Signed-off-by: Takashi Iwai <tiwai@suse.de> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index add4e87..b80e725 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6437,6 +6437,39 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) } } +static void alc882_auto_init_input_src(struct hda_codec *codec) +{ + struct alc_spec *spec = codec->spec; + const struct hda_input_mux *imux = spec->input_mux; + int c; + + for (c = 0; c < spec->num_adc_nids; c++) { + hda_nid_t conn_list[HDA_MAX_NUM_INPUTS]; + hda_nid_t nid = spec->capsrc_nids[c]; + int conns, mute, idx, item; + + conns = snd_hda_get_connections(codec, nid, conn_list, + ARRAY_SIZE(conn_list)); + if (conns < 0) + continue; + for (idx = 0; idx < conns; idx++) { + /* if the current connection is the selected one, + * unmute it as default - otherwise mute it + */ + mute = AMP_IN_MUTE(idx); + for (item = 0; item < imux->num_items; item++) { + if (imux->items[item].index == idx) { + if (spec->cur_mux[c] == item) + mute = AMP_IN_UNMUTE(idx); + break; + } + } + snd_hda_codec_write(codec, nid, 0, + AC_VERB_SET_AMP_GAIN_MUTE, mute); + } + } +} + /* add mic boosts if needed */ static int alc_auto_add_mic_boost(struct hda_codec *codec) { @@ -6491,6 +6524,7 @@ static void alc882_auto_init(struct hda_codec *codec) alc882_auto_init_multi_out(codec); alc882_auto_init_hp_out(codec); alc882_auto_init_analog_input(codec); + alc882_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -8285,6 +8319,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) } } +#define alc883_auto_init_input_src alc882_auto_init_input_src + /* almost identical with ALC880 parser... */ static int alc883_parse_auto_config(struct hda_codec *codec) { @@ -8315,6 +8351,7 @@ static void alc883_auto_init(struct hda_codec *codec) alc883_auto_init_multi_out(codec); alc883_auto_init_hp_out(codec); alc883_auto_init_analog_input(codec); + alc883_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -9663,6 +9700,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) #define alc262_auto_init_multi_out alc882_auto_init_multi_out #define alc262_auto_init_hp_out alc882_auto_init_hp_out #define alc262_auto_init_analog_input alc882_auto_init_analog_input +#define alc262_auto_init_input_src alc882_auto_init_input_src /* init callback for auto-configuration model -- overriding the default init */ @@ -9672,6 +9710,7 @@ static void alc262_auto_init(struct hda_codec *codec) alc262_auto_init_multi_out(codec); alc262_auto_init_hp_out(codec); alc262_auto_init_analog_input(codec); + alc262_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -13330,6 +13369,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) } } +#define alc861vd_auto_init_input_src alc882_auto_init_input_src + #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) @@ -13512,6 +13553,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) alc861vd_auto_init_multi_out(codec); alc861vd_auto_init_hp_out(codec); alc861vd_auto_init_analog_input(codec); + alc861vd_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } @@ -14677,6 +14719,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) } } +#define alc662_auto_init_input_src alc882_auto_init_input_src + static int alc662_parse_auto_config(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; @@ -14733,6 +14777,7 @@ static void alc662_auto_init(struct hda_codec *codec) alc662_auto_init_multi_out(codec); alc662_auto_init_hp_out(codec); alc662_auto_init_analog_input(codec); + alc662_auto_init_input_src(codec); if (spec->unsol_event) alc_sku_automute(codec); } ^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-16 17:00 ` Takashi Iwai @ 2008-08-16 17:33 ` Daniel J Blueman 2008-08-17 8:04 ` Takashi Iwai 0 siblings, 1 reply; 41+ messages in thread From: Daniel J Blueman @ 2008-08-16 17:33 UTC (permalink / raw) To: Takashi Iwai; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel Hi Takashi, On Sat, Aug 16, 2008 at 6:00 PM, Takashi Iwai <tiwai@suse.de> wrote: > At Sat, 16 Aug 2008 14:37:37 +0100, > Daniel J Blueman wrote: >> >> This patch is first one you sent, except differing line numbers >> (rediffed against 2.6.27-rc3?). > > Oops, I forgot to refresh it. Below is the right one. > >> You could try attaching the patch to the mail too, to avoid the line >> wrapping, silent whitespace conversion and any gmail/mailer 'hide >> quoted text' mangling... > > On LKML, the patches should be inlined. > And, you can save a raw file even via gmail, too... > > Takashi > > > [PATCH] ALSA: hda - Fix capture source widgets on ALC codecs > > On some Realtek codecs like ALC882 or ALC883, the capture source is > no mux but sum widget. We have to initialize all channels properly > for this type, otherwise noises may come in from the unused route. > > The patch assures to mute unused routes, and unmute the currently > selected route. > > Signed-off-by: Takashi Iwai <tiwai@suse.de> > > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index add4e87..b80e725 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -6437,6 +6437,39 @@ static void alc882_auto_init_analog_input(struct hda_codec *codec) > } > } > > +static void alc882_auto_init_input_src(struct hda_codec *codec) > +{ > + struct alc_spec *spec = codec->spec; > + const struct hda_input_mux *imux = spec->input_mux; > + int c; > + > + for (c = 0; c < spec->num_adc_nids; c++) { > + hda_nid_t conn_list[HDA_MAX_NUM_INPUTS]; > + hda_nid_t nid = spec->capsrc_nids[c]; > + int conns, mute, idx, item; > + > + conns = snd_hda_get_connections(codec, nid, conn_list, > + ARRAY_SIZE(conn_list)); > + if (conns < 0) > + continue; > + for (idx = 0; idx < conns; idx++) { > + /* if the current connection is the selected one, > + * unmute it as default - otherwise mute it > + */ > + mute = AMP_IN_MUTE(idx); > + for (item = 0; item < imux->num_items; item++) { > + if (imux->items[item].index == idx) { > + if (spec->cur_mux[c] == item) > + mute = AMP_IN_UNMUTE(idx); > + break; > + } > + } > + snd_hda_codec_write(codec, nid, 0, > + AC_VERB_SET_AMP_GAIN_MUTE, mute); > + } > + } > +} > + > /* add mic boosts if needed */ > static int alc_auto_add_mic_boost(struct hda_codec *codec) > { > @@ -6491,6 +6524,7 @@ static void alc882_auto_init(struct hda_codec *codec) > alc882_auto_init_multi_out(codec); > alc882_auto_init_hp_out(codec); > alc882_auto_init_analog_input(codec); > + alc882_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -8285,6 +8319,8 @@ static void alc883_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc883_auto_init_input_src alc882_auto_init_input_src > + > /* almost identical with ALC880 parser... */ > static int alc883_parse_auto_config(struct hda_codec *codec) > { > @@ -8315,6 +8351,7 @@ static void alc883_auto_init(struct hda_codec *codec) > alc883_auto_init_multi_out(codec); > alc883_auto_init_hp_out(codec); > alc883_auto_init_analog_input(codec); > + alc883_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -9663,6 +9700,7 @@ static int alc262_parse_auto_config(struct hda_codec *codec) > #define alc262_auto_init_multi_out alc882_auto_init_multi_out > #define alc262_auto_init_hp_out alc882_auto_init_hp_out > #define alc262_auto_init_analog_input alc882_auto_init_analog_input > +#define alc262_auto_init_input_src alc882_auto_init_input_src > > > /* init callback for auto-configuration model -- overriding the default init */ > @@ -9672,6 +9710,7 @@ static void alc262_auto_init(struct hda_codec *codec) > alc262_auto_init_multi_out(codec); > alc262_auto_init_hp_out(codec); > alc262_auto_init_analog_input(codec); > + alc262_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -13330,6 +13369,8 @@ static void alc861vd_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc861vd_auto_init_input_src alc882_auto_init_input_src > + > #define alc861vd_idx_to_mixer_vol(nid) ((nid) + 0x02) > #define alc861vd_idx_to_mixer_switch(nid) ((nid) + 0x0c) > > @@ -13512,6 +13553,7 @@ static void alc861vd_auto_init(struct hda_codec *codec) > alc861vd_auto_init_multi_out(codec); > alc861vd_auto_init_hp_out(codec); > alc861vd_auto_init_analog_input(codec); > + alc861vd_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } > @@ -14677,6 +14719,8 @@ static void alc662_auto_init_analog_input(struct hda_codec *codec) > } > } > > +#define alc662_auto_init_input_src alc882_auto_init_input_src > + > static int alc662_parse_auto_config(struct hda_codec *codec) > { > struct alc_spec *spec = codec->spec; > @@ -14733,6 +14777,7 @@ static void alc662_auto_init(struct hda_codec *codec) > alc662_auto_init_multi_out(codec); > alc662_auto_init_hp_out(codec); > alc662_auto_init_analog_input(codec); > + alc662_auto_init_input_src(codec); > if (spec->unsol_event) > alc_sku_automute(codec); > } The updated patch validates fully also. Checking everything with codecgraph and varying both capture inputs looks as expected, so thanks again! Tested-by: Daniel J Blueman <daniel.blueman@gmail.com> Daniel -- Daniel J Blueman ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-08-16 17:33 ` Daniel J Blueman @ 2008-08-17 8:04 ` Takashi Iwai 0 siblings, 0 replies; 41+ messages in thread From: Takashi Iwai @ 2008-08-17 8:04 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Vegard Nossum, Romano Giannetti, Linux Kernel At Sat, 16 Aug 2008 18:33:33 +0100, Daniel J Blueman wrote: > > The updated patch validates fully also. Checking everything with > codecgraph and varying both capture inputs looks as expected, so > thanks again! > > Tested-by: Daniel J Blueman <daniel.blueman@gmail.com> Great, thanks for your quick tests! I merged it to my tree and will send a pull request. Takashi ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-09 19:59 ALC883 recording troubles Daniel J Blueman 2008-06-10 5:59 ` Takashi Iwai @ 2008-06-10 12:22 ` Romano Giannetti 2008-06-10 12:53 ` Vegard Nossum 1 sibling, 1 reply; 41+ messages in thread From: Romano Giannetti @ 2008-06-10 12:22 UTC (permalink / raw) To: Daniel J Blueman; +Cc: Takashi Iwai, Linux Kernel On Mon, 2008-06-09 at 20:59 +0100, Daniel J Blueman wrote: > > I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 > LTS x86-64). I can see on Audacity that the DC offset that varies with > the recording capture level. Probably the same as https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3824 I thought I was the only one seeing that, given the answers I got... > What's the routine to debug this? Would it help to install windows, > dump the register space and compare? I am available to help, too. My card works quite well, modulo the mic problem and a lower output than in Vista, and I'd love to see it solved. Romano -- Sorry for the disclaimer --- ¡I cannot stop it! -- La presente comunicación tiene carácter confidencial y es para el exclusivo uso del destinatario indicado en la misma. Si Ud. no es el destinatario indicado, le informamos que cualquier forma de distribución, reproducción o uso de esta comunicación y/o de la información contenida en la misma están estrictamente prohibidos por la ley. Si Ud. ha recibido esta comunicación por error, por favor, notifíquelo inmediatamente al remitente contestando a este mensaje y proceda a continuación a destruirlo. Gracias por su colaboración. This communication contains confidential information. It is for the exclusive use of the intended addressee. If you are not the intended addressee, please note that any form of distribution, copying or use of this communication or the information in it is strictly prohibited by law. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy this message. Thank you for your cooperation. ^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: ALC883 recording troubles... 2008-06-10 12:22 ` Romano Giannetti @ 2008-06-10 12:53 ` Vegard Nossum 0 siblings, 0 replies; 41+ messages in thread From: Vegard Nossum @ 2008-06-10 12:53 UTC (permalink / raw) To: Romano Giannetti, Takashi Iwai; +Cc: Daniel J Blueman, Linux Kernel On Tue, Jun 10, 2008 at 2:22 PM, Romano Giannetti <romanol@upcomillas.es> wrote: > > On Mon, 2008-06-09 at 20:59 +0100, Daniel J Blueman wrote: >> >> I'm experiencing DC offset with the microphone on 2.6.24 (Ubuntu 8.04 >> LTS x86-64). I can see on Audacity that the DC offset that varies with >> the recording capture level. > > Probably the same as > https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3824 > > I thought I was the only one seeing that, given the answers I got... > >> What's the routine to debug this? Would it help to install windows, >> dump the register space and compare? > > I am available to help, too. My card works quite well, modulo the mic > problem and a lower output than in Vista, and I'd love to see it solved. FWIW, I'm seeing this problem as well (ALC268 too) on my Acer Aspire 5720Z laptop. Dupes of this bug report are NOT hard to find: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3609 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3637 https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3897 (reported by me) https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3930 ...probably more Please, if there's anything I can do to fix this, I will. I can apply and test patches, no problem. I'm attaching my own alsa-info.txt in case it helps. Thanks. Vegard -- !!################################ !!ALSA Information Script v 0.4.48 !!################################ !!Script ran on: Tue Jun 10 14:45:23 CEST 2008 !!Linux Distribution !!------------------ Fedora release 8 (Werewolf) Fedora release 8 (Werewolf) Fedora release 8 (Werewolf) Fedora release 8 (Werewolf) !!Kernel Information !!------------------ Kernel release: 2.6.24.5-85.fc8 Operating System: GNU/Linux Architecture: i686 Processor: i686 SMP Enabled: Yes !!ALSA Version !!------------ Driver version: 1.0.16 Library version: 1.0.15 Utilities version: 1.0.15 !!Loaded ALSA modules !!------------------- snd_hda_intel !!Soundcards recognised by ALSA !!----------------------------- 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0x9b300000 irq 22 !!PCI Soundcards installed in the system !!-------------------------------------- 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03) !!Advanced information - PCI Vendor/Device/Susbsystem ID's !!-------------------------------------------------------- 00:1b.0 0403: 8086:284b (rev 03) Subsystem: 1025:011e !!Modprobe options (Sound related) !!-------------------------------- snd-card-0: index=0 snd-hda-intel: index=0 !!Loaded sound module options !!-------------------------- !!Module: snd_hda_intel enable : Y,Y,Y,Y,Y,Y,Y,Y enable_msi : 0 id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> index : 0,-1,-1,-1,-1,-1,-1,-1 model : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL> position_fix : 0,0,0,0,0,0,0,0 power_save : 0 power_save_controller : Y probe_mask : -1,-1,-1,-1,-1,-1,-1,-1 single_cmd : N !!HDA-Intel Codec information !!--------------------------- --startcollapse-- Codec: Realtek ALC268 Address: 0 Vendor Id: 0x10ec0268 Subsystem Id: 0x1025011e Revision Id: 0x100003 No Modem Function Group found Default PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=4, o=0, i=0, unsolicited=1, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0 IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0 Node 0x02 [Audio Output] wcaps 0x1d: Stereo Amp-Out Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x28 0x28] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x03 [Audio Output] wcaps 0x1d: Stereo Amp-Out Amp-Out caps: ofs=0x40, nsteps=0x40, stepsize=0x03, mute=0 Amp-Out vals: [0x28 0x28] Converter: stream=5, channel=0 PCM: rates [0x560]: 44100 48000 96000 192000 bits [0xe]: 16 20 24 formats [0x1]: PCM Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x06 [Audio Output] wcaps 0x211: Stereo Digital Converter: stream=0, channel=0 Digital: Digital category: 0x0 PCM: rates [0x5e0]: 44100 48000 88200 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x1]: PCM Node 0x07 [Audio Input] wcaps 0x100111: Stereo Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x160]: 44100 48000 96000 bits [0x6]: 16 20 formats [0x1]: PCM Connection: 1 0x24 Node 0x08 [Audio Input] wcaps 0x100111: Stereo Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x160]: 44100 48000 96000 bits [0x6]: 16 20 formats [0x1]: PCM Connection: 1 0x23 Node 0x09 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x0e [Audio Mixer] wcaps 0x20010a: Mono Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00] Connection: 1 0x02 Node 0x0f [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] Connection: 2 0x02 0x1d Node 0x10 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-In vals: [0x00 0x00] [0x80 0x80] [0x80 0x80] Connection: 3 0x03 0x1d 0x02 Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x12 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x13 [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x14 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x081003c: IN OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x0221101f: [Jack] HP Out at Ext Front Conn = 1/8, Color = Black DefAssociation = 0x1, Sequence = 0xf Pin-ctls: 0xc0: OUT HP Unsolicited: tag=04, enabled=1 Connection: 1 0x0f Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x081003c: IN OUT HP EAPD Detect EAPD 0x2: EAPD Pin Default 0x99130110: [Fixed] Speaker at Int ATAPI Conn = ATAPI, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x10 Node 0x16 [Pin Complex] wcaps 0x40010c: Mono Amp-Out Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80] Pincap 0x0810: OUT Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Connection: 1 0x0e Node 0x17 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x18 [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x083734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x02a19840: [Jack] Mic at Ext Front Conn = 1/8, Color = Pink DefAssociation = 0x4, Sequence = 0x0 Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 1 0x02 Node 0x19 [Pin Complex] wcaps 0x40008b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x083724: IN Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x99a30941: [Fixed] Mic at Int ATAPI Conn = ATAPI, Color = Unknown DefAssociation = 0x4, Sequence = 0x1 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Node 0x1a [Pin Complex] wcaps 0x40018f: Stereo Amp-In Amp-Out Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x4f, mute=0 Amp-In vals: [0x00 0x00] Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x80 0x80] Pincap 0x083734: IN OUT Detect Vref caps: HIZ 50 GRD 80 100 Pin Default 0x0281304e: [Jack] Line In at Ext Front Conn = 1/8, Color = Blue DefAssociation = 0x4, Sequence = 0xe Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Connection: 1 0x02 Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x1c [Pin Complex] wcaps 0x400001: Stereo Pincap 0x0820: IN Pin Default 0x411111f0: [N/A] Speaker at Ext Rear Conn = 1/8, Color = Black DefAssociation = 0xf, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x1d [Pin Complex] wcaps 0x400000: Mono Pincap 0x0820: IN Pin Default 0x4017952d: [N/A] Speaker at Ext N/A Conn = Analog, Color = Pink DefAssociation = 0x2, Sequence = 0xd Misc = NO_PRESENCE Pin-ctls: 0x20: IN Node 0x1e [Pin Complex] wcaps 0x400380: Mono Digital Pincap 0x0810: OUT Pin Default 0x02451130: [Jack] SPDIF Out at Ext Front Conn = Optical, Color = Black DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x40: OUT Unsolicited: tag=00, enabled=0 Connection: 1 0x06 Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=10 Node 0x21 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x22 [Vendor Defined Widget] wcaps 0xf00000: Mono Node 0x23 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00 0x00] Connection: 7 0x18* 0x19 0x1a 0x1c 0x14 0x15 0x12 Node 0x24 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out Amp-Out caps: ofs=0x0b, nsteps=0x1f, stepsize=0x05, mute=1 Amp-Out vals: [0x00 0x00] Connection: 7 0x18* 0x19 0x1a 0x1c 0x14 0x15 0x13 Codec: Conexant ID 2c06 Address: 1 Vendor Id: 0x14f12c06 Subsystem Id: 0x1025011e Revision Id: 0x100000 Modem Function Group: 0x2 --endcollapse-- !!ALSA Device nodes !!----------------- crw-rw----+ 1 root root 116, 0 2008-06-10 13:01 /dev/snd/controlC0 crw-rw----+ 1 root root 116, 4 2008-06-10 13:01 /dev/snd/hwC0D0 crw-rw----+ 1 root root 116, 5 2008-06-10 13:01 /dev/snd/hwC0D1 crw-rw----+ 1 root root 116, 24 2008-06-10 13:02 /dev/snd/pcmC0D0c crw-rw----+ 1 root root 116, 16 2008-06-10 14:23 /dev/snd/pcmC0D0p crw-rw----+ 1 root root 116, 1 2008-06-10 13:01 /dev/snd/seq crw-rw----+ 1 root root 116, 33 2008-06-10 13:01 /dev/snd/timer !!ALSA configuration files !!------------------------ !!System wide config file (/etc/asound.conf) #Generated by system-config-soundcard #If you edit this file, don't run system-config-soundcard, #all your changes here could be lost. #SWCONF #DEV 0 defaults.pcm.card 0 defaults.pcm.device 0 defaults.ctl.card 0 !!Aplay/Arecord output !!------------ APLAY **** List of PLAYBACK Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 ARECORD **** List of CAPTURE Hardware Devices **** card 0: Intel [HDA Intel], device 0: ALC268 Analog [ALC268 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 !!Amixer output !!------------- !!-------Mixer controls for card 0 [Intel] Simple mixer control 'Master',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 64 Mono: Front Left: Playback 40 [62%] [-24.00dB] [on] Front Right: Playback 40 [62%] [-24.00dB] [on] Simple mixer control 'PCM',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 250 [98%] [-1.00dB] Front Right: Playback 250 [98%] [-1.00dB] Simple mixer control 'Line In Boost',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 2 Front Left: 0 [0%] Front Right: 0 [0%] Simple mixer control 'Mic Boost',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 2 Front Left: 0 [0%] Front Right: 0 [0%] Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 31 Front Left: Capture 0 [0%] [-16.50dB] [on] Front Right: Capture 0 [0%] [-16.50dB] [on] Simple mixer control 'Beep',0 Capabilities: pvolume pswitch Playback channels: Front Left - Front Right Limits: Playback 0 - 12 Mono: Front Left: Playback 0 [0%] [-24.00dB] [off] Front Right: Playback 0 [0%] [-24.00dB] [off] Simple mixer control 'Digital',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 0 [0%] [-30.00dB] Front Right: Capture 0 [0%] [-30.00dB] Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Mic' 'Internal Mic' 'Line' Item0: 'Mic' Simple mixer control 'Internal Mic Boost',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 2 Front Left: 0 [0%] Front Right: 0 [0%] !!Alsactl output !!------------- --startcollapse-- state.Intel { control.1 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 64' iface MIXER name 'Master Playback Volume' value.0 40 value.1 40 } control.2 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Master Playback Switch' value.0 true value.1 true } control.3 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 2' iface MIXER name 'Mic Boost' value.0 0 value.1 0 } control.4 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 2' iface MIXER name 'Internal Mic Boost' value.0 0 value.1 0 } control.5 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 2' iface MIXER name 'Line In Boost' value.0 0 value.1 0 } control.6 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 31' iface MIXER name 'Capture Volume' value.0 0 value.1 0 } control.7 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 true value.1 true } control.8 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 Mic comment.item.1 'Internal Mic' comment.item.2 Line iface MIXER name 'Input Source' value Mic } control.9 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 12' iface MIXER name 'Beep Playback Volume' value.0 0 value.1 0 } control.10 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Beep Playback Switch' value.0 false value.1 false } control.11 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 255' comment.tlv '0000000100000008ffffec1400000014' iface MIXER name 'PCM Playback Volume' value.0 250 value.1 250 } control.12 { comment.access 'read write user' comment.type INTEGER comment.count 2 comment.range '0 - 120' comment.tlv '0000000100000008fffff44800000032' iface MIXER name 'Digital Capture Volume' value.0 0 value.1 0 } } --endcollapse-- !!All Loaded Modules !!------------------ Module rfkill_input coretemp hwmon fuse cpufreq_ondemand acpi_cpufreq loop dm_multipath ipv6 snd_hda_intel snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device nvidia snd_pcm_oss snd_mixer_oss arc4 ecb blkcipher snd_pcm sr_mod cdrom b43 snd_timer snd_page_alloc rfkill snd_hwdep mac80211 snd cfg80211 uvcvideo compat_ioctl32 input_polldev firewire_ohci firewire_core sdhci video button ac battery tg3 output crc_itu_t mmc_core ricoh_mmc videodev ata_piix i2c_i801 soundcore v4l1_compat pcspkr iTCO_wdt pata_acpi v4l2_common iTCO_vendor_support ssb joydev ata_generic i2c_core sg dm_snapshot dm_zero dm_mirror dm_mod ahci libata sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd ^ permalink raw reply [flat|nested] 41+ messages in thread
end of thread, other threads:[~2008-08-17 8:04 UTC | newest]
Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-09 19:59 ALC883 recording troubles Daniel J Blueman
2008-06-10 5:59 ` Takashi Iwai
2008-06-11 19:00 ` Daniel J Blueman
2008-06-11 21:37 ` Daniel J Blueman
2008-06-12 10:45 ` Takashi Iwai
2008-06-12 10:49 ` Takashi Iwai
2008-06-12 13:03 ` Vegard Nossum
2008-06-12 13:12 ` Takashi Iwai
2008-06-12 13:48 ` Vegard Nossum
2008-06-12 13:52 ` Takashi Iwai
2008-06-12 13:55 ` Vegard Nossum
2008-06-12 14:01 ` Vegard Nossum
2008-06-12 14:13 ` Takashi Iwai
2008-06-12 14:02 ` Takashi Iwai
2008-06-12 14:18 ` Vegard Nossum
2008-06-12 14:23 ` Takashi Iwai
2008-06-12 14:58 ` Daniel J Blueman
2008-06-12 15:18 ` Takashi Iwai
2008-06-12 16:55 ` Vegard Nossum
2008-06-12 17:29 ` Vegard Nossum
2008-06-12 17:53 ` Takashi Iwai
2008-06-12 18:31 ` Vegard Nossum
2008-06-12 21:50 ` Daniel J Blueman
2008-06-13 10:38 ` Romano Giannetti
2008-06-28 0:05 ` Daniel J Blueman
[not found] ` <19f34abd0806280311s115062e6vc6d0f304cb744934@mail.gmail.com>
[not found] ` <6278d2220806280329j2f77c52dp8fbae78420c136c1@mail.gmail.com>
2008-06-28 12:29 ` Daniel J Blueman
2008-06-28 12:39 ` Vegard Nossum
2008-06-28 13:24 ` Daniel J Blueman
2008-06-28 13:46 ` Vegard Nossum
2008-06-29 17:29 ` Romano Giannetti
2008-06-29 21:33 ` Daniel J Blueman
2008-08-14 19:10 ` Daniel J Blueman
2008-08-15 14:42 ` Takashi Iwai
2008-08-15 22:01 ` Daniel J Blueman
2008-08-16 8:38 ` Takashi Iwai
2008-08-16 13:37 ` Daniel J Blueman
2008-08-16 17:00 ` Takashi Iwai
2008-08-16 17:33 ` Daniel J Blueman
2008-08-17 8:04 ` Takashi Iwai
2008-06-10 12:22 ` Romano Giannetti
2008-06-10 12:53 ` Vegard Nossum
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox