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 <[email protected]>
> Tested-by: Wenyou Yang <[email protected]>
Reviewed-by: Alexandre Belloni <[email protected]>
> Cc: Wenyou Yang <[email protected]>
> Cc: Alexandre Belloni <[email protected]>
> Cc: Nicolas Ferre <[email protected]>
> Cc: Alan Stern <[email protected]>
> ---
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html