[alsa-devel] Fwd: Problems with hda_intel, Santa Rosa, and suspend

Matt Mullins mokomull at gmail.com
Fri Jul 6 00:13:48 CEST 2007


After some hacking, I found that for some reason, something is calling
azx_send_cmd with nids much wider than 7 bits.  This happens exactly
twice, once with nid=0x534c, and nid=0x8845.  Both times, the verb is
0xf1c, and para=0x00.  This clobbers parts of "val" in both
azx_single_send_cmd and azx_corb_send_cmd.  I added the following code
to azx_send_cmd, and it works now:
if (!direct && (nid >> 7)) {
        snd_printd(SFX "Uh oh, too wide an NID value. codec=0x%x,
direct=0x%x, nid=0x%x, verb=0x%x, para=0x%x\n", (codec->addr)&0xf,
direct, nid, verb, para);
        return -EIO;
}

This outputs:

[136890.000388] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide an NID value. codec=0x0, direct=0x0,
nid=0x534c, verb=0xf1c, para=0x0
[136890.000393] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide an NID value. codec=0x0, direct=0x0,
nid=0x8845, verb=0xf1c, para=0x0

I do realize that the problem is not completely fixed, and we still
need to figure out what actually calls azx_send_cmd with the offending
parameters.  However, I am now lost in a sea of function pointers...

And it still doesn't work after a suspend, and I get a handful more
"uh oh"s upon resume:
[    3.942647] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x534c, verb=0x71c, para=0xff
[    3.942658] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x534c, verb=0x71d, para=0xff
[    3.942668] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x534c, verb=0x71e, para=0xff
[    3.942678] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x534c, verb=0x71f, para=0xff
[    3.942688] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x534c, verb=0xf1c, para=0x0
[    3.942697] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x8845, verb=0x71c, para=0xff
[    3.942707] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x8845, verb=0x71d, para=0xff
[    3.942717] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x8845, verb=0x71e, para=0xff
[    3.942727] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x8845, verb=0x71f, para=0xff
[    3.942736] ALSA
/home/mmullins/Desktop/alsa/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/hda_intel.c:644:
hda-intel: Uh oh, too wide a NID value. codec=0x0, direct=0x0, nid
=0x8845, verb=0xf1c, para=0x0
----
Matt Mullins


More information about the Alsa-devel mailing list