On Thu, Jul 23, 2015 at 10:17:38AM +0000, Vasudevan, Krishna PrasathX K wrote:
> Hi,
> 
> This mail is for RFC regarding the persist resume of some USB 2.0 devices,
> 
> Problem Summary: Problem has been observed for some USB 2.0 devices while 
> resuming from sleep. When the USB  “persist” feature is enabled through sysfs 
> it is expected to retain its previous mount point across sleep and resume 
> states, it works fine for most of the USB 2.0 mass storage devices, but for 
> some USB 2.0 pendrives such as (Transcend Jet flash 16 GB & Alcor micro 
> corporation) it seems to fail and re-enumeration happens resulting in 
> creation of new device data structure. This problem seems to be similar to 
> the problem faced with USB 3.0 devices which is mentioned in below link
> 
> http://marc.info/?l=linux-usb&m=140566728011240&w=2
> 
> 
> 
> In the above mentioned link the problem is observed with USB 3.0 devices, but 
> in this case it is observed with USB 2.0 mass storage devices.While resuming 
> from sleep, a USB disconnect message and re enumeration messages are seen 
> resulting in the reset of “persist ” variable in sysfs.
> 
> 
> 
> In the above mentioned link a fix is proposed and that patch was merged in 
> mainline kernel, but the patch restricts the timeout only to USB 3.0 devices. 
> I am not sure why it was restricted to USB 3.0 devices, but the same issue 
> seems to appear for USB 2.0 devices too.
> 
> 
> 
> The below patch removes the restriction for USB 3.0 devices and makes the 
> time out applicable to all USB devices.
> 
> 
> 
> Signed-off-by: vasudevan,krishna prasath 
> <[email protected]>
> 
> ---
> 
>  drivers/usb/core/hub.c |    2 +-
> 
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 
> 
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> 
> index d2bd9d7..b2b709d 100644
> 
> --- a/drivers/usb/core/hub.c
> 
> +++ b/drivers/usb/core/hub.c
> 
> @@ -3320,7 +3320,7 @@ int usb_port_resume(struct usb_device *udev, 
> pm_message_t msg)
> 
> 
> 
>                clear_bit(port1, hub->busy_bits);
> 
> 
> 
> -              if (udev->persist_enabled && hub_is_superspeed(hub->hdev))
> 
> +             if (udev->persist_enabled)
> 
>                                status = wait_for_ss_port_enable(udev, hub, 
> &port1, &portchange,
> 
>                                                              &portstatus);
> 
> 
> 
> --

This patch is totally corrupted and can't be applied even for testing :(

Please fix up your email client and try again.

thanks,

greg k-h
--
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

Reply via email to