USB: add reset endpoint operations
authorDavid Vrabel <david.vrabel@csr.com>
Wed, 8 Apr 2009 17:36:28 +0000 (17:36 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 17 Apr 2009 17:50:27 +0000 (10:50 -0700)
commit3444b26afa145148951112534f298bdc554ec789
treeb2c8d9b13d04869ffdad1e46a9ebbf819e7ed7b4
parentd45e230bf03850f17394a760dfa003d986a67729
USB: add reset endpoint operations

Wireless USB endpoint state has a sequence number and a current
window and not just a single toggle bit.  So allow HCDs to provide a
endpoint_reset method and call this or clear the software toggles as
required (after a clear halt, set configuration etc.).

usb_settoggle() and friends are then HCD internal and are moved into
core/hcd.h and all device drivers call usb_reset_endpoint() instead.

If the device endpoint state has been reset (with a clear halt) but
the host endpoint state has not then subsequent data transfers will
not complete. The device will only work again after it is reset or
disconnected.

Signed-off-by: David Vrabel <david.vrabel@csr.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/block/ub.c
drivers/isdn/hisax/st5481_usb.c
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/usb/core/devio.c
drivers/usb/core/hcd.c
drivers/usb/core/hcd.h
drivers/usb/core/message.c
drivers/usb/core/usb.c
drivers/usb/storage/transport.c
include/linux/usb.h