Re: [PATCH v2] phy: phy-twl4030-usb: fix denied runtime access

From: Tony Lindgren
Date: Thu Feb 21 2019 - 16:27:56 EST


* Andreas Kemnade <andreas@xxxxxxxxxxxx> [190221 19:40]:
> On Thu, 21 Feb 2019 08:48:03 -0800
> Tony Lindgren <tony@xxxxxxxxxxx> wrote:
>
> > * Andreas Kemnade <andreas@xxxxxxxxxxxx> [190221 16:43]:
> > > Hi,
> > >
> > > On Wed, 20 Feb 2019 14:31:32 -0800
> > > Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> > >
> > > > * Andreas Kemnade <andreas@xxxxxxxxxxxx> [180922 09:48]:
> > > > > When runtime is not enabled, pm_runtime_get_sync() returns -EACCESS,
> > > > > the counter will be incremented but the resume callback not called,
> > > > > so enumeration and charging will not start properly.
> > > > > To avoid that happen, disable irq on suspend and recheck on resume.
> > > > >
> > > > > Practically this happens when the device is woken up from suspend by
> > > > > plugging in usb.
> > > > >
> > > > > Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx>
> > > > > ---
> > > > > Changes in v2:
> > > > > * use pm suspend/resume callback instead of delayed_work
> > > > > as suggested by Dmitry
> > > >
> > > > Hmm it just occurred to me that this issue too might be fixed with commit
> > > > c6e2bd956936 ("i2c: omap: Use noirq system sleep pm ops to idle device
> > > > for suspend"). Andreas, care to check? That is if this is still an
> > > > issue.
> > > >
> > > this one made already its way into 4.20. But for the records, I will
> > > build the latest 5.0-rc and revert it and will check if the problem
> > > still occurs.
> >
> > OK thanks.
> >
> first of all, suspend is totally broken in v5.0-rc7.
> I booted with init=/bin/bash
> and just loaded gpio-twl4030 and twl4030-pwrbutton
>
> and did (rtc in compiled in) a
> root@(none):/# rtcwake -s 10 -m mem
> rtcwake: wakeup from "mem" using /dev/rtc0 at Sat Jan 1 00:05:24 2000
> [ 86.434722] PM: suspend entry (deep)
> [ 86.438842] PM: Syncing filesystems ... done.
> [ 86.458770] Freezing user space processes ... (elapsed 0.003 seconds) done.
> [ 86.470947] OOM killer disabled.
> [ 86.474365] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
> [ 86.485473] printk: Suspending console(s) (use no_console_suspend to debug)
> [ 86.555572] Disabling non-boot CPUs ...
> [ 86.555664] Successfully put all powerdomains to target state
> [ 86.563720] twl: Read failed (mod 1, reg 0x01 count 1)
> [ 86.563751] twl4030: I2C error -13 reading PIH ISR
> [ 86.563812] twl: Read failed (mod 1, reg 0x01 count 1)
> [ 86.563812] twl4030: I2C error -13 reading PIH ISR
> [ 86.563873] twl: Read failed (mod 1, reg 0x01 count 1)
> [ 86.563903] twl4030: I2C error -13 reading PIH ISR
>
> and this goes on forever.
> I will try to bisect that.

Strange, I'm not seeing that here. Anyways let's debug more
in your bisect email thread.

Thanks,

Tony