Low audio output / missing subwoofer on Vostro 5460/5470 (with Ubuntu pre-loaded)

Bug #1211920 reported by Aditya2204
34
This bug affects 6 people
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
Fix Released
Undecided
David Henningsson

Bug Description

I have been using a Dell Vostro 5460 for a while. It came pre-loaded with Ubuntu 12.04. Also, I could find some customizations in the same.

And there's an issue of low audio output that I am facing. I have been using the 12.10 and 13.04 versions currently and the issue affects them too.
Also, reportedly Windows users are facing no such issues.

Some discussion regarding the same can be found at:

http://ubuntuforums.org/showthread.php?t=2152776
http://ubuntuforums.org/showthread.php?t=2159407

Tags: patch
Revision history for this message
Raymond (superquad-vortex2) wrote :
Changed in alsa-driver (Ubuntu):
status: New → Incomplete
Revision history for this message
Aditya2204 (aditya2204) wrote :
Revision history for this message
Aditya2204 (aditya2204) wrote :
Revision history for this message
David Henningsson (diwic) wrote :

Hi Aditya2204,

The audio customisation done on this platform (on the preload install) is to add a daily DKMS package - see https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS for how to do the same.

I can also confirm that we never enabled the subwoofer on Ubuntu for this machine. Whether this is the entire cause for the low speaker output I don't know for sure.

Revision history for this message
Raymond (superquad-vortex2) wrote :

try hda-jack-retask to fix the pin default of node 0x17 to [fixed] speaker at int if this node is the subwoofer

Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states: D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f

Revision history for this message
Aditya2204 (aditya2204) wrote :

Hey..!

Thanks for the prompt reply guys..!

diwic:
I tested the playback with the dkms package for my 13.04 installation. Seemingly, the audio output has increased but only slightly.
Also, from what I could gather from other sources, this laptop shall provide adequate audio output from its speakers itself ( without the sub-woofers i.e.) which is not the case.

Raymond:
Well, I could locate an appropriate package for raring, but don't know what to manipulate in the mentioned application.
On selecting 'Show unconnected pins', I see an entry for 0x17 and on it, it says 'Not connected'.
Selecting 'Override' gives me options for 'Line out' and 'Internal speaker'. Help me proceed with the same.

Thanks again guys..!

Revision history for this message
Raymond (superquad-vortex2) wrote :

if your headphone Jack, Mic jack, spreaker and internal Mic are working

the subwofer will be one of the remainIng pin complex which pin cap support OUT

what you need is to connect one of those candidate to audio output , set pin ctls to OUT and unmute the amp in those audio mixer or selector from pin complex to audio output by hda-analyser

sys/class/sound/hwC0D0/init_pin_configs:
0x12 0x400a0000
0x13 0x411111f0
0x14 0x90170110
0x15 0x0321101f
0x16 0x411111f0
0x17 0x411111f0
0x18 0x411111f0
0x19 0x90a70120
0x1a 0x03a1102e
0x1b 0x411111f0
0x1d 0x4056832d
0x1e 0x411111f0

Revision history for this message
Raymond (superquad-vortex2) wrote :

seem only need to test node 0x16, 0x17, 0x18 and 0x1b

Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals: [0x80] [0x00]
  Connection: 2
     0x02 0x03

Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states: D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f

Revision history for this message
Raymond (superquad-vortex2) wrote :

ChanGE amp-out vale from 0x80 to 0x00 and pin-ctls from 0x00 to 0x40 OUT

Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
   Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
   Amp-Out vals: [0x80]
   Pincap 0x00000010: OUT
   Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
     Conn = 1/8, Color = Black
     DefAssociation = 0xf, Sequence = 0x0
     Misc = NO_PRESENCE
   Pin-ctls: 0x00:

similar to your speak node 0x14 but with sequence 1 in pin default

Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x00 0x00]
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states: D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c 0x0d*

Revision history for this message
Shunjie (sj-jake) wrote :

Hi, I am having the same setup.
I am running dell vostro 5460 with ubuntu 12.04.3 with kernel 3.2.0-52-generic and GNOME 3.4.2.

I am sorry for not being exactly clear on how to use the script that you have written.
Do I paste into certain files to test it out? If test is needed, please do let me know.

Thank you.

Revision history for this message
Raymond (superquad-vortex2) wrote :
Revision history for this message
Shunjie (sj-jake) wrote :

yes, I have just used hda-jack-retask and the subwoofer is finally giving out very clear sound. and it is very loud too.

