On 21/02/2017 at 12:48:18 +0100, Jelle Martijn Kok wrote: > In patch 2e2aa1bc7eff90ecm, USB suspend and wakeup control requests are > passed to SFR_OHCIICR register. If a processor does not have such a > register, this hub control request will be dropped. > > If no such a SFR register is available, all USB suspend control requests > will now be processed using ohci_hub_control() > (like before patch 2e2aa1bc7eff90ecm.) > > Tested on an Atmel AT91SAM9G20 with an on-board TI TUSB2046B hub chip > If the last USB device is unplugged from the USB hub, the hub goes into > sleep and will not wakeup when an USB devices is inserted. > > Fixes: 2e2aa1bc7eff90ec ("usb: ohci-at91: Forcibly suspend ports while USB suspend") > Signed-off-by: Jelle Martijn Kok <jmkok@xxxxxxxxx> > Tested-by: Wenyou Yang <wenyou.yang@xxxxxxxxx> Reviewed-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx> > Cc: Wenyou Yang <wenyou.yang@xxxxxxxxx> > Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxxxxxxxxx> > Cc: Nicolas Ferre <nicolas.ferre@xxxxxxxxx> > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > --- > drivers/usb/host/ohci-at91.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c > index b38a228..af0566d 100644 > --- a/drivers/usb/host/ohci-at91.c > +++ b/drivers/usb/host/ohci-at91.c > @@ -361,7 +361,7 @@ static int ohci_at91_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, > > case USB_PORT_FEAT_SUSPEND: > dev_dbg(hcd->self.controller, "SetPortFeat: SUSPEND\n"); > - if (valid_port(wIndex)) { > + if (valid_port(wIndex) && ohci_at91->sfr_regmap) { > ohci_at91_port_suspend(ohci_at91->sfr_regmap, > 1); > return 0; > @@ -404,7 +404,7 @@ static int ohci_at91_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, > > case USB_PORT_FEAT_SUSPEND: > dev_dbg(hcd->self.controller, "ClearPortFeature: SUSPEND\n"); > - if (valid_port(wIndex)) { > + if (valid_port(wIndex) && ohci_at91->sfr_regmap) { > ohci_at91_port_suspend(ohci_at91->sfr_regmap, > 0); > return 0; > -- > 2.1.4 > -- Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html