lkml.org 
[lkml]   [2013]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 4/4] usb: chipidea: msm: Use USB PHY API to control PHY state
From
Date

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@mm-sol.com>
> >
> > 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@mm-sol.com>
> > ---
> > 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




\
 
 \ /
  Last update: 2013-11-11 16:01    [W:0.129 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site