# ALSA, hp laptop, ATI HD, front output jacks, no sound

## scribble

Hello Gentoo forum!

As the subject title insinuates I have problems getting sound out of the front jacks of my HP dv6 laptop. I'm at my wits end, I've searched around for similar problems and solutions for the better part of the week but not found anything. The laptops own (crappy) speakers work, so the Intel HD Audio device seems to work, but the is no output from either of the two output jacks at the front of the laptop.

I like to learn so there's a lot of questions here, hope you don't mind.  :Wink:  You know, learn a man to fish... Hopefully this will help other people solve their ALSA woes as well.

lspci -v

```
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)

        Subsystem: Hewlett-Packard Company Device 3628

        Flags: bus master, fast devsel, latency 0, IRQ 32

        Memory at da100000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [50] Power Management version 2

        Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Count=1/1 Enable+

        Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00

        Capabilities: [100] Virtual Channel <?>

        Capabilities: [130] Root Complex Link <?>

        Kernel driver in use: HDA Intel

        Kernel modules: snd-hda-intel

01:00.1 Audio device: ATI Technologies Inc Device aa38

        Subsystem: Hewlett-Packard Company Device 3628

        Flags: bus master, fast devsel, latency 0, IRQ 33

        Memory at da010000 (32-bit, non-prefetchable) [size=16K]

        Capabilities: [50] Power Management version 3

        Capabilities: [58] Express Legacy Endpoint, MSI 00

        Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Count=1/1 Enable+

        Capabilities: [100] Vendor Specific Information <?>

        Kernel driver in use: HDA Intel

        Kernel modules: snd-hda-intel

```

cat /usr/src/linux/.config

```
CONFIG_SND=y

CONFIG_SND_TIMER=y

CONFIG_SND_PCM=y

CONFIG_SND_JACK=y

CONFIG_SND_SEQUENCER=y

CONFIG_SND_SEQ_DUMMY=y

CONFIG_SND_OSSEMUL=y

CONFIG_SND_MIXER_OSS=y

CONFIG_SND_PCM_OSS=y

CONFIG_SND_PCM_OSS_PLUGINS=y

CONFIG_SND_SEQUENCER_OSS=y

CONFIG_SND_HRTIMER=y

CONFIG_SND_SEQ_HRTIMER_DEFAULT=y

CONFIG_SND_DYNAMIC_MINORS=y

CONFIG_SND_SUPPORT_OLD_API=y

CONFIG_SND_VERBOSE_PROCFS=y

CONFIG_SND_VMASTER=y

CONFIG_SND_DRIVERS=y

CONFIG_SND_PCI=y

CONFIG_SND_HDA_CODEC_ANALOG=y

CONFIG_SND_HDA_CODEC_SIGMATEL=y

CONFIG_SND_HDA_CODEC_ATIHDMI=y

CONFIG_SND_HDA_CODEC_INTELHDMI=y

CONFIG_SND_HDA_ELD=y

CONFIG_SND_HDA_CODEC_CONEXANT=y

CONFIG_SND_HDA_GENERIC=y

##    AS MODULES     ##

CONFIG_SND_AC97_CODEC=m

CONFIG_SND_ATIIXP=m

CONFIG_SND_ATIIXP_MODEM=m

CONFIG_SND_HDA_INTEL=m

CONFIG_SND_INTEL8X0=m

CONFIG_SND_INTEL8X0M=m

```

aplay -l

```
**** List of PLAYBACK Hardware Devices ****

card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 1: HDMI [HDA ATI HDMI], device 3: ATI HDMI [ATI HDMI]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

```

From /usr/src/linux/Documentation/sound/alsa/HD-Audio-Models.txt I got the Intel HD Audio device to work by inserting the following snippet into /etc/modprobe.conf in the ALSA section.

```
options snd-hda-intel model=hp-dv5
```

lsmod

```
Module                                Size       Used by

snd_hda_codec_analog      75544    0 

snd_hda_codec_conexant   23480    0 

snd_hda_codec_intelhdmi   13496    0 

fglrx                      2155976  30 

snd_hda_codec_atihdmi    4152        1 

snd_hda_codec_idt       62680      1 

snd_hda_intel             27592      1 

wl                      1262880    0 

snd_hda_codec        66744    6 

snd_hda_codec_analog,snd_hda_codec_conexant,snd_hda_codec_intelhdmi,snd_hda_codec_atihdmi,snd_hda_codec_idt,snd_hda_intel

intel_agp                29040     0

```

Alsaconf recognizes both cards, both show up in the interface when alsaconf asks which card I want to configure, but no matter which one I choose in that little menu, it's only the Intel device that gets the love. Might it be that since they are using the same module/driver the Intel device gets priority and the ATI device has to be quiet? 

Would there be a way of letting the ATI device get precedence?

Some laptops come with a sort of jack detection so that the hardware will know then a user plugs in headphone/etc into the audio output jacks, is that called message signaled interrupts or is it more power management features? (See lspci -v above)

If i modify /etc/modprobe.conf, I afterwards do a update-modules (as the config says), but what else needs to be done to load the new config? Seems to me I have to:

/etc/init.d/alsasound stop

