[PATCH v3 03/12] usb: ehci-hcd: notify phy when connect change
Marek Vasut
marex at denx.de
Tue Jun 5 11:03:17 EDT 2012
Dear Alan Stern,
> On Tue, 5 Jun 2012, Alexander Shishkin wrote:
> > Richard Zhao <richard.zhao at freescale.com> writes:
> > > It still has below limitations:
> > > - it does not work for multi-phy ehci
> > > - the best place is after debounce, but I can't get
> > >
> > > phy there
> > >
> > > Signed-off-by: Richard Zhao <richard.zhao at freescale.com>
> >
> > Alan, are you ok with this?
> >
> > > ---
> > >
> > > drivers/usb/host/ehci-hcd.c | 14 ++++++++++++++
> > > 1 files changed, 14 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> > > index b100f5f..8c39a7a 100644
> > > --- a/drivers/usb/host/ehci-hcd.c
> > > +++ b/drivers/usb/host/ehci-hcd.c
> > > @@ -928,6 +928,20 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
> > >
> > > pstatus = ehci_readl(ehci,
> > >
> > > &ehci->regs->port_status[i]);
> > >
> > > + /* FIXME:
> > > + * - it does not work for multi-phy ehci
> > > + * - the best place is after debounce, but I can't get
> > > + * phy there
> > > + */
> > > + if ((pstatus & PORT_CSC) && ehci->transceiver) {
>
> Do the tests in the opposite order and add "unlikely":
>
> if (unlikely(ehci->transceiver &&
> (pstatus & PORT_CSC)) {
>
> That way it will fail more quickly on systems where it doesn't apply or
> for unaffected ports.
Does this unlikely() have any effect on ARM/MIPS/PPC, where this chipidea IP is
used ? Or is there some x86 device sporting this IP too?
> > > + if (pstatus & PORT_CONNECT)
> > > + usb_phy_notify_connect(
> > > + ehci->transceiver, i);
> > > + else
> > > + usb_phy_notify_disconnect(
> > > + ehci->transceiver, i);
> > > + }
> > > +
> > >
> > > if (pstatus & PORT_OWNER)
> > >
> > > continue;
> > >
> > > if (!(test_bit(i, &ehci->suspended_ports) &&
>
> Otherwise it's okay.
>
> Alan Stern
Best regards,
Marek Vasut
More information about the linux-arm-kernel
mailing list