diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/storage/usb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index a7d0bf9d92a7..90bb0175a152 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -336,6 +336,7 @@ static int usb_stor_control_thread(void * __us) | |||
336 | else { | 336 | else { |
337 | US_DEBUG(usb_stor_show_command(us->srb)); | 337 | US_DEBUG(usb_stor_show_command(us->srb)); |
338 | us->proto_handler(us->srb, us); | 338 | us->proto_handler(us->srb, us); |
339 | usb_mark_last_busy(us->pusb_dev); | ||
339 | } | 340 | } |
340 | 341 | ||
341 | /* lock access to the state */ | 342 | /* lock access to the state */ |
@@ -845,6 +846,7 @@ static int usb_stor_scan_thread(void * __us) | |||
845 | /* Should we unbind if no devices were detected? */ | 846 | /* Should we unbind if no devices were detected? */ |
846 | } | 847 | } |
847 | 848 | ||
849 | usb_autopm_put_interface(us->pusb_intf); | ||
848 | complete_and_exit(&us->scanning_done, 0); | 850 | complete_and_exit(&us->scanning_done, 0); |
849 | } | 851 | } |
850 | 852 | ||
@@ -968,6 +970,7 @@ int usb_stor_probe2(struct us_data *us) | |||
968 | goto BadDevice; | 970 | goto BadDevice; |
969 | } | 971 | } |
970 | 972 | ||
973 | usb_autopm_get_interface_no_resume(us->pusb_intf); | ||
971 | wake_up_process(th); | 974 | wake_up_process(th); |
972 | 975 | ||
973 | return 0; | 976 | return 0; |
@@ -1040,6 +1043,7 @@ static struct usb_driver usb_storage_driver = { | |||
1040 | .pre_reset = usb_stor_pre_reset, | 1043 | .pre_reset = usb_stor_pre_reset, |
1041 | .post_reset = usb_stor_post_reset, | 1044 | .post_reset = usb_stor_post_reset, |
1042 | .id_table = usb_storage_usb_ids, | 1045 | .id_table = usb_storage_usb_ids, |
1046 | .supports_autosuspend = 1, | ||
1043 | .soft_unbind = 1, | 1047 | .soft_unbind = 1, |
1044 | }; | 1048 | }; |
1045 | 1049 | ||