I'm afraid I'm seeing no difference here. I had previously checked TCSEL because of the comment in the head of azx_init_chip(), and I had also made sure that azx_resume() was called, and in-turn was calling azx_init_chip().
I also put a check of the value of TCSEL in azx_init_chip() to see what value it had upon resume, and another at the end of azx_resume() to ensure the reset had been done.
I'm afraid I'm seeing no difference here. I had previously checked TCSEL because of the comment in the head of azx_init_chip(), and I had also made sure that azx_resume() was called, and in-turn was calling azx_init_chip().
I also put a check of the value of TCSEL in azx_init_chip() to see what value it had upon resume, and another at the end of azx_resume() to ensure the reset had been done.
... start-up ...
Jul 11 22:46:03 bagoas kernel: [ 17.736000] hda-intel: Allocated posbuf size=64
Jul 11 22:46:03 bagoas kernel: [ 17.736000] hda-intel: azx_init_chip: TCSEL=7
... Resume ...
Jul 11 22:50:33 bagoas kernel: [ 291.960000] hda-intel: azx_init_chip: TCSEL=7
Jul 11 22:50:33 bagoas kernel: [ 292.024000] hda-intel: azx_resume: TCSEL=0
With TCSEL confirmed as 0 I am still hearing the same problem after resume.
00000060 05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00 |.p..............|
static void azx_init_ chip(struct azx *chip)
{
unsigned char reg;
/* Clear bits 0-2 of PCI register TCSEL (at offset 0x44) config_ byte (chip->pci, ICH6_PCIREG_TCSEL, ®); config_ byte(chip- >pci, ICH6_PCIREG_TCSEL, reg & 0xf8); KERN_DEBUG SFX "%s: TCSEL=%X\n", __FUNCTION__, reg);
* TCSEL == Traffic Class Select Register, which sets PCI express QOS
* Ensuring these bits are 0 clears playback static on some HD Audio codecs
*/
pci_read_
pci_write_
#ifdef DEBUG_RESUME
snd_printk(
#endif
static int azx_resume(struct pci_dev *pci) drvdata( pci); config_ byte (chip->pci, ICH6_PCIREG_TCSEL, ®); KERN_DEBUG SFX "%s: TCSEL=%X\n", __FUNCTION__ , reg);
{
struct snd_card *card = pci_get_
struct azx *chip = card->private_data;
#ifdef DEBUG_RESUME
unsigned char reg;
#endif
...
#ifdef DEBUG_RESUME
pci_read_
snd_printk(
#endif
return 0;
}