[alsa-devel] Intel HDA Driver - Bug
Takashi Iwai
tiwai at suse.de
Thu Jul 26 17:34:59 CEST 2007
At Thu, 26 Jul 2007 16:32:00 +0100,
Steven King wrote:
>
> Hi,
>
> I have been trying to get the sound on my Dell Inspiron 1720 laptop
> running under Debian Etch (STAC 9205). Originally, I could only get
> sound through the main speakers, there was no headphone sound or mic.
>
> I downloaded the latest alsa-drivers package (1.0.14), compiled it and
> installed it. I received the following messages (and the device would
> not register itself):
>
> hda_intel: azx_get_response timeout, switching to polling mode...
> hda_intel: azx_get_response timeout, switching to single_cmd mode...
>
> I started digging into the driver code and found an issue with one of
> the routines going outside an array.
>
> The offending code is (all in patch_sigmatel):
> static void stac92xx_set_config_regs(struct hda_codec *codec)
> {
> // ...
> for (i = 0; i < spec->num_pins; i++) {
> // ...
> }
>
> And in:
> static int patch_stac9205(struct hda_codec *codec)
> {
> // ..
> spec->num_pins = 14 ; //ERROR
> // ..
> }
>
> However, there are only 12 pins with 12 corresponding NIDs and default
> configuration so in stac92xx_set_config_regs it accesses
> spec->pin_configs[i] and spec->pin_nids[i] outside of bounds.
>
> Fix: Add a define (STAC_9205_MAX_PINS = 12) and use for array defines
> and num_pins.
It's a known problem and was fixed on HG repo weeks ago.
BTW, it seems that hg-mirror.alsa-project.org is out of sync. Try
hg.alsa-project.org instead.
thanks,
Takashi
More information about the Alsa-devel
mailing list