diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-10 18:05:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-10 18:05:02 -0400 |
commit | 9895850b23886e030cd1e7241d5529a57e969c3d (patch) | |
tree | 1061626db450aeb72dcfcd247c24b33e5238c8c4 /drivers/usb/storage/usb.c | |
parent | fc385c313275b114bc6ad36e60c5177d63250548 (diff) | |
parent | b58af4066d240b18b43f202e07b9ec7461d90b17 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (148 commits)
USB: serial: fix stalled writes
USB: remove fake "address-of" expressions
USB: fix thread-unsafe anchor utiliy routines
USB: usbtest: support test device with only one iso-in or iso-out endpoint
USB: usbtest: avoid to free coherent buffer in atomic context
USB: xhci: Set DMA mask for host.
USB: xhci: Don't flush doorbell writes.
USB: xhci: Reduce reads and writes of interrupter registers.
USB: xhci: Make xhci_set_hc_event_deq() static.
USB: xhci: Minimize HW event ring dequeue pointer writes.
USB: xhci: Make xhci_handle_event() static.
USB: xhci: Remove unnecessary reads of IRQ_PENDING register.
USB: xhci: Performance - move xhci_work() into xhci_irq()
USB: xhci: Performance - move interrupt handlers into xhci-ring.c
USB: xhci: Performance - move functions that find ep ring.
USB:: fix linux/usb.h kernel-doc warnings
USB: add USB serial ssu100 driver
USB: usb-storage: implement autosuspend
USB: ehci: fix remove of ehci debugfs dir
USB: Add USB 2.0 to ssb ohci driver
...
Diffstat (limited to 'drivers/usb/storage/usb.c')
-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 a7d0bf9d92a..90bb0175a15 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 | ||