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