andy git 06/15 suspend/resume observations

Andy Green andy at
Mon Jun 16 12:58:48 CEST 2008

Hash: SHA1

Somebody in the thread at some point said:

|> It's true, but those are different "registers" in the codec over i2c.
| Yep, I thought it's OT.
| But shouldn't this be direct reads of the *real* registers, for we don't
| use "2-wire"? Otherwise, i guess, ALSA has no idea of the changes that
can be
| made to registers via your newly invented device. And maybe would
restore the
| old register values whenever you change any of the alsamixer settings
| I read sth about all regs being set in a batch, not only the changed
| Anyway, I don't like this, caching of regs where you could read actual
| as well.

Even at 400kHz I2C sucks pretty badly on a modern device.  It even
stinks up its own driver model in Linux into requiring interrupts
enabled to use it, because transactions take so long.

The wolfson device doesn't support the bulk "autoincrement" mode for
register reloading, they have to be done one at a time which is part of
the reason it takes 700ms to get the device back to where it started
from at suspend time.  If we did do live reads at suspend time instead
of using the cached version, each suspend would be delayed by 700ms
likewise, pointlessly really.

Since nothing can write the registers without going through the driver
to do it, the cache should be up to date very well, allowing for
catastrophes like power loss private to the codec not noticed by the driver.

- -Andy
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -


More information about the openmoko-kernel mailing list