Re: [PATCH 4/4] usb: chipidea: msm: Use USB PHY API to control PHY state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Peter,

On Mon, 2013-11-11 at 21:59 +0800, Peter Chen wrote: 
> On Mon, Nov 11, 2013 at 03:35:37PM +0200, Ivan T. Ivanov wrote:
> > From: "Ivan T. Ivanov" <iivanov@xxxxxxxxxx>
> > 
> > PHY drivers keep track of the current state of the hardware,
> > so don't change PHY settings under it.
> > 
> > Signed-off-by: Ivan T. Ivanov <iivanov@xxxxxxxxxx>
> > ---
> >  drivers/usb/chipidea/ci_hdrc_msm.c |    9 ++-------
> >  1 file changed, 2 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c
> > index e9624f3..338b209 100644
> > --- a/drivers/usb/chipidea/ci_hdrc_msm.c
> > +++ b/drivers/usb/chipidea/ci_hdrc_msm.c
> > @@ -20,13 +20,11 @@
> >  static void ci_hdrc_msm_notify_event(struct ci_hdrc *ci, unsigned event)
> >  {
> >  	struct device *dev = ci->gadget.dev.parent;
> > -	int val;
> >  
> >  	switch (event) {
> >  	case CI_HDRC_CONTROLLER_RESET_EVENT:
> >  		dev_dbg(dev, "CI_HDRC_CONTROLLER_RESET_EVENT received\n");
> > -		writel(0, USB_AHBBURST);
> > -		writel(0, USB_AHBMODE);
> > +		usb_phy_init(ci->transceiver);
> 
> It will reset the PHY,  but your comment is "don't change PHY settings under it"

:-). This function is exported by PHY drivers, so they will know how
to handle this change.

> 
> >  		break;
> >  	case CI_HDRC_CONTROLLER_STOPPED_EVENT:
> >  		dev_dbg(dev, "CI_HDRC_CONTROLLER_STOPPED_EVENT received\n");
> > @@ -34,10 +32,7 @@ static void ci_hdrc_msm_notify_event(struct ci_hdrc *ci, unsigned event)
> >  		 * Put the transceiver in non-driving mode. Otherwise host
> >  		 * may not detect soft-disconnection.
> >  		 */
> > -		val = usb_phy_io_read(ci->transceiver, ULPI_FUNC_CTRL);
> > -		val &= ~ULPI_FUNC_CTRL_OPMODE_MASK;
> > -		val |= ULPI_FUNC_CTRL_OPMODE_NONDRIVING;
> > -		usb_phy_io_write(ci->transceiver, val, ULPI_FUNC_CTRL);
> > +		usb_phy_notify_disconnect(ci->transceiver, USB_SPEED_UNKNOWN);
> 
> Where you have implemented .notify_disconnect?
> I have not found it at your phy driver.

Yep, I will post PHY driver changes shortly. Meanwhile this should
not break existing board file based platforms, because not of them
could be compiled (HTC Dream, Halibut Board) and DT based platforms 
are sill work in progress.

Regards,
Ivan


--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux