USB: break apart flush_endpoint and disable_endpoint
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 10 Sep 2007 15:33:05 +0000 (11:33 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 12 Oct 2007 21:55:26 +0000 (14:55 -0700)
commit95cf82f99cfbd697c15572c444bd4f54f19745b0
tree87d0bd6c842922231f5177522b6635532416d206
parent5ad4f71e2f19a06f738463da1f09ea7fda3a3db2
USB: break apart flush_endpoint and disable_endpoint

This patch (as988) breaks usb_hcd_endpoint_disable() apart into two
routines.  The first, usb_hcd_flush_endpoint() does the -ESHUTDOWN
unlinking of all URBs in the endpoint's queue and waits for them to
complete.  The second, usb_hcd_disable_endpoint() -- renamed for
better grammatical style -- merely calls the HCD's endpoint_disable
method.  The changeover is easy because the routine currently has only
one caller.

This separation of function will be exploited in the following patch:
When a device is suspended, the core will be able to cancel all
outstanding URBs for that device while leaving the HCD's
endpoint-related data structures intact for later.

As an added benefit, HCDs no longer need to check for existing URBs in
their endpoint_disable methods.  It is now guaranteed that there will
be none.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hcd.c
drivers/usb/core/hcd.h
drivers/usb/core/message.c