unload the sound modules (they complain that they are being used(I wouldn't   :Embarassed:  ))

update-modules

load the modules

/etc/init.d/alsasound start

Is that substitutional for a reboot a la windows?

Does it matter which modules/drivers are loaded first via modprobe? Is coldplugging refering to the way udev (or something) automatically handles the modprobing at boot?

Thanks a thousand in advance!

----------

## scribble

Hm, come to think of it, I'm not 100% sure that the three jacks in the front of the laptop is connected to the ATI HDMI device, might be the Intel sound device instead. How do I find that out?

cat /proc/asound/card0/codec#0 | grep Node

```

Node 0x0a [Pin Complex] wcaps 0x400181: Stereo

Node 0x0b [Pin Complex] wcaps 0x400081: Stereo

Node 0x0c [Pin Complex] wcaps 0x400081: Stereo

Node 0x0d [Pin Complex] wcaps 0x400181: Stereo

Node 0x0e [Pin Complex] wcaps 0x400081: Stereo

Node 0x0f [Pin Complex] wcaps 0x400181: Stereo

Node 0x10 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L

Node 0x11 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out R/L

Node 0x12 [Audio Input] wcaps 0x1d0541: Stereo

Node 0x13 [Audio Input] wcaps 0x1d0541: Stereo

Node 0x14 [Pin Complex] wcaps 0x400100: Mono

Node 0x15 [Audio Selector] wcaps 0x300101: Stereo

Node 0x16 [Audio Mixer] wcaps 0x200100: Mono

Node 0x17 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In

Node 0x18 [Pin Complex] wcaps 0x40000b: Stereo Amp-In

Node 0x19 [Pin Complex] wcaps 0x40000b: Stereo Amp-In

Node 0x1a [Audio Selector] wcaps 0x30010d: Stereo Amp-Out

Node 0x1b [Audio Selector] wcaps 0x30010d: Stereo Amp-Out

Node 0x1c [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L

Node 0x1d [Audio Selector] wcaps 0x30090d: Stereo Amp-Out R/L

Node 0x1e [Pin Complex] wcaps 0x400301: Stereo Digital

Node 0x1f [Pin Complex] wcaps 0x400701: Stereo Digital

Node 0x20 [Pin Complex] wcaps 0x400301: Stereo Digital

Node 0x21 [Audio Output] wcaps 0x40211: Stereo Digital

Node 0x22 [Audio Output] wcaps 0x40211: Stereo Digital

Node 0x23 [Vendor Defined Widget] wcaps 0xf00000: Mono

Node 0x24 [Audio Selector] wcaps 0x300101: Stereo

Node 0x25 [Audio Selector] wcaps 0x300101: Stereo

Node 0x26 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

Node 0x27 [Volume Knob Widget] wcaps 0x600000: Mono

```

Does anyone have any idea of at least where to start looking to get the output jacks to work?

----------

## ewaller

My Pavilion DV4 uses message signaled interrupts.  If MSI is not set up correctly, the driver is not properly notified that something has been plugged in.

Ensure your kernel has PCI bus MSI enabled, and that your /etc/modprobe.d/alsa.conf contains a line like:

```
options snd-hda-intel enable_msi=1
```

In my case, I go further and provide the laptop type (Not sure if it is required, but if it aint broke...)

```
options snd-hda-intel model=hp-m4 enable_msi=1
```

Hope this helps

----------

## evan18h

I've got the same problem, only I have INTEL instead of ATI

aplay -l

```
**** List of PLAYBACK Hardware Devices ****

card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Intel [HDA Intel], device 1: STAC92xx Digital [STAC92xx Digital]

  Subdevices: 1/1

  Subdevice #0: subdevice #0

card 0: Intel [HDA Intel], device 3: INTEL HDMI [INTEL HDMI]

  Subdevices: 1/1

  Subdevice #0: subdevice #0
```

My sound works great from the system speakers, but if I try to plug in headphones I get sounds from my system speakers and nothing from the headphones.

I have tried enable_msi=1 and this doesn't seem to do the trick.

----------

## Ant P.

Try enabling CONFIG_SND_HDA_INPUT_JACK.

----------

## DaggyStyle

run /usr/sbin/update-pciids as root first and then repost your lspci output.

----------

## evan18h

Enabling CONFIG_SND_HDA_INPUT_JACK did not change the behavior.

lspci -v

```
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)

    Subsystem: Hewlett-Packard Company Device 3627

    Flags: bus master, fast devsel, latency 0, IRQ 32 

    Memory at da500000 (64-bit, non-prefetchable) [size=16K]

    Capabilities: [50] Power Management version 2

    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+

    Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00 

    Capabilities: [100] Virtual Channel <?>

    Capabilities: [130] Root Complex Link <?>

    Kernel driver in use: HDA Intel

    Kernel modules: snd-hda-intel
```

zcat /proc/config.gz | grep CONFIG_SND_HDA

```
CONFIG_SND_HDA_INTEL=m

CONFIG_SND_HDA_HWDEP=y

# CONFIG_SND_HDA_RECONFIG is not set

# CONFIG_SND_HDA_INPUT_BEEP is not set

CONFIG_SND_HDA_INPUT_JACK=y

# CONFIG_SND_HDA_CODEC_REALTEK is not set

CONFIG_SND_HDA_CODEC_ANALOG=y

CONFIG_SND_HDA_CODEC_SIGMATEL=y

# CONFIG_SND_HDA_CODEC_VIA is not set

# CONFIG_SND_HDA_CODEC_ATIHDMI is not set

# CONFIG_SND_HDA_CODEC_NVHDMI is not set

CONFIG_SND_HDA_CODEC_INTELHDMI=y

CONFIG_SND_HDA_ELD=y

CONFIG_SND_HDA_CODEC_CONEXANT=y

CONFIG_SND_HDA_CODEC_CA0110=y

# CONFIG_SND_HDA_CODEC_CMEDIA is not set

# CONFIG_SND_HDA_CODEC_SI3054 is not set

CONFIG_SND_HDA_GENERIC=y

CONFIG_SND_HDA_POWER_SAVE=y

CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
```

----------

## evan18h

I just upgraded my kernel from 2.6.31-gentoo-r10 to 2.6.32-gentoo-r7 and it looks like it all works now! Even my mute button light changes color when you toggle it, like it should.

----------