thank you so much. =)

Revision history for this message
Raymond (superquad-vortex2) wrote :

which node is the subwoofer ?

can you post the output of alsa-info.sh when the subwoofer is working ?

Revision history for this message
Shunjie (sj-jake) wrote :

~$ alsa-info.sh
alsa-info.sh: command not found

I have no idea why but I guess i do not have this ppa.
anyway, here's what i have amended:

Pin ID: 0x17
Connectivity: internal
Location: Rear
Device: Speaker
Jack: Unknown
Color: Black
Jack detection: Not present
Channel group: 1
Channel (in group) : Front

I hope this helps as this certainly transformed my sound experience.

Revision history for this message
Raymond (superquad-vortex2) wrote :
Revision history for this message
Shunjie (sj-jake) wrote :
Download full text (30.8 KiB)

!!################################
!!ALSA Information Script v 0.4.62
!!################################

!!Script ran on: Thu Sep 5 13:32:28 UTC 2013

!!Linux Distribution
!!------------------

Ubuntu 12.04.3 LTS \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS" NAME="Ubuntu" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu precise (12.04.3 LTS)"

!!DMI Information
!!---------------

Manufacturer: Dell Inc.
Product Name: Vostro 5460
Product Version:
Firmware Version: A05

!!Kernel Information
!!------------------

Kernel release: 3.2.0-52-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.25
Utilities version: 1.0.25

!!Loaded ALSA modules
!!-------------------

snd_hda_intel

!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - Yes

!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf2610000 irq 47

!!PCI Soundcards installed in the system
!!--------------------------------------

00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)

!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:1b.0 0403: 8086:1e20 (rev 04)
 Subsystem: 1028:05da

!!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
snd-hda-intel: patch=hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw

!!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 : N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
 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
 jackpoll_ms : 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
 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 : hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,hda-jack-retask.fw,(null),(null),(null),(null),(null),(null),(null),(null),(nul...

Revision history for this message
Raymond (superquad-vortex2) wrote :

you may need patch similar to

http://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/pci/hda?id=ac612407932be18697b5ae9da0a80f138b8bea8e

static struct snd_pci_quirk alc269_fixup_tbl[] = {
  SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO),
  SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
+ SND_PCI_QUIRK(0x1043, 0x1a13, "Dell Vostro 5460", ALC269_FIXUP_ASUS_G73JW),
  SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_LENOVO_EDGE14),
 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
  {}
 };

or you define a new fixup ALC290_FIXUP_DELL_VOSTRO_5460 instead of using ALC269_FIXUP_ASUS_G73JW

Revision history for this message
Raymond (superquad-vortex2) wrote :

SND_PCI_QUIRK(0x1028, 0x05da, "Dell Vostro 5460", ALC269_FIXUP_ASUS_G73JW),

Revision history for this message
Shunjie (sj-jake) wrote :

Sorry that I do not understand the meaning of patching similar to the link.

Revision history for this message
Raymond (superquad-vortex2) wrote :

+ [ALC269_FIXUP_ASUS_G73JW] = {
+ .pins = (const struct alc_pincfg[]) {
+ { 0x17, 0x99130111 }, /* subwoofer */
+ { }
+ }
+ },

the objective is to fixup the pin default of pin complex node 0x17 when BIOS did not set it properly

Revision history for this message
Shunjie (sj-jake) wrote :

okay, i understand the objective now. i have 2 issues:

1) i know the objective but i do not know how to fix it. i do not understand the meaning and how i can use the lines you have input.

2) now that i have fixed the sound clarity with hda-jack-retask, is it still necessary to do the patching?

Revision history for this message
VincentTham (thamvmk) wrote :

Yes, I've installed the hda-jack-retask and able to have the subwoofer working. Thanks.

Revision history for this message
Shunjie (sj-jake) wrote :

i have just discovered the sound quality of the speaker jacks is being affected from the hda-jack-retask.

The sound quality is not clear.

Revision history for this message
Raymond (superquad-vortex2) wrote :

can you use hda-analyzer to mute amp in of either connection to node 2 or node 3 ?

Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono
Amp-In Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
 Amp-In vals: [0x00] [0x00]
Connection: 2
 0x02 0x03

Revision history for this message
Shunjie (sj-jake) wrote :

