I hope I'm not spamming this bug with information; as the cause is somewhat 
unclear, all these things may or may not be important in the end. There's two 
kinds of config data: pci and memory mapped. PCI can be checked using sysfs, 
About memory mapped registers. Find attached a dump of these before and after 
resume (and also a dump of the stream's BDL). Differences:
* pci 0x044 TCSEL traffic class select
* mem 0x030-0x033 wall clock
* mem 0x048-0x04a reserved
* mem 0x058-0x059 RIRB write pointer (constant during stream, differs 
before/after resume)
* mem 0x104-0x107 LPIB0 is different within stream, that was known already 
(differences before/after resume probably due to timing)
I shouldn't have missed anything, but I'm a bit tired at the moment.

And now for the really good news: try this after suspend ...
  # cd /sys/bus/pci/devices/0000:00:1b.0
  # dd if=config of=/tmp/foo
  # printf "\x0" | dd of=/tmp/foo bs=1 seek=68
  # dd if=/tmp/foo of=config
and play a sound file ...
Replace "\x0" with "\x7" to go back to the non-working state.

I don't know yet why TCSEL is 7 after resume. This note about TCSEL in
the HDA document may have an impact: "These bits are not reset on D3HOT
to D0 transition; however, they are reset by PLTRST#." Its default is
zero however.


** Attachment added: "hda-config-01.txt"
   http://launchpadlibrarian.net/8417105/hda-config-01.txt

-- 
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
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to