Re: [PATCH 4.1 099/267] phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function.

From: NeilBrown
Date: Sun Aug 09 2015 - 05:00:44 EST


On Sat, 8 Aug 2015 12:18:55 +0530 Kishon Vijay Abraham I
<kishon@xxxxxx> wrote:

>
>
> On Saturday 08 August 2015 11:23 AM, Alexander Holler wrote:
> > Hello,
> >
> > this patch killed the musb-host functionality on my classic Beagleboard (rev
> > c4). Symptom was that it there was a message I don't remember and the attached
> > device didn't enumerate anymore (likely because of missing power, but I'm not
> > sure).
> >
> > A simple revert has fixed it, I haven't looked further into the problem.
>
> Neil Brown, how was this tested?


Well, I have a board with an OMAP3 connected to a twl4030 for USB and I
noted that it wasn't power-managed properly and when I made that change,
it was. I don't recall the exact details

This is probably related to

Commit: 56301df6bcaa ("phy: twl4030-usb: make runtime pm more reliable.")

I certainly only tested with that patch in place.

Looking at the code again, I cannot see why I thought I needed the
4724e277 patch.
Devices are initialised as RPM_SUSPENDED with a usage count of zero (in
pm_runtime_init) so when twl4030_usb_probe() calls
pm_runtime_get_sync(), that will increase the usage_count to 1 and
resume the device. Then it calls pm_runtime_put_autosuspend() which
will (ultimately) drop the usage_count back to zero and suspend the
device.

So it looks like I messed up, but I'm sure I must have had a reason for
that patch. I'll try to do some testing later in the week and will
report what I find.

NeilBrown


>
> -Kishon
>
> >
> > Regards,
> >
> > Alexander Holler
> >
> > Am 31.07.2015 um 21:39 schrieb Greg Kroah-Hartman:
> >> 4.1-stable review patch. If anyone has any objections, please let me know.
> >>
> >> ------------------
> >>
> >> From: NeilBrown <neil@xxxxxxxxxx>
> >>
> >> commit 4724e27114c4a7eceeee07db227a17fcab6f165c upstream.
> >>
> >> The USB phy should initialize with power-off, and will be powered on
> >> by the USB system when a cable connection is detected.
> >>
> >> Having this pm_runtime_get_sync() during probe causes the phy to
> >> *always* be powered on.
> >> Removing it returns to sensible power management.
> >>
> >> Fixes: 96be39ab34b77c6f6f5cd6ae03aac6c6449ee5c4
> >> Signed-off-by: NeilBrown <neil@xxxxxxxxxx>
> >> Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx>
> >> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >>
> >> ---
> >> drivers/phy/phy-twl4030-usb.c | 1 -
> >> 1 file changed, 1 deletion(-)
> >>
> >> --- a/drivers/phy/phy-twl4030-usb.c
> >> +++ b/drivers/phy/phy-twl4030-usb.c
> >> @@ -711,7 +711,6 @@ static int twl4030_usb_probe(struct plat
> >> pm_runtime_use_autosuspend(&pdev->dev);
> >> pm_runtime_set_autosuspend_delay(&pdev->dev, 2000);
> >> pm_runtime_enable(&pdev->dev);
> >> - pm_runtime_get_sync(&pdev->dev);
> >>
> >> /* Our job is to use irqs and status from the power module
> >> * to keep the transceiver disabled when nothing's connected.
> >>
> >>
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >> Please read the FAQ at http://www.tux.org/lkml/
> >>
> >

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/