Hi Geert, > > static inline bool i2c_in_atomic_xfer_mode(void) > > { > > return system_state > SYSTEM_RUNNING && irqs_disabled(); > > So i2c atomic transfers are really meant to be used during late system suspend > only, and not in atomic context before, when irqs_disabled() is true? Yes. It is all some time ago, I recall we agreed that there shouldn't be any other I2C communication at irqs_disabled() stage. > Perhaps we need a checker config option, to make sure the atomic transfer > operation is exercised at least once during boot? Testing I2C controllers (in various ways) is a well-desired feature :/ > Do we need a way to let i2c slaves indicate they plan to use atomic > transfers later, so the i2c core can keep the i2c controller resumed? I wanted to have this originally, but in the end I gave up on it. IIRC, you don't want to whitelist a client in general, but only the very late messages it sends. However, if a message needs to be flagged may be board specific. It all looked messy and hard to configure, so we ended up with what we have now. Take all this with a grain of salt, it's been a while since the discussions happened. All the best, Wolfram
Attachment:
signature.asc
Description: PGP signature