On 12/04/2015 12:54 PM, Sudeep Holla wrote: > Hi Grygorii, > > On 04/12/15 10:44, Grygorii Strashko wrote: >> On 12/03/2015 11:37 PM, Tony Lindgren wrote: > > [...] > >>> And these both need to be applied together when we have a fix for the >>> above >>> as otherwise we'll get the lock recursion Sudeep mentioned in patch 2/2. >>> >> >> Most probably below diff will fix above issue: >> >> diff --git a/arch/arm/mach-omap2/prm_common.c >> b/arch/arm/mach-omap2/prm_common.c >> index 3fc2cbe..69cde67 100644 >> --- a/arch/arm/mach-omap2/prm_common.c >> +++ b/arch/arm/mach-omap2/prm_common.c >> @@ -338,6 +338,7 @@ int omap_prcm_register_chain_handler(struct >> omap_prcm_irq_setup *irq_setup) >> ct->chip.irq_ack = irq_gc_ack_set_bit; >> ct->chip.irq_mask = irq_gc_mask_clr_bit; >> ct->chip.irq_unmask = irq_gc_mask_set_bit; >> + ct->chip.flags = IRQCHIP_SKIP_SET_WAKE; > > Thanks for testing. Sry, I've not tested it yet - it's just fast assumption :( In that case without this hunk, we should get error > from pcs_irq_set_wake in the suspend path. No ? May be driver is not > checking the error value and entering suspend. > Yep. Noone is checking return result from enable_irq_wake() in suspend path (see dev_pm_arm_wake_irq()). Actually, return result of enable_irq_wake() is checked only in ~30% of cases in kernel now :) -- regards, -grygorii -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html