Hi! > > To have DMAs stopped, you need to "freeze" the devices. > > No you don't. > > You need to stop the high-level _queues_, but that's something totally > different from actually stopping the _devices_. Well, I believe you need the low-level devices, too. Even with high-level queues stopped, drivers may still do some DMA. (USB is the example, as is network receiving packet). > But that's fundamental: and it has absolutely zero to do with device > suspend (although you do want to tell the device about it - a number of > devices that do polling even in the absense of user input should probably > take the hint from "save your state"). Heh, yes, that's what we are doing :-). FREEZE tells devices to stop DMA and save state. It is just... most devices tend to implement FREEZE and SUSPEND with some code; and because SUSPEND implies stopping DMA (plus some powersaving), it is actually okay (but slower than it could be). Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html