[alsa-devel] extra interrupt on plug insertion undoes mux selection

Peter M. Petrakis peter.petrakis at canonical.com
Sat Jun 12 00:36:16 CEST 2010


Hi All,

Trying my hand at snd quirking, I'm working a Dell Latitude E4310. Here's
what I'm seeing. There's a headset jack (HP/MIC combo) on the LHS, when I
insert a headset I see the following in the logs.

Note: port 0xA is the mic jack, 0xB is hp jack, and 0x11 in internal mic.

Jun 11 18:17:45 ubuntu-laptop kernel: [  193.978394] XXX stac92xx_unsol_event: codec subsystem id 10280410
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361330] XXX stac92xx_unsol_event: event - 6 nid - 0a.
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361335] XXX stac92xx_unsol_event: event - 6 MIC
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361337] XXX stac92xx_mic_detect: ENTER
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361340] XXX get_pin_presence:4422 ENTER, NID 0a
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361434] XXX get_pin_presence:4429 EXIT 1, got pin sense
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361439] XXX stac92xx_mic_detect: HERE 4662
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361441] XXX stac92xx_mic_detect: HERE 4676
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361444] XXX stac92xx_mic_detect:4678 mux_nid:0017 index:6
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361449] XXX stac92xx_mic_detect: EXIT
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361451] XXX stac92xx_unsol_event: genevent - 6
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361532] XXX get_pin_presence:4422 ENTER, NID 0a
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361620] XXX get_pin_presence:4429 EXIT 1, got pin sense
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361628] XXX stac92xx_unsol_event: codec subsystem id 10280410
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361631] XXX stac92xx_unsol_event: event - 4 nid - 0b.
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361634] XXX stac92xx_unsol_event: event - 4 HP or LO
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361636] XXX stac92xx_hp_detect: ENTER
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361638] XXX get_pin_presence:4422 ENTER, NID 0b
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361717] XXX get_pin_presence:4429 EXIT 1, got pin sense
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361720] XXX stac92xx_hp_detect:4522  probe_pin:0 hp_pin:000b
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361807] XXX stac92xx_hp_detect: pinctl c0
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361810] XXX stac92xx_hp_detect: HERE 4534
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361812] XXX stac92xx_hp_detect: HERE 4537
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361906] XXX stac92xx_hp_detect: HERE 4569
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361996] XXX stac92xx_hp_detect: EXIT
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.361998] XXX stac92xx_unsol_event: genevent - 4
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.362067] XXX get_pin_presence:4422 ENTER, NID 0b
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.362163] XXX get_pin_presence:4429 EXIT 1, got pin sense
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.362168] XXX stac92xx_unsol_event: codec subsystem id 10280410
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735203] XXX stac92xx_unsol_event: event - 6 nid - 0a.
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735206] XXX stac92xx_unsol_event: event - 6 MIC
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735209] XXX stac92xx_mic_detect: ENTER
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735212] XXX get_pin_presence:4422 ENTER, NID 0a
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735311] XXX get_pin_presence:4433 EXIT 0, no pin sense
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735315] XXX stac92xx_mic_detect: HERE 4666
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735318] XXX stac92xx_mic_detect: HERE 4676
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735320] XXX stac92xx_mic_detect:4678 mux_nid:0017 index:4
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735325] XXX stac92xx_mic_detect: EXIT
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735327] XXX stac92xx_unsol_event: genevent - 6
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735410] XXX get_pin_presence:4422 ENTER, NID 0a
Jun 11 18:17:45 ubuntu-laptop kernel: [  201.735497] XXX get_pin_presence:4433 EXIT 0, no pin sense

I've tested against kernels 2.6.32 and 2.6.35rc2 with the same results. The mux is indeed
back where it started after the plug is fully inserted.

Node 0x17 [Audio Selector] wcaps 0x300d0d: Stereo Amp-Out R/L
   Amp-Out caps: ofs=0x00, nsteps=0x0f, stepsize=0x05, mute=1
   Amp-Out vals:  [0x0f 0x0f]
   Power: setting=D0, actual=D0
   Connection: 7
      0x0c 0x0e 0x0f 0x1b 0x11* 0x12 0x0a

and I can push it around with hda-verb to get the desired result... The question is
why is it doing this? To make things weirder, I can get input from the external mic
even if it isn't selected. This is my first attempt at making codecs "do the right thing"
so I could very well be missing something obvious. What else am I missing here? Thanks.

Peter






-------------- next part --------------
A non-text attachment was scrubbed...
Name: dell-e4310-2nd-int_alsa-info.log
Type: text/x-log
Size: 40776 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20100611/1b1a31ea/attachment-0001.log 


More information about the Alsa-devel mailing list