[alsa-devel] I2C controller vs. WM8903 suspend ordering

Mark Brown broonie at opensource.wolfsonmicro.com
Wed Aug 3 01:46:23 CEST 2011

On Tue, Aug 02, 2011 at 11:34:18AM -0700, Stephen Warren wrote:

> We've found that switching the Tegra I2C controller from struct
> platform_driver.{suspend,resume} to .{suspend,resume}_noirq solves this.
> However, this seems like it's more of an accident than registering an
> explicit dependency, especially since most I2C controllers just use
> suspend rather than suspend_noirq.

This is about as good as it gets, actually - I2C controllers should
generally suspend very late and resume early as they're needed for core
system components like the RTC and PMIC.

> Is there a way to explicitly indicate that sound should be suspended before
> the I2C controller? I assume the issue is more that snd_soc_suspend shuts

No, this is a general limitation in the Linux PM model.  Everything goes
by the order that devices got registered in.  There's nothing doing at
the minute without core work other than bodges like _noirq.

More information about the Alsa-devel mailing list