After the gpio-omap runtime PM changes, I noticed that the omap2_gpio_prepare_for_idle/omap2_gpio_resume_after_idle functions are a NOP in the case of suspend. void omap2_gpio_prepare_for_idle(int pwr_mode) { struct gpio_bank *bank; list_for_each_entry(bank, &omap_gpio_list, node) { if (!bank->mod_usage) continue; bank->power_mode = pwr_mode; pm_runtime_put_sync_suspend(bank->dev); } } void omap2_gpio_resume_after_idle(void) { struct gpio_bank *bank; list_for_each_entry(bank, &omap_gpio_list, node) { if (!bank->mod_usage) continue; pm_runtime_get_sync(bank->dev); } } (called from omap_pm_enter->omap3_pm_suspend->omap_sram_idle) At the point that platform_suspend_ops.enter is called, dpm_suspend_end has already been called which disables runtime_pm. During a suspend/resume where power is lost to certain GPIO banks, the context will not be restored. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html