[alsa-devel] getting the sound to work on my asus m6s00v

Raymond Yau superquad.vortex2 at gmail.com
Fri Mar 27 03:23:52 CET 2015


>
> I have done a couple of things
> First I left the laptop off with no power connected;
> This made the laptop awake in the non functional state regarding the
soundcard.
> I then used this opportunity to update to the latest kernel.
>
> With the latest kernel, the sound is still not working.
> Unmuting the S/PDIF in alsamixer turn on red light in the headphone jack.
>
> also, using 3stack-digout option doesn't bring back sound.
>
> This is the output from the alsa information tool
> http://www.alsa-project.org/db/?f=df46a9ee01e04dde11b194e0278c9f22594540d0

Sysfs Files
!!-----------

/sys/class/sound/hwC0D0/init_pin_configs:
0x14 0x0121411f
0x15 0x411111f0
0x16 0x411111f0
0x17 0x411111f0
0x18 0x01a19920
0x19 0x411111f0
0x1a 0x411111f0
0x1b 0x411111f0
0x1c 0xb7331121
0x1d 0x411111f0
0x1e 0x0145411e
0x1f 0x411111f0

/sys/class/sound/hwC0D0/driver_pin_configs:
0x14 0x0121411f
0x15 0x411111f0
0x16 0x411111f0
0x17 0x411111f0
0x18 0x90a60160
0x19 0x411111f0
0x1a 0x411111f0
0x1b 0x411111f0
0x1c 0x411111f0
0x1d 0x411111f0
0x1e 0xb743111e

/sys/class/sound/hwC0D0/user_pin_configs:

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=487a588d09db0d6508261867df208d8bdc718251

It is because the patch clear the pin default of  all pin complex

only hp , internal mic and digital out exist

The generic driver automatically add the headphone mic when there is
headphone and internal mic

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=967303dabc22335e83c6ee4a9e0684a7c05da976

Have you ask the author tiwai and tester nb how he test the patch ?

Your notebook  need four pin comples: hp, intermal speaker, mic and
internal mic

3stack-dig won't work since there is w5a pin fixup

HP and mic jack can be easily found by hda jack sense test but it is not
easy to find the internal mic and internal speaker after you upgrade

You need to use hda-jack-retask to retask the remaing pin complex

If you still have the working sound kernel, you can use hda analyzer to
mute the node to find the internal speaker and internal mic

