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)
* 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_config_byte (chip->pci, ICH6_PCIREG_TCSEL, ®);
pci_write_config_byte(chip->pci, ICH6_PCIREG_TCSEL, reg & 0xf8);
#ifdef DEBUG_RESUME
snd_printk(KERN_DEBUG SFX "%s: TCSEL=%X\n", __FUNCTION__, reg);
#endif
static int azx_resume(struct pci_dev *pci)
{
struct snd_card *card = pci_get_drvdata(pci);
struct azx *chip = card->private_data;
#ifdef DEBUG_RESUME
unsigned char reg;
#endif
...
#ifdef DEBUG_RESUME
pci_read_config_byte (chip->pci, ICH6_PCIREG_TCSEL, ®);
snd_printk(KERN_DEBUG SFX "%s: TCSEL=%X\n", __FUNCTION__ , reg);
#endif
return 0;
}
--
snd-hda-intel: distorted sound after resume, until the module is reloaded
https://bugs.launchpad.net/bugs/100114
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs