diff options
| author | David Vrabel <david.vrabel@csr.com> | 2009-08-24 14:44:30 +0100 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-11 11:55:14 -0800 | 
| commit | 4c1bd3d7a7d114dabd58f62f386ac4bfd268be1f (patch) | |
| tree | 1c8d7d6df693c71ac0b3dcc4124498d91c939f2d /drivers/usb/core/message.c | |
| parent | 09ce497e79a930ac4912d6bc295baab82b39f8ab (diff) | |
USB: make urb scatter-gather support more generic
The WHCI HCD will also support urbs with scatter-gather lists.  Add a
usb_bus field to indicated how many sg list elements are supported by
the HCD.  Use this to decide whether to pass the scatter-list to the HCD
or not.
Make the usb-storage driver use this new field.
Signed-off-by: David Vrabel <david.vrabel@csr.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core/message.c')
| -rw-r--r-- | drivers/usb/core/message.c | 8 | 
1 files changed, 1 insertions, 7 deletions
| diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index e80f1af438c..8d874cad658 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c @@ -393,13 +393,7 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev,  	if (io->entries <= 0)  		return io->entries; -	/* If we're running on an xHCI host controller, queue the whole scatter -	 * gather list with one call to urb_enqueue().  This is only for bulk, -	 * as that endpoint type does not care how the data gets broken up -	 * across frames. -	 */ -	if (usb_pipebulk(pipe) && -			bus_to_hcd(dev->bus)->driver->flags & HCD_USB3) { +	if (dev->bus->sg_tablesize > 0) {  		io->urbs = kmalloc(sizeof *io->urbs, mem_flags);  		use_sg = true;  	} else { | 
