[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