#2319 BLOC Trial-3: Horrible noise in TamTam upon resume
Zarro Boogs per Child
bugtracker at laptop.org
Mon Aug 27 03:33:05 EDT 2007
#2319: Horrible noise in TamTam upon resume
----------------------+-----------------------------------------------------
Reporter: ethrop | Owner: dilinger
Type: defect | Status: new
Priority: blocker | Milestone: Trial-3
Component: kernel | Version:
Resolution: | Keywords:
Verified: 0 |
----------------------+-----------------------------------------------------
Comment (by dilinger):
The DMA pointer registers are read-only; they should remain untouched.
The PRD stuff is already saved/restored, though my presumption is that
they contain incorrect data ( orone of the control flags in the PRD table
is wrong, and we run off into random memory). There is currently a race
in the suspend/resume stuff (we save the PRD registers, *then* disable
DMA; that's backwards. We also enable DMA and then restore PRD registers
in the resume path), but fixing that doesn't fix the error.
We only care about 2 BMs; 0 (playback) and 1 (capture). Their respective
control fields shouldn't require additional twiddling on suspend/resume,
as we only use it for enabling/disabling DMA.
I don't quite understand wtf we're doing with the DMA descriptors in the
driver (ie, cs5535audio_build_dma_packets); the mapping of alsa DMA
descriptors to the driver's descriptors could very well be wrong.
Alternatively, when we tear down the alsa sound stuff in suspend, we may
also be horking those DMA bufs/descriptors. Needs further investigation.
In terms of other bugs, we're treating the BM control register(s) as 32
bit rather than 8 bit fields, we're disabling the pci device before saving
its state, etc.. I'll submit patches for those upstream after we figure
out this bug.
--
Ticket URL: <http://dev.laptop.org/ticket/2319#comment:10>
One Laptop Per Child <http://laptop.org/>
More information about the Bugs
mailing list