andy git 06/15 suspend/resume observations

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


-----BEGIN PGP SIGNED MESSAGE-----
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
(Think
| I read sth about all regs being set in a batch, not only the changed
one).
| Anyway, I don't like this, caching of regs where you could read actual
value
| 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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEUEARECAAYFAkhWR2gACgkQOjLpvpq7dMrEMwCY4TAo7YLBcLlp7GBT2H5RKAyu
8wCfaaQhY9mInC9S/7YcezXTMIIYVsI=
=UKYZ
-----END PGP SIGNATURE-----




More information about the openmoko-kernel mailing list