>
> after updating this is the output from various commands
>
> [
> Nothing plugged in:
> ./hdajacksensetest -a
> Pin 0x14 (Green Headphone, Rear side): present = No
> Pin 0x15 (Not connected): present = No
> Pin 0x16 (Not connected): present = No
> Pin 0x17 (Not connected): present = No
> Pin 0x18 (Internal Mic): present = Yes
> Pin 0x19 (Not connected): present = No
> Pin 0x1a (Not connected): present = Yes
> Pin 0x1b (Not connected): present = No
> Pin 0x1c (Not connected): present = No
> Pin 0x1d (Not connected): present = No
> Pin 0x1e (Internal SPDIF Out, Mobile-In): present = No
> Pin 0x1f (Not connected): present = No
>
> ./hda-verb /dev/snd/hwC0D0 0x1{4,5,8} SET_PIN_SENSE 0 nid
> nid = 0x14, verb = 0x709, param = 0x0
> value = 0x0
>
> nid = 0x15, verb = 0x709, param = 0x0
> value = 0x0
>
> nid = 0x18, verb = 0x709, param = 0x0
> value = 0x0
>
> ./hda-verb /dev/snd/hwC0D0 0x1{4,5,8} GET_PIN_SENSE 0 nid
> nid = 0x14, verb = 0xf09, param = 0x0
> value = 0x80001f41
>
> nid = 0x15, verb = 0xf09, param = 0x0
> value = 0x80001f41
>
> nid = 0x18, verb = 0xf09, param = 0x0
> value = 0x7fffffff
> ]
>
> [
> With headphone plugged in
> ./hdajacksensetest/hdajacksensetest -a
> Pin 0x14 (Green Headphone, Rear side): present = No
> Pin 0x15 (Not connected): present = Yes
> Pin 0x16 (Not connected): present = No
> Pin 0x17 (Not connected): present = No
> Pin 0x18 (Internal Mic): present = Yes
> Pin 0x19 (Not connected): present = No
> Pin 0x1a (Not connected): present = Yes
> Pin 0x1b (Not connected): present = No
> Pin 0x1c (Not connected): present = No
> Pin 0x1d (Not connected): present = No
> Pin 0x1e (Internal SPDIF Out, Mobile-In): present = No
> Pin 0x1f (Not connected): present = No
>
> // and also ecact same output for hda-verb as with nothing plugged in
> ]
>
> [
> with Mic plugged in, the following items changed
>
> ./hdajacksensetest/hdajacksensetest -a
> Pin 0x14 (Green Headphone, Rear side): present = Yes
> Pin 0x15 (Not connected): present = Yes
> Pin 0x16 (Not connected): present = No
> Pin 0x17 (Not connected): present = No
> Pin 0x18 (Internal Mic): present = Yes
> Pin 0x19 (Not connected): present = No
> Pin 0x1a (Not connected): present = Yes
> Pin 0x1b (Not connected): present = No
> Pin 0x1c (Not connected): present = No
> Pin 0x1d (Not connected): present = No
> Pin 0x1e (Internal SPDIF Out, Mobile-In): present = No
> Pin 0x1f (Not connected): present = No
>
> ./hda-verb /dev/snd/hwC0D0 0x15 GET_PIN_SENSE 0 nid
> nid = 0x15, verb = 0xf09, param = 0x0
> value = 0x7fffffff
>
> ./hda-verb /dev/snd/hwC0D0 0x18 GET_PIN_SENSE 0 nid
> nid = 0x18, verb = 0xf09, param = 0x0
> value = 0x80001f41
> ]
> > > > > The internal mic also works.
> > > > >
> > > > > but; I am a bit puzled, because I tried to comment out 'options
> > > > snd-hda-intel model=3stack-digout' and did a powercycle (power
off)...
> > > > > and now the sound still works, so it seems the soundcard was woken
> > from
> > > > some deepsleep.
> > > > > The machine have been turned of for many (4/5) years...
> > > > >
> > > > > Anyway since the soundcard now is working with my current kernel
> > without
> > > > the extra options, I am unsure if trying the newest vanilla kernel
would
> > > > make any sense?
> > > > >
> > > > > Any recommendations?
> > > >
> > > >
> > > > Since your pci ssid are same as nb 's ASUS W5A, you will need to
ask why
> > > > HP and mic disable jack detection and using ALC880_FIXUP_GPIO1
> > >
> > > That w5a seems much never than this one, I have tried looking some
more
> > into asus website to find this model, and I guess it is either m6v or
> > m6n... It is a pentium single core, no webcam and two jacks
> > > * MIC
> > > * S/PDIF
> > >
> >
> >
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-November/068359.html
> Yep, thats not the one
> it is this one
> http://postimg.org/image/onlil7luv/
>
>
> > > >
> > > > + [ALC880_FIXUP_ASUS_W5A] = {
> > > > + .type = HDA_FIXUP_PINS,
> > > > + .v.pins = (const struct hda_pintbl[]) {
> > > > + /* set up the whole pins as BIOS is utterly broken */
> > > > + { 0x14, 0x0121411f }, /* HP */
> > > > + { 0x15, 0x411111f0 }, /* N/A */
> > > > + { 0x16, 0x411111f0 }, /* N/A */
> > > > + { 0x17, 0x411111f0 }, /* N/A */
> > > > + { 0x18, 0x90a60160 }, /* mic */
> > > > + { 0x19, 0x411111f0 }, /* N/A */
> > > > + { 0x1a, 0x411111f0 }, /* N/A */
> > > > + { 0x1b, 0x411111f0 }, /* N/A */
> > > > + { 0x1c, 0x411111f0 }, /* N/A */
> > > > + { 0x1d, 0x411111f0 }, /* N/A */
> > > > + { 0x1e, 0xb743111e }, /* SPDIF out */
> > > > + { }
> > > > + },
> > > > + .chained = true,
> > > > + .chain_id = ALC880_FIXUP_GPIO1,
> > > >
> > > >
> >
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=29e3fdcc84e5da04cb7e6a36fee0a772c91d3b28
> > > >
> > >
> > > I am not sure what to make of that, I am guessing that those numbers
are
> > identical to some signature my laptop have? I have no experience with
> > kernel hacking / driver development, so there might be something I am
> > missing here.
> >
> >
http://git.kernel.org/cgit/linux/kernel/git/tiwai/hda-emu.git/tree/codecs/alc880-asus-w6a?id=HEAD
> >
> > !Advanced information - PCI Vendor/Device/Susbsystem ID's
> > !!--------------------------------------------------------
> >
> > 00:1b.0 0403: 8086:2668 (rev 04)
> > Subsystem: 1043:10c2
> >
> > >
> > > > Most asus computers using alc880 were using asus model in previous
> > version
> > >
> > > >
> > > > Do the front or surround  playback volume affect the speaker and
> > headphone
> > > > in your asus m6s00v ?
> > >
> > > front affects both internal speaker and Headphone.
> > >
> > > > Do the mic jack works ?
> > >
> > > Yes
> > >
> > > > Do mic boost and front mic boost affect the mic and internal mic ?
> > >
> > > I don't see a mic boost option anywhere. The recording part of
alsamixer
> > that is related to recording on my laptop is 'digital' 'capture'
'capture
> > 1' and 'capture 2' seems to be ignored
> >
> > How about mic playback volume which allow you hear what is recording
from
> > your mic
> >
> > Simple mixer control 'Mic',0
> >   Capabilities: pvolume pswitch penum
> >   Playback channels: Front Left - Front Right
> >   Limits: Playback 0 - 65
> >   Mono:
> >   Front Left: Playback 62 [95%] [27.00dB] [off]
> >   Front Right: Playback 62 [95%] [27.00dB] [off]
> >
> > Node 0x0b [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> >   Control: name="CD Playback Volume", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=4, ofs=0
> >   Control: name="CD Playback Switch", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=4, ofs=0
> >   Control: name="Line Playback Volume", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=2, ofs=0
> >   Control: name="Line Playback Switch", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=2, ofs=0
> >   Control: name="Mic Playback Volume", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=0, ofs=0
> >   Control: name="Mic Playback Switch", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=0, ofs=0
> >   Control: name="Beep Playback Volume", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=5, ofs=0
> >   Control: name="Beep Playback Switch", index=0, device=0
> >     ControlAmp: chs=3, dir=In, idx=5, ofs=0
> >   Amp-In caps: ofs=0x23, nsteps=0x41, stepsize=0x03, mute=1
> >   Amp-In vals:  [0xbe 0xbe] [0x80 0x80] [0x3b 0x3b] [0x80 0x80] [0xbc
0xbc]
> > [0x38 0x38] [0x80 0x80] [0x80 0x80]
> >   Connection: 8
> >      0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x14 0x15
> >
> > If node 0x18 is the mic jack , can you hear the internal mic 's
recording
> > when you turn on line playback switch ?
> >
> > >
> > > > Try hdajacksensetest to test the jack detection of hp and mic jack
> > > >
> > > >
> >
http://git.alsa-project.org/?p=alsa-tools.git;a=tree;f=hdajacksensetest;hb=HEAD
> > >
> > > With nothing plugged in:
> > > /hdajacksensetest -a
> > > Pin 0x14 (Green Headphone, Rear side): present = No
> > > Pin 0x15 (Not connected): present = No
> > > Pin 0x16 (Not connected): present = No
> > > Pin 0x17 (Not connected): present = No
> > > Pin 0x18 (Pink Mic, Rear side): present = No
> > > Pin 0x19 (Not connected): present = No
> > > Pin 0x1a (Not connected): present = No
> > > Pin 0x1b (Not connected): present = No
> > > Pin 0x1c (Internal CD, Mobile-In): present = No
> > > Pin 0x1d (Not connected): present = No
> > > Pin 0x1e (Green SPDIF Out, Rear side): present = No
> > > Pin 0x1f (Not connected): present = No
> > >
> > > With Headphones plugged in:
> > > ./hdajacksensetest -a
> > > Pin 0x14 (Green Headphone, Rear side): present = No
> > > Pin 0x15 (Not connected): present = Yes
> > > Pin 0x16 (Not connected): present = No
> > > Pin 0x17 (Not connected): present = No
> > > Pin 0x18 (Pink Mic, Rear side): present = No
> > > Pin 0x19 (Not connected): present = No
> > > Pin 0x1a (Not connected): present = Yes
> > > Pin 0x1b (Not connected): present = No
> > > Pin 0x1c (Internal CD, Mobile-In): present = No
> > > Pin 0x1d (Not connected): present = No
> > > Pin 0x1e (Green SPDIF Out, Rear side): present = No
> > > Pin 0x1f (Not connected): present = No
> >
> > It is possible that node 0x15 is the headphone jack since pinctl is OUT
,
> > but this node is connected to surround playback volume at node 0x0d and
HP
> > amp is not enabled in pin ctls
> >
> > Node 0x15 [Pin Complex] wcaps 0x40018d: Stereo Amp-Out
> >   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> >   Amp-Out vals:  [0x80 0x80]
> >   Pincap 0x0000003f: IN OUT HP Detect Trigger ImpSense
> >   Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> >     Conn = 1/8, Color = Black
> >     DefAssociation = 0xf, Sequence = 0x0
> >     Misc = NO_PRESENCE
> >   Pin-ctls: 0x40: OUT
> >   Unsolicited: tag=00, enabled=0
> >   Connection: 1
> >      0x0d
> >
> > >
> > > With Mic plugged in
> > > ./hdajacksensetest -a
> > > Pin 0x14 (Green Headphone, Rear side): present = Yes
> > > Pin 0x15 (Not connected): present = No
> > > Pin 0x16 (Not connected): present = No
> > > Pin 0x17 (Not connected): present = No
> > > Pin 0x18 (Pink Mic, Rear side): present = Yes
> > > Pin 0x19 (Not connected): present = No
> > > Pin 0x1a (Not connected): present = No
> > > Pin 0x1b (Not connected): present = No
> > > Pin 0x1c (Internal CD, Mobile-In): present = No
> > > Pin 0x1d (Not connected): present = No
> > > Pin 0x1e (Green SPDIF Out, Rear side): present = No
> > > Pin 0x1f (Not connected): present = No
> > >
> >
> > 1) Nothing plugged in: ./hda-verb /dev/snd/hwC0D0 0x14 SET_PIN_SENSE 0
nid
> > = 0x14, verb = 0x709, param = 0x0 value = 0x0
> >
> > ./hda-verb /dev/snd/hwC0D0 0x14 GET_PIN_SENSE 0 nid = 0x14, verb =
0xf09,
> > param = 0x0 value = 0x7fffffff
> >
> > 2) Headphones plugged in in S/PDIF ./hda-verb /dev/snd/hwC0D0 0x14
> > SET_PIN_SENSE 0 nid = 0x14, verb = 0x709, param = 0x0 value = 0x0
> >
> > ./hda-verb /dev/snd/hwC0D0 0x14 GET_PIN_SENSE 0 nid = 0x14, verb =
0xf09,
> > param = 0x0 value = 0x7fffffff
> >
> > 3) microphone plugged in 'Mic' ./hda-verb /dev/snd/hwC0D0 0x14
> > SET_PIN_SENSE 0 nid = 0x14, verb = 0x709, param = 0x0 value = 0x0
> >
> > ./hda-verb /dev/snd/hwC0D0 0x14 GET_PIN_SENSE 0 nid = 0x14, verb =
0xf09,
> > param = 0x0 value = 0x7fffffff
> >
> > A returned value of 0x7FFF,FFFF (all 1‟s) indicates that a valid sense
> > reading is not available, or the sense measurement is busy
> >
> > Most Significant Bit indicating the state of the Presence Detect
> > capability.  A 1 indicates that there is “something” plugged into the
jack
> > associated with the Pin Complex 0x80000000
> >
> > Try node 0x15 and node 0x18
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel at alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
>
>


More information about the Alsa-devel mailing list