Re: Fwd: Problems with hda_intel, Santa Rosa, and suspend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux