Subject: N900 sleep mode (in 4.5-rc0, if that matters)

From: [email-masked] (Tony Lindgren)
Date: Mon, 4 Apr 2016 15:31:24 -0700

* Pali Roh?r <[email-masked]> [160404 04:10]:
> On Wednesday 30 March 2016 12:12:09 Tony Lindgren wrote:
> > > How idle system do I need to have? Screen is blanked and machine
> > > should be mostly idle, but there's X running on another vt with Mate
> > > desktop, and some python scripts... GSM modem should be online.
> > 
> > Well I think it's the USB only you have blocking deeper idle states.
> > 
> > Are you sure you rmmod:ed all the USB related modules like in my
> > test script?
> > 
> > MUSB currently has an unresolved issue where it blocks idle states
> > if loaded.
> 
> Is somebody working on this musb issue? Is there any progress?

No idea when I might get to it.. Please take a look if you have  a
chance to work on it, I think all we have to do:

1. Change musb_gadget_pullup() to run as tasklet/delayed_work to
   avoid trying to access I2C PHY's from atomic context. See
   3e43a0725637 ("usb: musb: core: add pm_runtime_irq_safe()")
   for more info. Not sure if this should be done in a generic
   way or for MUSB only. It could be that I remember wrong what
   I thought needs to be done. But we want to get rid of the
   pm_runtime_irq_save() as that currently forever blocks PM
   for the MUSB hardware specific wrapper driver.

2. Remove pm_runtime_irq_safe() added in commit 3e43a0725637

Adding Bin to Cc, maybe he has some better fix in mind.

Regards,

Tony