Re: [Letux-kernel] [PATCH v2] musb: omap2430: do not assume balanced enable()/disable()

From: Andreas Kemnade
Date: Thu Aug 04 2016 - 16:59:41 EST


On Thu, 4 Aug 2016 16:49:30 +0200
"H. Nikolaus Schaller" <hns@xxxxxxxxxxxxx> wrote:

> > Rationale:
> >
> > The charger driver calls pm_runtime_get_sync(bci->transceiver->dev);
> > which should indirectly call twl4030_usb_set_mode to set the
> > POWER_CTRL_OTG_ENAB bit. This enables the prescaler hardware
> > for ADC8 (VBUS) channel. But this does not happen for reasons
> > outside the charger driver.
> >
how should that work?
I only have seen the call trace from the musb/omap2430.c glue though
the phy subsystem (via phy_ops) to twl4030_phy_power_on (which sets
the important bit).
And the phy subsystem has its own power refcounting system which
is brought into disorder by unbalanced calls from the musb system...

Regards,
Andreas