On Thu, 13 Mar 2014, Dan Williams wrote:

> The port pm_runtime implementation unconditionally clears FEAT_C_ENABLE
> after clearing PORT_POWER, but the bit is reserved on usb3 hub ports.
> We expect khubd to be prevented from running because the port state is
> not RPM_ACTIVE, so we need to clear any errors for usb2 ports.
> 
> Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
> ---
>  drivers/usb/core/port.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c
> index 96f7a29e2ac6..0ff5854c9581 100644
> --- a/drivers/usb/core/port.c
> +++ b/drivers/usb/core/port.c
> @@ -136,7 +136,8 @@ static int usb_port_runtime_suspend(struct device *dev)
>       set_bit(port1, hub->busy_bits);
>       retval = usb_hub_set_port_power(hdev, hub, port1, false);
>       usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_CONNECTION);
> -     usb_clear_port_feature(hdev, port1,     USB_PORT_FEAT_C_ENABLE);
> +     if (!hub_is_superspeed(hdev))

Maybe use !port->is_superspeed instead.

> +             usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_ENABLE);
>       clear_bit(port1, hub->busy_bits);
>       usb_autopm_put_interface(intf);

Acked-by: Alan Stern <st...@rowland.harvard.edu>

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to