[alsa-devel] Dell N5110 HDA External Speaker is mute

Takashi Iwai tiwai at suse.de
Thu Jan 12 12:59:46 CET 2012

At Thu, 12 Jan 2012 11:51:12 +0000,
Cefn Hoile wrote:
> Thanks, Takashi.
> I don't know what tools and invocations to use test out the GPIO
> values you describe. I think you're saying I shouldn't bother toggling
> things through HDA Analyzer as there's nothing obviously wrong in that
> part of the configuration (as reported by alsa-info.sh which is
> attached as requested).
> I noticed in HD-Audio.txt a section which mentions a similar problem
> and IDT codecs specifically (below). Is there an IRC or mailing list
> where people could talk me through the basics of trying different
> GPIO/EAPD, Power Enable or Pin Sense manipulations. I wouldn't know
> how, yet. If I succeed I'll report back.
> Hopefully this will be worth it, as I think the N5110 is a pretty
> popular model with a common card, and probably a bunch of Dell
> hardware could get fixed if it could be figured out.

You can change the GPIO setup via hda-verb on the fly.
For example, to set GPIO bit 0, try
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
where the output direction is assumed, and only GPIO 0 is set.
For GPIO bit 1,
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x02
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x02
	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x02
and 0x04 for GPIO bit 2.  Your device have up to three GPIO bits.

If none of above doesn't any change, try to set DATA 0 instead of 1,
and/or DIR 0 instead of 1.


> QUOTING FROM HD-Audio.txt >>>>>>>
> If you are masochistic enough to debug the driver problem, note the
> following:
> - The speaker (and the headphone, too) output often requires the
>   external amplifier. This can be set usually via EAPD verb or a
>   certain GPIO. If the codec pin supports EAPD, you have a better
>   chance via SET_EAPD_BTL verb (0x70c). On others, GPIO pin (mostly
>   it's either GPIO0 or GPIO1) may turn on/off EAPD.
> - Some Realtek codecs require special vendor-specific coefficients to
>   turn on the amplifier. See patch_realtek.c.
> - IDT codecs may have extra power-enable/disable controls on each
>   analog pin. See patch_sigmatel.c.
> - Very rare but some devices don't accept the pin-detection verb until
>   triggered. Issuing GET_PIN_SENSE verb (0xf09) may result in the
>   codec-communication stall. Some examples are found in
>   patch_realtek.c.
> <<<<<<<<
> On 12 January 2012 11:25, Takashi Iwai <tiwai at suse.de> wrote:
> > At Thu, 12 Jan 2012 10:56:24 +0000,
> > Cefn Hoile wrote:
> >>
> >> In case anything has changed in my config since the original info run,
> >> here is the same script run right now...
> >>
> >> http://www.alsa-project.org/db/?f=d0a1fd23339878916b611c88e64e4868b45445ce
> >
> > Could you rather attach?  Then it'll be archived and searchable.
> >
> > Anyway, I don't see any obvious problem in the output.
> > If the pin assignment is correct, the routing and amp setups should be
> > OK with the current status.
> >
> > Maybe it's a missing GPIO setup.  Try to adjust GPIO mask, direction
> > and value bits.
> >
> >
> > Takashi

More information about the Alsa-devel mailing list