[alsa-devel] HDA intel, wired headset w/mic, jack mic detect
Hello,
I'm trying to get a wired headset with a mic working on MacBookAir running v3.0 (3.0.0-13-generic from Ubuntu to be precise.)
It has Intel HDA audio[1] and everything works fine, including the built-in mic. The only think I can't seem to get working is a headset w/mic.
I know the HW for dynamic detect works because the mic is detected dynamically under OSX. Is there some setting I need to tweak in order to enable the automatic mic detection?
Thanks for any pointers,
Kevin
[1] $ cat /proc/asound/cards 0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xa0600000 irq 46
On 02/23/2012 08:09 PM, Kevin Hilman wrote:
Hello,
I'm trying to get a wired headset with a mic working on MacBookAir running v3.0 (3.0.0-13-generic from Ubuntu to be precise.)
It has Intel HDA audio[1] and everything works fine, including the built-in mic. The only think I can't seem to get working is a headset w/mic.
I know the HW for dynamic detect works because the mic is detected dynamically under OSX. Is there some setting I need to tweak in order to enable the automatic mic detection?
Thanks for any pointers,
Hi Kevin,
You can try upgrading your alsa version to the daily snapshot using this method: https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
On Thu, Feb 23, 2012 at 10:25 PM, David Henningsson david.henningsson@canonical.com wrote:
On 02/23/2012 08:09 PM, Kevin Hilman wrote:
Hello,
I'm trying to get a wired headset with a mic working on MacBookAir running v3.0 (3.0.0-13-generic from Ubuntu to be precise.)
It has Intel HDA audio[1] and everything works fine, including the built-in mic. The only think I can't seem to get working is a headset w/mic.
I know the HW for dynamic detect works because the mic is detected dynamically under OSX. Is there some setting I need to tweak in order to enable the automatic mic detection?
Thanks for any pointers,
Hi Kevin,
You can try upgrading your alsa version to the daily snapshot using this method: https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
Hi David,
Thanks for the suggestion.
I tried the latest version but the headset mic still doesn't work. Are there any particular settings I should be configuring to make this work?
Note that the jack detect is working for the output. When I plug in the headset, it switches the playback from the speakers to the headset automatically, and I see the 'Connector' drop down in the output tab of the Sound settings switch between "Analog headpohones' and 'Analog speakers."
It seems there's still a problem detecting that the headset also has a mic.
Kevin
On Tue, Feb 28, 2012 at 09:55:18AM -0800, Hilman, Kevin wrote:
On Thu, Feb 23, 2012 at 10:25 PM, David Henningsson
On 02/23/2012 08:09 PM, Kevin Hilman wrote:
I'm trying to get a wired headset with a mic working on MacBookAir running v3.0 (3.0.0-13-generic from Ubuntu to be precise.)
You can try upgrading your alsa version to the daily snapshot using this method: https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
It seems there's still a problem detecting that the headset also has a mic.
David, FWIW this is one of the systems I'm thinking of when I say that headset is also an issue on HDA systems, not just for embedded devices.
2012/2/29, Hilman, Kevin khilman@ti.com:
On Thu, Feb 23, 2012 at 10:25 PM, David Henningsson david.henningsson@canonical.com wrote:
On 02/23/2012 08:09 PM, Kevin Hilman wrote:
Hello,
I'm trying to get a wired headset with a mic working on MacBookAir running v3.0 (3.0.0-13-generic from Ubuntu to be precise.)
It has Intel HDA audio[1] and everything works fine, including the built-in mic. The only think I can't seem to get working is a headset w/mic.
I know the HW for dynamic detect works because the mic is detected dynamically under OSX. Is there some setting I need to tweak in order to enable the automatic mic detection?
Thanks for any pointers,
Hi Kevin,
You can try upgrading your alsa version to the daily snapshot using this method: https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS
Hi David,
Thanks for the suggestion.
I tried the latest version but the headset mic still doesn't work. Are there any particular settings I should be configuring to make this work?
Note that the jack detect is working for the output. When I plug in the headset, it switches the playback from the speakers to the headset automatically, and I see the 'Connector' drop down in the output tab of the Sound settings switch between "Analog headpohones' and 'Analog speakers."
It seems there's still a problem detecting that the headset also has a mic.
Kevin
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
You can use David's hda-jack-sense-test to find out any jack sense at the node of External mic when you plug the headset , if not , you may need to modify unsol event of headphone to select the external mic , internal mic.
On Wed, Feb 29, 2012 at 11:05:25PM +0800, Raymond Yau wrote:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
You can use David's hda-jack-sense-test to find out any jack sense at the node of External mic when you plug the headset , if not , you may need to modify unsol event of headphone to select the external mic , internal mic.
Given that this is a MacBook Air it'll be the Apple pinout with ground on pin 3; any Apple headset and most third party ones ought to be happy.
Raymond Yau superquad.vortex2@gmail.com writes:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
But below, I tried with a normal stero headset (no mic) which has a TRS connector too.
You can use David's hda-jack-sense-test to find out any jack sense at the node of External mic when you plug the headset , if not , you may need to modify unsol event of headphone to select the external mic , internal mic.
Here are the results of hda-jack-sense-test
Nothing plugged in:
# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = No Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
With regular stereo headphones with (*no* mic, TRS):
# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = Yes Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
Finally, plugging the headset w/mic (TRRS):
root@eze:~# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = Yes Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
Since this is a MacBookAir, it dual-boots OSX, and the detection works just fine using the same headset under OSX.
Kevin
2012/3/1, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
But below, I tried with a normal stero headset (no mic) which has a TRS connector too.
You can use David's hda-jack-sense-test to find out any jack sense at the node of External mic when you plug the headset , if not , you may need to modify unsol event of headphone to select the external mic , internal mic.
Here are the results of hda-jack-sense-test
Nothing plugged in:
# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = No Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
With regular stereo headphones with (*no* mic, TRS):
# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = Yes Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
Finally, plugging the headset w/mic (TRRS):
root@eze:~# hda-jack-sense-test -a Pin 0x09 (Green HP Out): present = Yes Pin 0x0a (Not connected): present = No Pin 0x0b (Internal Speaker): present = No Pin 0x0c (Not connected): present = No Pin 0x0d (Internal Mic): present = No Pin 0x0e (Not connected): present = No Pin 0x0f (Not connected): present = No Pin 0x10 (Not connected): present = No Pin 0x12 (Not connected): present = No Pin 0x15 (Not connected): present = No
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
can you post the output of alsa-info.sh ?
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
you need to add the mic select code to the unsolicited event of hp automute speaker
present = snd_hda_jack_detect(codec, 0x9) ; if (present) select ext mic else select int mic
Since this is a MacBookAir, it dual-boots OSX, and the detection works just fine using the same headset under OSX.
Raymond Yau superquad.vortex2@gmail.com writes:
[...]
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
can you post the output of alsa-info.sh ?
below is the output when the headset w/mic is plugged in
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
I don't see any Mic at Ext, but I do see a 'Mic at Int' and it shows NO_PRESENCE.
Should I be seeing a 2 different Mics? one for internal one for external?
you need to add the mic select code to the unsolicited event of hp automute speaker
present = snd_hda_jack_detect(codec, 0x9) ; if (present) select ext mic
else select int mic
Not being an ALSA hacker, how exactly does one 'select ext mic' or 'select int mic'?
Looking at sound/pci/hda/patch_cirrus.c (which seems to be the codec I have), I see cs_automic() doing this. Would calling cs_automic() from cs_automute() when hp_present=1 do what you're suggesting?
Kevin
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.60 !!################################
!!Script ran on: Thu Mar 1 00:04:16 UTC 2012
!!Linux Distribution !!------------------
Ubuntu 11.10 \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 11.10"
!!DMI Information !!---------------
Manufacturer: Apple Inc. Product Name: MacBookAir4,1 Product Version: 1.0
!!Kernel Information !!------------------
Kernel release: 3.0.0-13-generic Operating System: GNU/Linux Architecture: x86_64 Processor: x86_64 SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: 1.0.24 Library version: 1.0.24.1 Utilities version: 1.0.24.2
!!Loaded ALSA modules !!-------------------
snd_hda_intel
!!Sound Servers on this system !!----------------------------
Pulseaudio: Installed - Yes (/usr/bin/pulseaudio) Running - Yes
ESound Daemon: Installed - Yes (/usr/bin/esd) Running - No
!!Soundcards recognised by ALSA !!-----------------------------
0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xa0600000 irq 46
!!PCI Soundcards installed in the system !!--------------------------------------
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
!!Advanced information - PCI Vendor/Device/Subsystem ID's !!--------------------------------------------------------
00:1b.0 0403: 8086:1c20 (rev 05) Subsystem: 8086:7270
!!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-caiaq: index=-2 snd-usb-ua101: index=-2 snd-usb-us122l: index=-2 snd-usb-usx2y: index=-2 snd-cmipci: mpu_port=0x330 fm_port=0x388 snd-pcsp: index=-2 snd-usb-audio: index=-2
!!Loaded sound module options !!--------------------------
!!Module: snd_hda_intel align_buffer_size : -1 bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 beep_mode : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y enable_msi : -1 id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 model : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) patch : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 single_cmd : N snoop : Y
!!HDA-Intel Codec information !!--------------------------- --startcollapse--
Codec: Cirrus Logic CS4206 Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x10134206 Subsystem Id: 0x106b6200 Revision Id: 0x100302 No Modem Function Group found Default PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=4, o=0, i=0, unsolicited=0, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Control: name="Master Playback Switch", index=0, device=0 Control: name="Master Playback Volume", index=0, device=0 Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0x31 0x31] Converter: stream=8, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x03 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0xf3 0xf3] Converter: stream=0, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x04 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0x80 0x80] Converter: stream=8, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0xb3 0xb3] [0xb3 0xb3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12 Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e Node 0x07 [Audio Input] wcaps 0x180791: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Preemphasis Copyright Digital category: 0x0 PCM: rates [0x570]: 32000 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x7]: PCM FLOAT AC3 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 1 0x0f Node 0x08 [Audio Output] wcaps 0x40611: 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 [0x7]: PCM FLOAT AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 4 samples Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02 Node 0x0a [Pin Complex] wcaps 0x410581: Stereo Pincap 0x00000054: OUT Detect Balanced Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x03 Node 0x0b [Pin Complex] wcaps 0x410101: Stereo Pincap 0x00000050: OUT Balanced Pin Default 0x90100120: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x2, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x04 Node 0x0c [Pin Complex] wcaps 0x41048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Node 0x0f [Pin Complex] wcaps 0x410681: Stereo Digital Pincap 0x00000024: IN Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x10 [Pin Complex] wcaps 0x410301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x08 Node 0x11 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=22 Node 0x12 [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Node 0x13 [Beep Generator Widget] wcaps 0x700000: Mono Node 0x14 [Audio Output] wcaps 0x40611: 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 [0x7]: PCM FLOAT AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 4 samples Node 0x15 [Pin Complex] wcaps 0x410301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x14 Codec: Intel CougarPoint HDMI Address: 3 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x80862805 Subsystem Id: 0x80860101 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 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=3 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=0, device=0 Control: name="IEC958 Playback Pro Mask", index=0, device=0 Control: name="IEC958 Playback Default", index=0, device=0 Control: name="IEC958 Playback Switch", index=0, device=0 Control: name="ELD", index=0, device=3 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x02 Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=7 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=1, device=0 Control: name="IEC958 Playback Pro Mask", index=1, device=0 Control: name="IEC958 Playback Default", index=1, device=0 Control: name="IEC958 Playback Switch", index=1, device=0 Control: name="ELD", index=0, device=7 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=02, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x03 Node 0x07 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=8 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=2, device=0 Control: name="IEC958 Playback Pro Mask", index=2, device=0 Control: name="IEC958 Playback Default", index=2, device=0 Control: name="IEC958 Playback Switch", index=2, device=0 Control: name="ELD", index=0, device=8 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=03, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x04 Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono --endcollapse--
2012/3/1, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
[...]
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
can you post the output of alsa-info.sh ?
below is the output when the headset w/mic is plugged in
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
I don't see any Mic at Ext, but I do see a 'Mic at Int' and it shows NO_PRESENCE.
Should I be seeing a 2 different Mics? one for internal one for external?
Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02
Headphone Conn=Combo but Pincap is OUTPUT only so it cannot be retasked as Input
Does internal mic work or not ?
It Int Mic is correct and 0x06 [Audio Input] is used ,
ext mic may be at 0x0e
you can use hda_analyzer to switch the connection at node 0x6 from 0x0d to 0x0e to test the external mic
Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e
Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
There are also other possibilities 0xc and 0x12 if 0x05 is used
Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0xb3 0xb3] [0xb3 0xb3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/1, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
[...]
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
can you post the output of alsa-info.sh ?
below is the output when the headset w/mic is plugged in
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
I don't see any Mic at Ext, but I do see a 'Mic at Int' and it shows NO_PRESENCE.
Should I be seeing a 2 different Mics? one for internal one for external?
Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02
Headphone Conn=Combo but Pincap is OUTPUT only so it cannot be retasked as Input
Does internal mic work or not ?
Yes, it works fine.
It Int Mic is correct and 0x06 [Audio Input] is used ,
ext mic may be at 0x0e
you can use hda_analyzer to switch the connection at node 0x6 from 0x0d to 0x0e to test the external mic
Here's what I tried:
Selecting Node 0x6, I changed the connection from 0xd to 0xe. Selecting Node 0xe, I checked the 'IN' box under Widget control (which is what 0xd had enabled.), then changed the Val[0] and Val[1] sliders from 0 to 2 under Input Amplifier.
Still no input detected from the headset mic.
FWIW, I'm using the 'Input level' indicator in the Input tab of the Sound settings in the Ubuntu control panel to check if the input is working.
Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e
Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
There are also other possibilities 0xc and 0x12 if 0x05 is used
Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0xb3 0xb3] [0xb3 0xb3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12
OK, I selected Node 0x5, and un-checked the mute box for the 4 sliders under Input amplifier, and increased the sliders to the max of 63. The 0xc connection was the default, so I started with that one. Selecting Node 0xc, I checked the 'IN' box under widget control and changed the 2 Val sliders under Input Amplifier from 0 to 3.
Still nothing detected on headset mic.
Under 0x05, I then selected the 0x12 connection. Selecting Node 0x12, I again selected the 'IN' box under widget control and increased the 2 Val sliders from 0 to 3.
Still nothing.
Kevin
2012/3/2, Kevin Hilman khilman@ti.com:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
can you post the output of alsa-info.sh ?
below is the output when the headset w/mic is plugged in
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
I don't see any Mic at Ext, but I do see a 'Mic at Int' and it shows NO_PRESENCE.
Should I be seeing a 2 different Mics? one for internal one for external?
the functions parse_input() and change_cur_input() in patch_cirrus.c seem expect ext mic and int mic for auto mic detection
e.g.
/* check whether the automatic mic switch is available */ if (spec->num_inputs == 2 && cfg->inputs[0].type == AUTO_PIN_MIC && cfg->inputs[1].type == AUTO_PIN_MIC) {
so it won't switch mic automatically when there is one mic pin
if (spec->cur_adc && spec->cur_adc != spec->adc_nid[idx]) { /* stream is running, let's swap the current ADC */
it swap the ADC if the external mic and internal mic are connected to different ADCs
but there is no mic connected to other ADC
Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02
Headphone Conn=Combo but Pincap is OUTPUT only so it cannot be retasked as Input
Does internal mic work or not ?
Yes, it works fine.
arecord --vumeter=stereo -f CD -Dhw:0,0 foo.wav
does the vumeters change when you change the sliders of node 0x0d or 0x06 in hda-analyzer ?
It Int Mic is correct and 0x06 [Audio Input] is used ,
ext mic may be at 0x0e
you can use hda_analyzer to switch the connection at node 0x6 from 0x0d to 0x0e to test the external mic
Here's what I tried:
Selecting Node 0x6, I changed the connection from 0xd to 0xe. Selecting Node 0xe, I checked the 'IN' box under Widget control (which is what 0xd had enabled.), then changed the Val[0] and Val[1] sliders from 0 to 2 under Input Amplifier.
Still no input detected from the headset mic.
FWIW, I'm using the 'Input level' indicator in the Input tab of the Sound settings in the Ubuntu control panel to check if the input is working.
pulseaudio just sum the stereo input to mono , and you get silence if the left/right channel is out of phase
Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e
Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
There are also other possibilities 0xc and 0x12 if 0x05 is used
Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0xb3 0xb3] [0xb3 0xb3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12
OK, I selected Node 0x5, and un-checked the mute box for the 4 sliders under Input amplifier, and increased the sliders to the max of 63. The 0xc connection was the default, so I started with that one. Selecting Node 0xc, I checked the 'IN' box under widget control and changed the 2 Val sliders under Input Amplifier from 0 to 3.
Still nothing detected on headset mic.
http://git.alsa-project.org/?p=alsa-kernel.git;a=blob_plain;f=Documentation/...
you need to use hda-jack-retask or early patching to change the pin default of node 0xe, 0xc or 0x12 default to "ext mic"
either hda-reconfig or early patching if node 0x0e, 0x0c 0r 0x12 is ext mic
Under 0x05, I then selected the 0x12 connection. Selecting Node 0x12, I again selected the 'IN' box under widget control and increased the 2 Val sliders from 0 to 3.
Still nothing.
Only the pincap of node 0xc and 0xd support jack detect , and node 0x0e and 0x12
Node 0x0c [Pin Complex] wcaps 0x41048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples
Node 0x12 [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
the last resort is to use hda-verb to check jack detect of pin 0xd, 0xe, 0xc and 0x12
hda-verb /dev/snd/hwC0D0 0x0d GET_PIN_SENSE 0
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
can you post the output of alsa-info.sh ?
below is the output when the headset w/mic is plugged in
In the codec info, do you find Misc bit of pin defaults of the node [jack] Mic at Ext is set ? (i.e. Misc = NO_PRESENCE ) ?
I don't see any Mic at Ext, but I do see a 'Mic at Int' and it shows NO_PRESENCE.
Should I be seeing a 2 different Mics? one for internal one for external?
the functions parse_input() and change_cur_input() in patch_cirrus.c seem expect ext mic and int mic for auto mic detection
e.g.
/* check whether the automatic mic switch is available */ if (spec->num_inputs == 2 && cfg->inputs[0].type == AUTO_PIN_MIC && cfg->inputs[1].type == AUTO_PIN_MIC) {
so it won't switch mic automatically when there is one mic pin
if (spec->cur_adc && spec->cur_adc != spec->adc_nid[idx]) { /* stream is running, let's swap the current ADC */
it swap the ADC if the external mic and internal mic are connected to different ADCs
but there is no mic connected to other ADC
Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02
Headphone Conn=Combo but Pincap is OUTPUT only so it cannot be retasked as Input
Does internal mic work or not ?
Yes, it works fine.
arecord --vumeter=stereo -f CD -Dhw:0,0 foo.wav
does the vumeters change when you change the sliders of node 0x0d or 0x06 in hda-analyzer ?
Yes. The sliders in either 0xd or 0x6 affect the input level.
It Int Mic is correct and 0x06 [Audio Input] is used ,
ext mic may be at 0x0e
you can use hda_analyzer to switch the connection at node 0x6 from 0x0d to 0x0e to test the external mic
Here's what I tried:
Selecting Node 0x6, I changed the connection from 0xd to 0xe. Selecting Node 0xe, I checked the 'IN' box under Widget control (which is what 0xd had enabled.), then changed the Val[0] and Val[1] sliders from 0 to 2 under Input Amplifier.
Still no input detected from the headset mic.
FWIW, I'm using the 'Input level' indicator in the Input tab of the Sound settings in the Ubuntu control panel to check if the input is working.
pulseaudio just sum the stereo input to mono , and you get silence if the left/right channel is out of phase
Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e
Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a00110: [Fixed] Mic at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
There are also other possibilities 0xc and 0x12 if 0x05 is used
Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0xb3 0xb3] [0xb3 0xb3] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12
OK, I selected Node 0x5, and un-checked the mute box for the 4 sliders under Input amplifier, and increased the sliders to the max of 63. The 0xc connection was the default, so I started with that one. Selecting Node 0xc, I checked the 'IN' box under widget control and changed the 2 Val sliders under Input Amplifier from 0 to 3.
Still nothing detected on headset mic.
http://git.alsa-project.org/?p=alsa-kernel.git;a=blob_plain;f=Documentation/...
you need to use hda-jack-retask or early patching to change the pin default of node 0xe, 0xc or 0x12 default to "ext mic"
Using hda-jack-retask, under the Cirrus codec, I only saw options for 0x9, 0xb and 0xd. 0xd has 4 options: Microphone, Line In, Internal mic, and Not connected. I tried all 4 of these and none resulted in input from the headset mic. Microphone and Internal Mic both were the built-in internal mic, the other 2 stopped the internal mic from working, but didn't get the headset mic working.
I had to 'Show unconnected pins' in order to see the rest of the nodes. For 0xe, 0xc and 0x12, the options are only 'Internal Mic' and 'Not connected' and the default was Not connected for all of them. I tried switching them each to 'Internal Mic' but still don't get anything from the headset mic.
Note that I had to reboot for each of these tests since the 'Apply now' feature of hda-jack-retask didn't work. I always reported:
tee: /sys/class/sound/hwC0D0/reconfig: Device or resource busy
even with pulseaudio not running and fuser didn't report anyone using /dev/snd/*
either hda-reconfig or early patching if node 0x0e, 0x0c 0r 0x12 is ext mic
Under 0x05, I then selected the 0x12 connection. Selecting Node 0x12, I again selected the 'IN' box under widget control and increased the 2 Val sliders from 0 to 3.
Still nothing.
Only the pincap of node 0xc and 0xd support jack detect , and node 0x0e and 0x12
Did you mean to finish a thought here... ?
Node 0x0c [Pin Complex] wcaps 0x41048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000024: IN Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples
Node 0x12 [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x00 0x00] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples
the last resort is to use hda-verb to check jack detect of pin 0xd, 0xe, 0xc and 0x12
hda-verb /dev/snd/hwC0D0 0x0d GET_PIN_SENSE 0
With the headset plugged in:
$ sudo hda-verb /dev/snd/hwC0D0 0x0d GET_PIN_SENSE 0 nid = 0xd, verb = 0xf09, param = 0x0 value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x0e GET_PIN_SENSE 0 nid = 0xe, verb = 0xf09, param = 0x0 value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x0c GET_PIN_SENSE 0 nid = 0xc, verb = 0xf09, param = 0x0 value = 0x0
$ sudo hda-verb /dev/snd/hwC0D0 0x12 GET_PIN_SENSE 0 nid = 0x12, verb = 0xf09, param = 0x0 value = 0x0
And the same result with the headset unplugged.
Thanks again for all your advice and ideas to test. I'll be glad to keep doing experiments.
Kevin
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
Kevin
2012/3/6, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
you should ask Takarshi as he added this patch, he may know whether cs4206 support the above feature
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=40c...
At Tue, 6 Mar 2012 09:28:12 +0800, Raymond Yau wrote:
2012/3/6, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
> Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector > instead of TRS (Tip, ring, sleeve) connector ?
Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
you should ask Takarshi as he added this patch, he may know whether cs4206 support the above feature
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=40c...
You can play with hda-emu to send vendor-specific COEF, as found in the commit above. But it's at your own risk; the patch I made is just a translation from other information I've got from Cirrus at that time.
At best, ask Cirrus guys such information.
Takashi
Takashi Iwai tiwai@suse.de writes:
At Tue, 6 Mar 2012 09:28:12 +0800, Raymond Yau wrote:
2012/3/6, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/2, Kevin Hilman khilman@ti.com:
>> Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector >> instead of TRS (Tip, ring, sleeve) connector ?
> Yes. It's TRRS.
Does it mean that the headset/mic is a mono mic ?
Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
you should ask Takarshi as he added this patch, he may know whether cs4206 support the above feature
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=40c...
You can play with hda-emu to send vendor-specific COEF, as found in the commit above. But it's at your own risk; the patch I made is just a translation from other information I've got from Cirrus at that time.
Unfortunately, I'm not really familiar with audio codecs, and am finding that undersanding the verbs and and sending the right ones with the right coef (and finding out what was actually written) seems to be a bit out of my league.
If someone can suggest what to try with hda-emu, I'm willing, but otherwise I guess I have to opt for an external USB audio adapater for the headset. :(
Kevin
At Tue, 06 Mar 2012 12:25:12 -0800, Kevin Hilman wrote:
Takashi Iwai tiwai@suse.de writes:
At Tue, 6 Mar 2012 09:28:12 +0800, Raymond Yau wrote:
2012/3/6, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
> 2012/3/2, Kevin Hilman khilman@ti.com: > > >>> Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector >>> instead of TRS (Tip, ring, sleeve) connector ? > >> Yes. It's TRRS. > > Does it mean that the headset/mic is a mono mic ? > > Is the internal mic mono or stereo ?
I believe it's mono. Based on vumeter activity, and the fact that changing only one slider in hda_analyzer is needed to quiet/mute the mic.
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
you should ask Takarshi as he added this patch, he may know whether cs4206 support the above feature
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=40c...
You can play with hda-emu to send vendor-specific COEF, as found in the commit above. But it's at your own risk; the patch I made is just a translation from other information I've got from Cirrus at that time.
Unfortunately, I'm not really familiar with audio codecs, and am finding that undersanding the verbs and and sending the right ones with the right coef (and finding out what was actually written) seems to be a bit out of my league.
If someone can suggest what to try with hda-emu, I'm willing, but otherwise I guess I have to opt for an external USB audio adapater for the headset. :(
Ah, of course, I meant hda-verb, not hda-emu...
Takashi
Takashi Iwai tiwai@suse.de writes:
At Tue, 06 Mar 2012 12:25:12 -0800, Kevin Hilman wrote:
Takashi Iwai tiwai@suse.de writes:
At Tue, 6 Mar 2012 09:28:12 +0800, Raymond Yau wrote:
2012/3/6, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/3, Kevin Hilman khilman@ti.com: > Raymond Yau superquad.vortex2@gmail.com writes: > >> 2012/3/2, Kevin Hilman khilman@ti.com: >> >> >>>> Does your headset/mic has a TRRS (Tip, ring, ring, sleeve) connector >>>> instead of TRS (Tip, ring, sleeve) connector ? >> >>> Yes. It's TRRS. >> >> Does it mean that the headset/mic is a mono mic ? >> >> Is the internal mic mono or stereo ? > > I believe it's mono. Based on vumeter activity, and the fact that > changing only one slider in hda_analyzer is needed to quiet/mute the > mic. >
Not sure any difference between cs4206 and cs4207
It seem that you can select ADC1 and ADC2 channel mode in cs4207
‘00’b - ADC2 left channel is mapped to HDA left channel and ADC2 right channel is mapped HDA right channel (normal mode). ‘01’b - ADC2 left channel is mapped to both HDA left and right channels. ADC2 right channel is discarded (mono mode). ‘10’b - ADC2 right channel is mapped to both HDA left and right channels. ADC2 left channel is discarded (alternate mono mode). ‘11’b - ADC2 left channel is mapped to HDA right channel and ADC2 right channel is mapped to HDA left channel (channel swap mode).
Do any of the hda tools allow me to tweak this from userspace?
you should ask Takarshi as he added this patch, he may know whether cs4206 support the above feature
http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=40c...
You can play with hda-emu to send vendor-specific COEF, as found in the commit above. But it's at your own risk; the patch I made is just a translation from other information I've got from Cirrus at that time.
Unfortunately, I'm not really familiar with audio codecs, and am finding that undersanding the verbs and and sending the right ones with the right coef (and finding out what was actually written) seems to be a bit out of my league.
If someone can suggest what to try with hda-emu, I'm willing, but otherwise I guess I have to opt for an external USB audio adapater for the headset. :(
Ah, of course, I meant hda-verb, not hda-emu...
Ah, that's a little easier to tinker with for the uninformed like me. :)
Using that, it seems that the above registers work on my coded (cs4206) too. I was able to determine that the built-in mic is ADC2 right channel, and can at least make the built-in mic switch from the right to left (swap channel mode)
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x180a
or make the right channel go to both HDA channels (mono mode):
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x100a
However, I still can't figure out where the headset mic is and how to enable it.
Here's what I think I know (c.f. alsa-info.sh output below)
Node 0x6 (ADC2 in the spec) defaults to connection 0xd (called Line in 1/Mic in 2 in the spec.) Node 0x5 (ADC1 in the spec) defaults to connection 0xc (called Mic in 1/Line in 2 in the spec.) Both 0x6 and 0x5 also have optional connections in the connection list for digital mics (0xe: digital mic in 1 and 0x12: digital mic in 2 respectively), but I've been ignoring these and focusing on 0xd and 0xc.
I'm also assuming that the headset mic would be on one of the channels of ADC1, but wondering if it's also possible for it to be on the left channel of ADC2 (built-in mic is on the right channel of ADC2.)
I used hda_analyzer to ensure that everything was unmuted and the gains were turned up in 0x5 and 0x6 as well as in the pin nodes 0xc and 0xd.
Comparing the config defaults for 0xc and 0xd I noticed that 0xc had some strange values that didn't reflect a mic, so I change 0xc to match 0xd (as is shown in the output below.)
I also used hda-verb to try the various options in the ADC1 channels, but still can't get any input from the headset mic.
It seems like I now have too many variables to play with to find the right magic setting. Any guidance on what settings to test would be greatly appreciated.
Thanks,
Kevin
upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.4.60 !!################################
!!Script ran on: Tue Mar 6 23:27:51 UTC 2012
!!Linux Distribution !!------------------
Ubuntu 11.10 \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 11.10"
!!DMI Information !!---------------
Manufacturer: Apple Inc. Product Name: MacBookAir4,1 Product Version: 1.0
!!Kernel Information !!------------------
Kernel release: 3.0.0-13-generic Operating System: GNU/Linux Architecture: x86_64 Processor: x86_64 SMP Enabled: Yes
!!ALSA Version !!------------
Driver version: 1.0.24 Library version: 1.0.24.1 Utilities version: 1.0.24.2
!!Loaded ALSA modules !!-------------------
snd_hda_intel
!!Sound Servers on this system !!----------------------------
Pulseaudio: Installed - Yes (/usr/bin/pulseaudio) Running - Yes
ESound Daemon: Installed - Yes (/usr/bin/esd) Running - No
!!Soundcards recognised by ALSA !!-----------------------------
0 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xa0600000 irq 46
!!PCI Soundcards installed in the system !!--------------------------------------
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
!!Advanced information - PCI Vendor/Device/Subsystem ID's !!--------------------------------------------------------
00:1b.0 0403: 8086:1c20 (rev 05) Subsystem: 8086:7270
!!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-caiaq: index=-2 snd-usb-ua101: index=-2 snd-usb-us122l: index=-2 snd-usb-usx2y: index=-2 snd-cmipci: mpu_port=0x330 fm_port=0x388 snd-pcsp: index=-2 snd-usb-audio: index=-2
!!Loaded sound module options !!--------------------------
!!Module: snd_hda_intel align_buffer_size : -1 bdl_pos_adj : 1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 beep_mode : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y enable_msi : -1 id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 model : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) patch : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) position_fix : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 single_cmd : N snoop : Y
!!HDA-Intel Codec information !!--------------------------- --startcollapse--
Codec: Cirrus Logic CS4206 Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x10134206 Subsystem Id: 0x106b6200 Revision Id: 0x100302 No Modem Function Group found Default PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Default Amp-In caps: N/A Default Amp-Out caps: N/A GPIO: io=4, o=0, i=0, unsolicited=0, wake=0 IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[1]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0 Node 0x02 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Control: name="Master Playback Switch", index=0, device=0 Control: name="Master Playback Volume", index=0, device=0 Control: name="Headphone Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Headphone Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0x2e 0x2e] Converter: stream=8, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x03 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0xf3 0xf3] Converter: stream=0, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x04 [Audio Output] wcaps 0xd041d: Stereo Amp-Out Control: name="Speaker Playback Switch", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Control: name="Speaker Playback Volume", index=0, device=0 ControlAmp: chs=3, dir=Out, idx=0, ofs=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-Out caps: ofs=0x73, nsteps=0x7f, stepsize=0x01, mute=1 Amp-Out vals: [0x80 0x80] Converter: stream=8, channel=0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 13 samples Node 0x05 [Audio Input] wcaps 0x18051b: Stereo Amp-In Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=0, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0c* 0x12 Node 0x06 [Audio Input] wcaps 0x18051b: Stereo Amp-In Control: name="Capture Switch", index=0, device=0 Control: name="Capture Volume", index=0, device=0 Device: name="Cirrus Analog", type="Audio", device=0 Amp-In caps: ofs=0x33, nsteps=0x3f, stepsize=0x03, mute=1 Amp-In vals: [0x3f 0x3f] [0x3f 0x3f] Converter: stream=4, channel=0 SDI-Select: 0 PCM: rates [0x1f5]: 8000 16000 32000 44100 48000 88200 96000 bits [0x1e]: 16 20 24 32 formats [0x3]: PCM FLOAT Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 2 0x0d* 0x0e Node 0x07 [Audio Input] wcaps 0x180791: Stereo Digital Converter: stream=0, channel=0 SDI-Select: 0 Digital: Preemphasis Copyright Digital category: 0x0 PCM: rates [0x570]: 32000 44100 48000 96000 192000 bits [0x1e]: 16 20 24 32 formats [0x7]: PCM FLOAT AC3 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 8 samples Connection: 1 0x0f Node 0x08 [Audio Output] wcaps 0x40611: 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 [0x7]: PCM FLOAT AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 4 samples Node 0x09 [Pin Complex] wcaps 0x410581: Stereo Control: name="Headphone Jack", index=0, device=0 Pincap 0x0000001c: OUT HP Detect Pin Default 0x012b4030: [Jack] HP Out at Ext Rear Conn = Comb, Color = Green DefAssociation = 0x3, Sequence = 0x0 Pin-ctls: 0xc0: OUT HP Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x02 Node 0x0a [Pin Complex] wcaps 0x410581: Stereo Pincap 0x00000054: OUT Detect Balanced Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Connection: 1 0x03 Node 0x0b [Pin Complex] wcaps 0x410101: Stereo Pincap 0x00000050: OUT Balanced Pin Default 0x90100120: [Fixed] Speaker at Int N/A Conn = Unknown, Color = Unknown DefAssociation = 0x2, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x04 Node 0x0c [Pin Complex] wcaps 0x41048b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00000024: IN Detect Pin Default 0x90a60160: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x6, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x20: IN Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0d [Pin Complex] wcaps 0x41048b: Stereo Amp-In Control: name="Mic Capture Volume", index=0, device=0 ControlAmp: chs=3, dir=In, idx=0, ofs=0 Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0 Amp-In vals: [0x03 0x03] Pincap 0x00001764: IN Detect Balanced Vref caps: HIZ 50 GRD 80 Pin Default 0x90a60160: [Fixed] Mic at Int N/A Conn = Digital, Color = Unknown DefAssociation = 0x6, Sequence = 0x0 Misc = NO_PRESENCE Pin-ctls: 0x24: IN VREF_80 Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x0e [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x02 0x02] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Node 0x0f [Pin Complex] wcaps 0x410681: Stereo Digital Pincap 0x00000024: IN Detect Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 1 samples Node 0x10 [Pin Complex] wcaps 0x410301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x08 Node 0x11 [Vendor Defined Widget] wcaps 0xf00040: Mono Processing caps: benign=0, ncoeff=22 Node 0x12 [Pin Complex] wcaps 0x41000b: Stereo Amp-In Amp-In caps: ofs=0x00, nsteps=0x02, stepsize=0x27, mute=0 Amp-In vals: [0x02 0x02] Pincap 0x00000020: IN Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x20: IN Delay: 1 samples Node 0x13 [Beep Generator Widget] wcaps 0x700000: Mono Node 0x14 [Audio Output] wcaps 0x40611: 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 [0x7]: PCM FLOAT AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Delay: 4 samples Node 0x15 [Pin Complex] wcaps 0x410301: Stereo Digital Pincap 0x00000010: OUT Pin Default 0x400000f0: [N/A] Line Out at Ext N/A Conn = Unknown, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Delay: 1 samples Connection: 1 0x14 Codec: Intel CougarPoint HDMI Address: 3 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x80862805 Subsystem Id: 0x80860101 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 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital Converter: stream=0, channel=0 Digital: Enabled GenLevel Digital category: 0x2 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0x1e]: 16 20 24 32 formats [0x5]: PCM AC3 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=3 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=0, device=0 Control: name="IEC958 Playback Pro Mask", index=0, device=0 Control: name="IEC958 Playback Default", index=0, device=0 Control: name="IEC958 Playback Switch", index=0, device=0 Control: name="ELD", index=0, device=3 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=01, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x02 Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=7 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=1, device=0 Control: name="IEC958 Playback Pro Mask", index=1, device=0 Control: name="IEC958 Playback Default", index=1, device=0 Control: name="IEC958 Playback Switch", index=1, device=0 Control: name="ELD", index=0, device=7 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=02, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x03 Node 0x07 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP Control: name="HDMI/DP,pcm=8 Jack", index=0, device=0 Control: name="IEC958 Playback Con Mask", index=2, device=0 Control: name="IEC958 Playback Pro Mask", index=2, device=0 Control: name="IEC958 Playback Default", index=2, device=0 Control: name="IEC958 Playback Switch", index=2, device=0 Control: name="ELD", index=0, device=8 Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1 Amp-Out vals: [0x00 0x00] Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x18560010: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=03, enabled=1 Power states: D0 D3 EPSS Power: setting=D0, actual=D0 Connection: 1 0x04 Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono --endcollapse--
!!ALSA Device nodes !!-----------------
crw-rw----+ 1 root audio 116, 9 Mar 2 11:11 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 8 Mar 2 11:11 /dev/snd/hwC0D0 crw-rw----+ 1 root audio 116, 7 Mar 2 11:11 /dev/snd/hwC0D3 crw-rw----+ 1 root audio 116, 6 Mar 6 10:50 /dev/snd/pcmC0D0c crw-rw----+ 1 root audio 116, 5 Mar 6 15:18 /dev/snd/pcmC0D0p crw-rw----+ 1 root audio 116, 4 Mar 2 11:11 /dev/snd/pcmC0D3p crw-rw----+ 1 root audio 116, 3 Mar 2 11:11 /dev/snd/pcmC0D7p crw-rw----+ 1 root audio 116, 2 Mar 2 11:11 /dev/snd/pcmC0D8p crw-rw----+ 1 root audio 116, 1 Mar 2 11:11 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 Mar 2 11:11 /dev/snd/timer
/dev/snd/by-path: total 0 drwxr-xr-x 2 root root 60 Mar 2 11:11 . drwxr-xr-x 3 root root 260 Mar 2 11:11 .. lrwxrwxrwx 1 root root 12 Mar 2 11:11 pci-0000:00:1b.0 -> ../controlC0
!!Aplay/Arecord output !!------------
APLAY
**** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: Cirrus Analog [Cirrus Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: Cirrus Analog [Cirrus Analog] Subdevices: 0/1 Subdevice #0: subdevice #0
!!Amixer output !!-------------
!!-------Mixer controls for card 0 [PCH]
Card hw:0 'PCH'/'HDA Intel PCH at 0xa0600000 irq 46' Mixer name : 'Intel CougarPoint HDMI' Components : 'HDA:10134206,106b6200,00100302 HDA:80862805,80860101,00100000' Controls : 30 Simple ctrls : 10 Simple mixer control 'Master',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined penum Playback channels: Mono Limits: Playback 0 - 115 Mono: Playback 46 [40%] [-34.50dB] [on] Simple mixer control 'Headphone',0 Capabilities: pvolume pswitch penum Playback channels: Front Left - Front Right Limits: Playback 0 - 115 Mono: Front Left: Playback 115 [100%] [0.00dB] [on] Front Right: Playback 115 [100%] [0.00dB] [on] Simple mixer control 'Speaker',0 Capabilities: pvolume pswitch penum Playback channels: Front Left - Front Right Limits: Playback 0 - 115 Mono: Front Left: Playback 0 [0%] [-57.50dB] [off] Front Right: Playback 0 [0%] [-57.50dB] [off] Simple mixer control 'PCM',0 Capabilities: pvolume penum 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 'Mic',0 Capabilities: cvolume penum Capture channels: Front Left - Front Right Limits: Capture 0 - 3 Front Left: Capture 3 [100%] [30.00dB] Front Right: Capture 3 [100%] [30.00dB] Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined penum Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',1 Capabilities: pswitch pswitch-joined penum Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',2 Capabilities: pswitch pswitch-joined penum Playback channels: Mono Mono: Playback [on] Simple mixer control 'Capture',0 Capabilities: cvolume cswitch penum Capture channels: Front Left - Front Right Limits: Capture 0 - 63 Front Left: Capture 63 [100%] [12.00dB] [on] Front Right: Capture 63 [100%] [12.00dB] [on] Simple mixer control 'Digital',0 Capabilities: cvolume penum Capture channels: Front Left - Front Right Limits: Capture 0 - 120 Front Left: Capture 120 [100%] [30.00dB] Front Right: Capture 120 [100%] [30.00dB]
!!Alsactl output !!-------------
--startcollapse-- state.PCH { control.1 { iface MIXER name 'Master Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.2 { iface MIXER name 'Master Playback Volume' value 46 comment { access 'read write' type INTEGER count 1 range '0 - 115' dbmin -5750 dbmax 0 dbvalue.0 -3450 } } control.3 { iface MIXER name 'Headphone Playback Switch' value.0 true value.1 true comment { access 'read write' type BOOLEAN count 2 } } control.4 { iface MIXER name 'Headphone Playback Volume' value.0 115 value.1 115 comment { access 'read write' type INTEGER count 2 range '0 - 115' dbmin -5750 dbmax 0 dbvalue.0 0 dbvalue.1 0 } } control.5 { iface MIXER name 'Speaker Playback Switch' value.0 false value.1 false comment { access 'read write' type BOOLEAN count 2 } } control.6 { iface MIXER name 'Speaker Playback Volume' value.0 0 value.1 0 comment { access 'read write' type INTEGER count 2 range '0 - 115' dbmin -5750 dbmax 0 dbvalue.0 -5750 dbvalue.1 -5750 } } control.7 { iface MIXER name 'Capture Switch' value.0 true value.1 true comment { access 'read write' type BOOLEAN count 2 } } control.8 { iface MIXER name 'Capture Volume' value.0 63 value.1 63 comment { access 'read write' type INTEGER count 2 range '0 - 63' dbmin -5100 dbmax 1200 dbvalue.0 1200 dbvalue.1 1200 } } control.9 { iface MIXER name 'Mic Capture Volume' value.0 3 value.1 3 comment { access 'read write' type INTEGER count 2 range '0 - 3' dbmin 0 dbmax 3000 dbvalue.0 3000 dbvalue.1 3000 } } control.10 { iface CARD name 'Headphone Jack' value true comment { access read type BOOLEAN count 1 } } control.11 { iface CARD name 'HDMI/DP,pcm=3 Jack' value false comment { access read type BOOLEAN count 1 } } control.12 { iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.13 { iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.14 { iface MIXER name 'IEC958 Playback Default' value '0482000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.15 { iface MIXER name 'IEC958 Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.16 { iface PCM device 3 name ELD value '' comment { access read type BYTES count 0 } } control.17 { iface CARD name 'HDMI/DP,pcm=7 Jack' value false comment { access read type BOOLEAN count 1 } } control.18 { iface MIXER name 'IEC958 Playback Con Mask' index 1 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.19 { iface MIXER name 'IEC958 Playback Pro Mask' index 1 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.20 { iface MIXER name 'IEC958 Playback Default' index 1 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.21 { iface MIXER name 'IEC958 Playback Switch' index 1 value true comment { access 'read write' type BOOLEAN count 1 } } control.22 { iface PCM device 7 name ELD value '' comment { access read type BYTES count 0 } } control.23 { iface CARD name 'HDMI/DP,pcm=8 Jack' value false comment { access read type BOOLEAN count 1 } } control.24 { iface MIXER name 'IEC958 Playback Con Mask' index 2 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.25 { iface MIXER name 'IEC958 Playback Pro Mask' index 2 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.26 { iface MIXER name 'IEC958 Playback Default' index 2 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.27 { iface MIXER name 'IEC958 Playback Switch' index 2 value true comment { access 'read write' type BOOLEAN count 1 } } control.28 { iface PCM device 8 name ELD value '' comment { access read type BYTES count 0 } } control.29 { iface MIXER name 'PCM Playback Volume' value.0 255 value.1 255 comment { access 'read write user' type INTEGER count 2 range '0 - 255' tlv '0000000100000008ffffec1400000014' dbmin -5100 dbmax 0 dbvalue.0 0 dbvalue.1 0 } } control.30 { iface MIXER name 'Digital Capture Volume' value.0 120 value.1 120 comment { access 'read write user' type INTEGER count 2 range '0 - 120' tlv '0000000100000008fffff44800000032' dbmin -3000 dbmax 3000 dbvalue.0 3000 dbvalue.1 3000 } } } --endcollapse--
!!All Loaded Modules !!------------------
Module asix usbnet nfs lockd fscache auth_rpcgss nfs_acl sunrpc joydev usbhid bcm5974 bnep rfcomm pci_stub vboxpci vboxnetadp vboxnetflt vboxdrv speedstep_lib parport_pc ppdev dm_crypt snd_hda_codec_hdmi snd_hda_codec_cirrus uvcvideo wl btusb bluetooth lib80211 bcma videodev v4l2_compat_ioctl32 arc4 snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event binfmt_misc snd_seq brcmsmac brcmutil applesmc input_polldev snd_timer snd_seq_device mei mac80211 snd cfg80211 hid_apple soundcore snd_page_alloc crc_ccitt apple_bl coretemp lp parport btrfs zlib_deflate libcrc32c usb_storage uas hid i915 drm_kms_helper drm i2c_algo_bit video
!!Sysfs Files !!-----------
/sys/class/sound/hwC0D0/init_pin_configs: 0x09 0x012b4030 0x0a 0x400000f0 0x0b 0x90100120 0x0c 0x400000f0 0x0d 0x90a00110 0x0e 0x400000f0 0x0f 0x400000f0 0x10 0x400000f0 0x12 0x400000f0 0x15 0x400000f0
/sys/class/sound/hwC0D0/driver_pin_configs:
/sys/class/sound/hwC0D0/user_pin_configs: 0x09 0x012b4030 0x0a 0x400000f0 0x0b 0x90100120 0x0c 0x400000f0 0x0d 0x0181344f 0x0e 0x400000f0 0x0f 0x400000f0 0x10 0x400000f0 0x12 0x400000f0 0x15 0x400000f0
/sys/class/sound/hwC0D0/init_verbs:
/sys/class/sound/hwC0D3/init_pin_configs: 0x05 0x18560010 0x06 0x18560010 0x07 0x18560010
/sys/class/sound/hwC0D3/driver_pin_configs:
/sys/class/sound/hwC0D3/user_pin_configs:
/sys/class/sound/hwC0D3/init_verbs:
!!ALSA/HDA dmesg !!------------------
[ 8.441252] brcmsmac 0000:02:00.0: setting latency timer to 64 [ 8.518769] snd_hda_intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22 [ 8.518829] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X [ 8.518856] snd_hda_intel 0000:00:1b.0: setting latency timer to 64 [ 8.582548] applesmc: : read arg fail -- [ 9.020330] type=1400 audit(1330715498.242:11): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=1678 comm="apparmor_parser" [ 9.169647] HDMI status: Codec=3 Pin=5 Presence_Detect=0 ELD_Valid=0 [ 9.169709] HDMI status: Codec=3 Pin=6 Presence_Detect=0 ELD_Valid=0 [ 9.169771] HDMI status: Codec=3 Pin=7 Presence_Detect=0 ELD_Valid=0 [ 9.169905] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12 [ 9.170027] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13 [ 9.170124] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14 [ 9.170228] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input15 [ 9.187640] ieee80211 phy0: wl_ops_config: change monitor mode: false (implement) -- [ 153.272605] FS-Cache: Netfs 'nfs' registered for caching [ 478.386979] hda-codec: reconfiguring [ 478.386990] The codec is being used, can't reconfigure. -- [13096.675555] ehci_hcd 0000:00:1d.7: PCI INT A disabled [13096.819376] snd_hda_intel 0000:00:1b.0: PCI INT A disabled [13096.835280] PM: suspend of drv:snd_hda_intel dev:0000:00:1b.0 complete after 223.113 msecs [13098.215618] PM: suspend of drv:sd dev:0:0:0:0 complete after 1605.911 msecs -- [13099.480079] ehci_hcd 0000:00:1a.7: restoring config space at offset 0x1 (was 0x2900000, writing 0x2900002) [13099.480106] snd_hda_intel 0000:00:1b.0: restoring config space at offset 0xf (was 0x100, writing 0x10b) [13099.480120] snd_hda_intel 0000:00:1b.0: restoring config space at offset 0x4 (was 0x4, writing 0xa0600004) [13099.480124] snd_hda_intel 0000:00:1b.0: restoring config space at offset 0x3 (was 0x0, writing 0x40) [13099.480130] snd_hda_intel 0000:00:1b.0: restoring config space at offset 0x1 (was 0x100000, writing 0x100002) [13099.480165] pcieport 0000:00:1c.0: restoring config space at offset 0xf (was 0x100, writing 0x1ff) -- [13099.481264] ehci_hcd 0000:00:1a.7: setting latency timer to 64 [13099.481267] snd_hda_intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22 [13099.481272] snd_hda_intel 0000:00:1b.0: setting latency timer to 64 [13099.481313] uhci_hcd 0000:00:1d.0: PCI INT B -> GSI 19 (level, low) -> IRQ 19 [13099.481319] uhci_hcd 0000:00:1d.0: setting latency timer to 64 [13099.481333] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X [13099.481348] usb usb4: root hub lost power or was reset -- [116107.946111] ieee80211 phy0: wl0: wlc_recv: dropping a frame with invalid src mac address, a2: f3:83:00:00:01:01 [124584.337084] hda-codec: reconfiguring [124584.337087] The codec is being used, can't reconfigure. [129383.572792] hda-codec: reconfiguring [129383.572799] The codec is being used, can't reconfigure.
2012/3/10, Kevin Hilman khilman@ti.com:
Ah, that's a little easier to tinker with for the uninformed like me. :)
Using that, it seems that the above registers work on my coded (cs4206) too. I was able to determine that the built-in mic is ADC2 right channel, and can at least make the built-in mic switch from the right to left (swap channel mode)
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x180a
or make the right channel go to both HDA channels (mono mode):
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x100a
However, I still can't figure out where the headset mic is and how to enable it.
Here's what I think I know (c.f. alsa-info.sh output below)
do you mean that you cannot record mono using sysdefault which use a route to copy left channel channel to both if the internal mic is at the right channel?
arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/10, Kevin Hilman khilman@ti.com:
Ah, that's a little easier to tinker with for the uninformed like me. :)
Using that, it seems that the above registers work on my coded (cs4206) too. I was able to determine that the built-in mic is ADC2 right channel, and can at least make the built-in mic switch from the right to left (swap channel mode)
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x180a
or make the right channel go to both HDA channels (mono mode):
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x100a
However, I still can't figure out where the headset mic is and how to enable it.
Here's what I think I know (c.f. alsa-info.sh output below)
do you mean that you cannot record mono using sysdefault which use a route to copy left channel channel to both if the internal mic is at the right channel?
arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null
Not sure exactly what you mean by sysdefault, but trying that fails:
$ arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM sysdefault arecord: main:660: audio open error: No such file or directory
Kevin
2012/3/16, Kevin Hilman khilman@ti.com:
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/10, Kevin Hilman khilman@ti.com:
Ah, that's a little easier to tinker with for the uninformed like me. :)
Using that, it seems that the above registers work on my coded (cs4206) too. I was able to determine that the built-in mic is ADC2 right channel, and can at least make the built-in mic switch from the right to left (swap channel mode)
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x180a
or make the right channel go to both HDA channels (mono mode):
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x100a
However, I still can't figure out where the headset mic is and how to enable it.
Here's what I think I know (c.f. alsa-info.sh output below)
do you mean that you cannot record mono using sysdefault which use a route to copy left channel channel to both if the internal mic is at the right channel?
arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null
Not sure exactly what you mean by sysdefault, but trying that fails:
$ arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null ALSA lib pcm.c:2212:(snd_pcm_open_noupdate) Unknown PCM sysdefault arecord: main:660: audio open error: No such file or directory
Kevin
http://git.alsa-project.org/?p=alsa-lib.git;a=commit;h=e6f990e5c9be5cac6f369...
pcm.default cards.pcm.default +pcm.sysdefault cards.pcm.default pcm.front cards.pcm.front
http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/HDA-Inte...
HDA-Intel.pcm.default
capture.pcm {
# to avoid possible phase inversions with digital mics route_policy copy
Raymond Yau superquad.vortex2@gmail.com writes:
2012/3/10, Kevin Hilman khilman@ti.com:
Ah, that's a little easier to tinker with for the uninformed like me. :)
Using that, it seems that the above registers work on my coded (cs4206) too. I was able to determine that the built-in mic is ADC2 right channel, and can at least make the built-in mic switch from the right to left (swap channel mode)
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x180a
or make the right channel go to both HDA channels (mono mode):
sudo hda-verb /dev/snd/hwC0D0 0x11 SET_COEF_INDEX 2 sudo hda-verb /dev/snd/hwC0D0 0x11 SET_PROC_COEF 0x100a
However, I still can't figure out where the headset mic is and how to enable it.
Here's what I think I know (c.f. alsa-info.sh output below)
do you mean that you cannot record mono using sysdefault which use a route to copy left channel channel to both if the internal mic is at the right channel?
arecord --vumeter=mono -c 1 -f S16_LE -r 48000 -Dsysdefault /dev/null
That is correct.
Using this command, I cannot record mono using the internal mic.
Kevin
On Wed, Feb 29, 2012 at 11:08:13AM -0800, Kevin Hilman wrote:
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
Have you tried multiple headset models? I'd not expect a difference but it's possible (and there are certain headsets with specialist requirements).
Mark Brown broonie@opensource.wolfsonmicro.com writes:
On Wed, Feb 29, 2012 at 11:08:13AM -0800, Kevin Hilman wrote:
As you can see, there's no detected difference between the TRS and TRRS headsets, which is the root of the problem.
Have you tried multiple headset models? I'd not expect a difference but it's possible (and there are certain headsets with specialist requirements).
I've only tried with the 2 different ones I have. One works with Apple devices and the other with Nokia.
The Apple one is the one that works fine with OSX on this machine.
Kevin
participants (6)
-
David Henningsson
-
Hilman, Kevin
-
Kevin Hilman
-
Mark Brown
-
Raymond Yau
-
Takashi Iwai