Re: [PATCH v3 03/12] usb: ehci-hcd: notify phy when connect change
From: Alan Stern <hidden>
Date: 2012-06-05 14:28:13
Also in:
linux-arm-kernel
On Tue, 5 Jun 2012, Alexander Shishkin wrote:
Richard Zhao [off-list ref] writes:quoted
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 <redacted>Alan, are you ok with this?quoted
--- 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.
quoted
+ 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 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html