Ubuntu

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

Reported by Aditya2204 on 2013-08-13
30
This bug affects 5 people
Affects Status Importance Assigned to Milestone
alsa-driver (Ubuntu)
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

Raymond (superquad-vortex2) wrote :
Changed in alsa-driver (Ubuntu):
status: New → Incomplete
Aditya2204 (aditya2204) wrote :
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.

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

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..!

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

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

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*

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.

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. =)

Raymond (superquad-vortex2) wrote :

which node is the subwoofer ?

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

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.

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...

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

Raymond (superquad-vortex2) wrote :

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

Shunjie (sj-jake) wrote :

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

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

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?

VincentTham (thamvmk) wrote :

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

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.

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

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. =(

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

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

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.

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

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

Any news for this one?

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)
David Henningsson (diwic) wrote :
Changed in alsa-driver (Ubuntu):
status: Expired → Triaged
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

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 ?

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

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

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

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
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)
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

how do I apply this patch on PC?

David Henningsson (diwic) wrote :

 > how do I apply this patch on PC?

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

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

Other bug subscribers