i cannot use hda-analyzer.
it keeps prompting me to try using as the root user even after i have log into root user. =(

Revision history for this message
Raymond (superquad-vortex2) wrote :

using hda-emu with the patched alsa-info

send: NID=0xf, VERB=0xf00(get_parameters), PARM=0xd(amp_in_cap)
receive: 0x80000000
send: NID=0xf, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x0
receive: 0x0
send: NID=0xf, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x0
receive: 0x0
send: NID=0xf, VERB=0xb20(get_amp_gain_mute,I:L#0), PARM=0x1
receive: 0x0
send: NID=0xf, VERB=0xb00(get_amp_gain_mute,I:R#0), PARM=0x1
receive: 0x0

the driver muted the connection from node 0x02

send: NID=0xf, VERB=0x360(set_amp_gain_mute,I:L#0), PARM=0x80
send: NID=0xf, VERB=0x350(set_amp_gain_mute,I:R#0), PARM=0x80

and unmuted the connection from node 0x03

send: NID=0xf, VERB=0x361(set_amp_gain_mute,I:L#1), PARM=0x0
send: NID=0xf, VERB=0x351(set_amp_gain_mute,I:R#1), PARM=0x0

you can use hda-verb to mute the connection 0x02 at node 0x0f

Revision history for this message
Raymond (superquad-vortex2) wrote :

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/plain/Documentation/sound/alsa/HD-Audio.txt

you need to find out when the connection from node 0x02 at node 0x0f is unmuted

Revision history for this message
Raymond (superquad-vortex2) wrote :

need root privige to acces the /dev/snd/hwC*

sudo hda-verb

hda-verb
~~~~~~~~
hda-verb is a tiny program that allows you to access the HD-audio
codec directly. You can execute a raw HD-audio codec verb with this.
This program accesses the hwdep device, thus you need to enable the
kernel config `CONFIG_SND_HDA_HWDEP=y` beforehand.

The hda-verb program takes four arguments: the hwdep device file, the
widget NID, the verb and the parameter. When you access to the codec
on the slot 2 of the card 0, pass /dev/snd/hwC0D2 to the first
argument, typically. (However, the real path name depends on the
system.)

The second parameter is the widget number-id to access. The third
parameter can be either a hex/digit number or a string corresponding
to a verb. Similarly, the last parameter is the value to write, or
can be a string for the parameter type.

Revision history for this message
Shunjie (sj-jake) wrote :

Finally i can go to root and i am able to use hda-analyzer.

However;
hda-verb: command not found

Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Control: name="Bass Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=1, idx=0, ofs=0
  Control: iface="card", name="Speaker Surround Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: 0x00
  Pincap 0x00000010: OUT
  Pin Default 0x81101110: [Fixed] Speaker at Ext Rear
    Conn = Unknown, Color = Black
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for alsa-driver (Ubuntu) because there has been no activity for 60 days.]

Changed in alsa-driver (Ubuntu):
status: Incomplete → Expired
Revision history for this message
extraymond@gmail.com (extraymond) wrote :

Any news for this one?

Revision history for this message
David Henningsson (diwic) wrote :

Attaching alsa-info from Dell Vostro 5470. It is also missing the subwoofer, which is at pin 0x17.

In addition, DAC node 0x03 is mono for some reason. Probably it is expected to run both headphones and front speakers through DAC node 0x02 and the sub speaker through 0x03.

summary: - Low audio output on Vostro 5460 (with Ubuntu pre-loaded)
+ Low audio output / missing subwoofer on Vostro 5460/5470 (with Ubuntu
+ pre-loaded)
Revision history for this message
David Henningsson (diwic) wrote :
Changed in alsa-driver (Ubuntu):
status: Expired → Triaged
Revision history for this message
David Henningsson (diwic) wrote :

So the 5460 (PCI SSID 1028:05da) and the 5470 is actually slightly different. Both 5460 and 5470 suffer from the mono DAC node at 0x03 problem. The difference is that the 5470 needs the headset mode patch set as well, whereas 5460 has independent detection for headphone and mic (i e, can distinguish a headset from a headphone).

For the surround 2.1 mode to show up in PulseAudio you also need to add this section to the relevant file:

[Mapping analog-surround-21]
device-strings = surround21:%f surround40:%f
channel-map = front-left,front-right,lfe,lfe
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-desktop-speaker
priority = 8
direction = output

Revision history for this message
Raymond (superquad-vortex2) wrote :

as node 0x12 is mono pin complex, is node 0x0f a downmix wiget ?

why do the driver use 4 channels since both DAC 0x02 and 0x03 and use the same channel tag ?

are the low pass filter ?

Revision history for this message
Raymond (superquad-vortex2) wrote :

autoconfig: line_outs=2 (0x14/0x17/0x0/0x0/0x0) type:speaker
   speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
   hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
   mono: mono_out=0x0
   inputs:
     Internal Mic=0x19
     Mic=0x1a

but the current driver won't use DAC 0x2 for headphone and speaker , 0x03 for subwoofer in any of the trials

==> lo_type=1, wired=1, mio=1, badness=0x112
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15
==> lo_type=1, wired=1, mio=0, badness=0x112
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15
==> lo_type=1, wired=0, mio=1, badness=0x112
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15
==> lo_type=1, wired=0, mio=0, badness=0x112
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15
==> lo_type=2, wired=1, mio=1, badness=0x20
multi_outs = 15/0/0/0 : 2/0/0/0 (type HP)
  out path: depth=3 :02:0c:15
spk_outs = 14/17/0/0 : 3/3/0/0
  spk path: depth=3 :03:0d:14
  spk path: depth=3 :03:0f:17
==> lo_type=2, wired=1, mio=0, badness=0x20
multi_outs = 15/0/0/0 : 2/0/0/0 (type HP)
  out path: depth=3 :02:0c:15
spk_outs = 14/17/0/0 : 3/3/0/0
  spk path: depth=3 :03:0d:14
  spk path: depth=3 :03:0f:17
==> lo_type=2, wired=0, mio=1, badness=0x20
multi_outs = 15/0/0/0 : 2/0/0/0 (type HP)
  out path: depth=3 :02:0c:15
spk_outs = 14/17/0/0 : 3/3/0/0
  spk path: depth=3 :03:0d:14
  spk path: depth=3 :03:0f:17
==> lo_type=2, wired=0, mio=0, badness=0x20
multi_outs = 15/0/0/0 : 2/0/0/0 (type HP)
  out path: depth=3 :02:0c:15
spk_outs = 14/17/0/0 : 3/3/0/0
  spk path: depth=3 :03:0d:14
  spk path: depth=3 :03:0f:17
==> restoring best_cfg
==> Best config: lo_type=2, wired=1, mio=1
multi_outs = 15/0/0/0 : 2/0/0/0 (type HP)
  out path: depth=3 :02:0c:15
spk_outs = 14/17/0/0 : 3/3/0/0
  spk path: depth=3 :03:0d:14
  spk path: depth=3 :03:0f:17

Revision history for this message
Raymond (superquad-vortex2) wrote :

do you mean driver should select this as best config

==> lo_type=1, wired=0, mio=0, badness=0x112
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15

Revision history for this message
Raymond (superquad-vortex2) wrote :

does pulseaudio really like headphone and speaker share same volume control ???

autoconfig: line_outs=2 (0x14/0x17/0x0/0x0/0x0) type:speaker
   speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
   hp_outs=1 (0x15/0x0/0x0/0x0/0x0)
   mono: mono_out=0x0
   inputs:
     Internal Mic=0x19
     Mic=0x1a

==> restoring best_cfg
==> Best config: lo_type=1, wired=1, mio=1
multi_outs = 14/17/0/0 : 2/3/0/0 (type SP)
  out path: depth=3 :02:0c:14
  out path: depth=3 :03:0f:17
hp_outs = 15/0/0/0 : 2/0/0/0
  hp path: depth=3 :02:0c:15

CTRL: add: Front Playback Volume:0
CTRL: add: Speaker Playback Switch:0
CTRL: add: Bass Speaker Playback Volume:0
CTRL: add: Bass Speaker Playback Switch:0
CTRL: add: Headphone Playback Switch:0

Node 0x0c [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals: [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x02 0x0b
Node 0x0d [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals: [0x00 0x00] [0x00 0x00]
  Connection: 2
     0x03 0x0b

Node 0x0f [Audio Mixer] wcaps 0x20010a: Mono Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-In vals: [0x80] [0x00]
  Connection: 2
     0x02 0x03

Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Front Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80 0x80]
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x90170110: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Unsolicited: tag=00, enabled=0
  Power states: D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d

Node 0x15 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80 0x80]
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x0321101f: [Jack] HP Out at Ext Left
    Conn = 1/8, Color = Black
    DefAssociation = 0x1, Sequence = 0xf
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states: D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d

Node 0x17 [Pin Complex] wcaps 0x40050c: Mono Amp-Out
  Control: name="Bass Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=1, dir=Out, idx=0, ofs=0
  Control: name="Speaker Surround Phantom Jack", index=0, device=0
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals: [0x80]
  Pincap 0x00000010: OUT
  Pin Default 0x90170151: [Fixed] Speaker at Int N/A
    Conn = Analog, Color = Unknown
    DefAssociation = 0x5, Sequence = 0x1
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states: D0 D1 D2 D3
  Power: setting=D0, actual=D0
  Connection: 1
     0x0f

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "add no_subwoofer_volume_badness for notebook with subwoofer" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Revision history for this message
David Henningsson (diwic) wrote : [PATCH] ALSA: hda - Enable subwoofer on Dell Vostro 5460/5470
Download full text (4.7 KiB)

In this case, there are two DACs, and DAC 0x03 is mono. In order
to make headphones and front speaker use DAC 0x02, and subwoofer use
DAC 0x03, we artificially cut the connection from nodes 0x14 and 0x15
to node 0x03, so they can only use DAC 0x02.

In addition, the 5460 and 5470 differs in the sense that 5470 also
needs a headset mic patch, whereas 5460 has individual detection for
headphone and headset mic.

BugLink: https://bugs.launchpad.net/bugs/1211920
Signed-off-by: David Henningsson <email address hidden>
---

I'm adding Kailang to cc on this one; hopefully he'll scream if this patch
is doing anything dangerous, such as if there's a risk to blow up the subwoofer.

 sound/pci/hda/patch_realtek.c | 43 +++++++++++++++++++++++++++++++++++------
 1 file changed, 37 insertions(+), 6 deletions(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index dfe4080..16c0caa 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3770,10 +3770,14 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec,
 static void alc290_fixup_mono_speakers(struct hda_codec *codec,
            const struct hda_fixup *fix, int action)
 {
- if (action == HDA_FIXUP_ACT_PRE_PROBE)
- /* Remove DAC node 0x03, as it seems to be
- giving mono output */
- snd_hda_override_wcaps(codec, 0x03, 0);
+ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
+ /* DAC node 0x03 is giving mono output. We therefore want to
+ make sure 0x14 (front speaker) and 0x15 (headphones) use the
+ stereo DAC, while leaving 0x17 (bass speaker) for node 0x03. */
+ hda_nid_t conn1[2] = { 0x0c };
+ snd_hda_override_conn_list(codec, 0x14, 1, conn1);
+ snd_hda_override_conn_list(codec, 0x15, 1, conn1);
+ }
 }

 #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
@@ -3913,6 +3917,9 @@ enum {
  ALC282_FIXUP_ASUS_TX300,
  ALC283_FIXUP_INT_MIC,
  ALC290_FIXUP_MONO_SPEAKERS,
+ ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
+ ALC290_FIXUP_SUBWOOFER,
+ ALC290_FIXUP_SUBWOOFER_HSJACK,
  ALC269_FIXUP_THINKPAD_ACPI,
  ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
  ALC255_FIXUP_HEADSET_MODE,
@@ -4235,9 +4242,31 @@ static const struct hda_fixup alc269_fixups[] = {
   .chained = true,
   .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
  },
+ [ALC290_FIXUP_SUBWOOFER_HSJACK] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x17, 0x90170112 }, /* subwoofer */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
+ },
+ [ALC290_FIXUP_SUBWOOFER] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x17, 0x90170112 }, /* subwoofer */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC290_FIXUP_MONO_SPEAKERS,
+ },
  [ALC290_FIXUP_MONO_SPEAKERS] = {
   .type = HDA_FIXUP_FUNC,
   .v.func = alc290_fixup_mono_speakers,
+ },
+ [ALC290_FIXUP_MONO_SPEAKERS_HSJACK] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc290_fixup_mono_speakers,
   .chained = true,
   .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
  },
@@ -4282,6 +4311,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
  SND_PCI_QUIRK(0x1028, 0x05cb, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE),
  SND_PCI_QUIRK(0x1028, 0x05cc, "Dell X5...

Read more...

Changed in alsa-driver (Ubuntu):
status: Triaged → In Progress
assignee: nobody → David Henningsson (diwic)
Revision history for this message
Takashi Iwai (tiwai) wrote :
Download full text (5.1 KiB)

At Fri, 20 Dec 2013 16:08:13 +0100,
David Henningsson wrote:
>
> In this case, there are two DACs, and DAC 0x03 is mono. In order
> to make headphones and front speaker use DAC 0x02, and subwoofer use
> DAC 0x03, we artificially cut the connection from nodes 0x14 and 0x15
> to node 0x03, so they can only use DAC 0x02.
>
> In addition, the 5460 and 5470 differs in the sense that 5470 also
> needs a headset mic patch, whereas 5460 has individual detection for
> headphone and headset mic.
>
> BugLink: https://bugs.launchpad.net/bugs/1211920
> Signed-off-by: David Henningsson <email address hidden>
> ---
>
> I'm adding Kailang to cc on this one; hopefully he'll scream if this patch
> is doing anything dangerous, such as if there's a risk to blow up the subwoofer.

OK, I applied it now to for-next branch. Let me know if this is to be
removed.

thanks,

Takashi

>
> sound/pci/hda/patch_realtek.c | 43 +++++++++++++++++++++++++++++++++++------
> 1 file changed, 37 insertions(+), 6 deletions(-)
>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index dfe4080..16c0caa 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -3770,10 +3770,14 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec,
> static void alc290_fixup_mono_speakers(struct hda_codec *codec,
> const struct hda_fixup *fix, int action)
> {
> - if (action == HDA_FIXUP_ACT_PRE_PROBE)
> - /* Remove DAC node 0x03, as it seems to be
> - giving mono output */
> - snd_hda_override_wcaps(codec, 0x03, 0);
> + if (action == HDA_FIXUP_ACT_PRE_PROBE) {
> + /* DAC node 0x03 is giving mono output. We therefore want to
> + make sure 0x14 (front speaker) and 0x15 (headphones) use the
> + stereo DAC, while leaving 0x17 (bass speaker) for node 0x03. */
> + hda_nid_t conn1[2] = { 0x0c };
> + snd_hda_override_conn_list(codec, 0x14, 1, conn1);
> + snd_hda_override_conn_list(codec, 0x15, 1, conn1);
> + }
> }
>
> #if IS_ENABLED(CONFIG_THINKPAD_ACPI)
> @@ -3913,6 +3917,9 @@ enum {
> ALC282_FIXUP_ASUS_TX300,
> ALC283_FIXUP_INT_MIC,
> ALC290_FIXUP_MONO_SPEAKERS,
> + ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
> + ALC290_FIXUP_SUBWOOFER,
> + ALC290_FIXUP_SUBWOOFER_HSJACK,
> ALC269_FIXUP_THINKPAD_ACPI,
> ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
> ALC255_FIXUP_HEADSET_MODE,
> @@ -4235,9 +4242,31 @@ static const struct hda_fixup alc269_fixups[] = {
> .chained = true,
> .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
> },
> + [ALC290_FIXUP_SUBWOOFER_HSJACK] = {
> + .type = HDA_FIXUP_PINS,
> + .v.pins = (const struct hda_pintbl[]) {
> + { 0x17, 0x90170112 }, /* subwoofer */
> + { }
> + },
> + .chained = true,
> + .chain_id = ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
> + },
> + [ALC290_FIXUP_SUBWOOFER] = {
> + .type = HDA_FIXUP_PINS,
> + .v.pins = (const struct hda_pintbl[]) {
> + { 0x17, 0x90170112 }, /* subwoofer */
> + { }
> + },
> + .chained = true,
> + .chain_id = ALC290_FIXUP_MONO_SPEAKERS,
> + },
> [ALC290_FIXUP_MONO_SPEAKERS] = {
> .type = HDA_FIXUP_FUNC,
> .v.func = alc290_fixup_mono_speakers,
> + },
> + [ALC290_FIXUP_MONO_SPEAKERS_HSJACK] = {
> + .type = HDA_...

Read more...

Changed in alsa-driver (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Vitor Morato Almeida (vitor-morato-almeida) wrote :

how do I apply this patch on PC?

Revision history for this message
David Henningsson (diwic) wrote :

 > how do I apply this patch on PC?

https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS

Changed in alsa-driver (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Aditya2204 (aditya2204) wrote :

When shall I see the relevant update on my system? Will it be available in the current Ubuntu release (14.04)? Or in some other kernel version?

Revision history for this message
David Henningsson (diwic) wrote :

> When shall I see the relevant update on my system? Will it be available in the current Ubuntu release (14.04)?
> Or in some other kernel version?

It is fixed in 14.10, or in 14.04 with upgraded hwe stack. Both will take some time before release, so until then, if you want to try, use this method:

https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.