diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-20 21:26:12 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-20 21:26:12 -0700 | 
| commit | 7a9b149212f3716c598afe973b6261fd58453b7a (patch) | |
| tree | 477716d84c71da124448b72278e98da28aadbd3d /drivers/usb/core/usb.c | |
| parent | 3d62e3fdce8ef265a3706c52ae1ca6ab84e30f0e (diff) | |
| parent | e26bcf37234c67624f62d9fc95f922b8dbda1363 (diff) | |
| download | olio-linux-3.10-7a9b149212f3716c598afe973b6261fd58453b7a.tar.xz olio-linux-3.10-7a9b149212f3716c598afe973b6261fd58453b7a.zip  | |
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: (229 commits)
  USB: remove unused usb_buffer_alloc and usb_buffer_free macros
  usb: musb: update gfp/slab.h includes
  USB: ftdi_sio: fix legacy SIO-device header
  USB: kl5usb105: reimplement using generic framework
  USB: kl5usb105: minor clean ups
  USB: kl5usb105: fix memory leak
  USB: io_ti: use kfifo to implement write buffering
  USB: io_ti: remove unsused private counter
  USB: ti_usb: use kfifo to implement write buffering
  USB: ir-usb: fix incorrect write-buffer length
  USB: aircable: fix incorrect write-buffer length
  USB: safe_serial: straighten out read processing
  USB: safe_serial: reimplement read using generic framework
  USB: safe_serial: reimplement write using generic framework
  usb-storage: always print quirks
  USB: usb-storage: trivial debug improvements
  USB: oti6858: use port write fifo
  USB: oti6858: use kfifo to implement write buffering
  USB: cypress_m8: use kfifo to implement write buffering
  USB: cypress_m8: remove unused drain define
  ...
Fix up conflicts (due to usb_buffer_alloc/free renaming) in
	drivers/input/tablet/acecad.c
	drivers/input/tablet/kbtab.c
	drivers/input/tablet/wacom_sys.c
	drivers/media/video/gspca/gspca.c
	sound/usb/usbaudio.c
Diffstat (limited to 'drivers/usb/core/usb.c')
| -rw-r--r-- | drivers/usb/core/usb.c | 94 | 
1 files changed, 8 insertions, 86 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 0561430f2ed..397b678f1c4 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c @@ -32,6 +32,7 @@  #include <linux/spinlock.h>  #include <linux/errno.h>  #include <linux/usb.h> +#include <linux/usb/hcd.h>  #include <linux/mutex.h>  #include <linux/workqueue.h>  #include <linux/debugfs.h> @@ -41,7 +42,6 @@  #include <linux/mm.h>  #include <linux/dma-mapping.h> -#include "hcd.h"  #include "usb.h" @@ -593,76 +593,6 @@ int usb_lock_device_for_reset(struct usb_device *udev,  }  EXPORT_SYMBOL_GPL(usb_lock_device_for_reset); -static struct usb_device *match_device(struct usb_device *dev, -				       u16 vendor_id, u16 product_id) -{ -	struct usb_device *ret_dev = NULL; -	int child; - -	dev_dbg(&dev->dev, "check for vendor %04x, product %04x ...\n", -	    le16_to_cpu(dev->descriptor.idVendor), -	    le16_to_cpu(dev->descriptor.idProduct)); - -	/* see if this device matches */ -	if ((vendor_id == le16_to_cpu(dev->descriptor.idVendor)) && -	    (product_id == le16_to_cpu(dev->descriptor.idProduct))) { -		dev_dbg(&dev->dev, "matched this device!\n"); -		ret_dev = usb_get_dev(dev); -		goto exit; -	} - -	/* look through all of the children of this device */ -	for (child = 0; child < dev->maxchild; ++child) { -		if (dev->children[child]) { -			usb_lock_device(dev->children[child]); -			ret_dev = match_device(dev->children[child], -					       vendor_id, product_id); -			usb_unlock_device(dev->children[child]); -			if (ret_dev) -				goto exit; -		} -	} -exit: -	return ret_dev; -} - -/** - * usb_find_device - find a specific usb device in the system - * @vendor_id: the vendor id of the device to find - * @product_id: the product id of the device to find - * - * Returns a pointer to a struct usb_device if such a specified usb - * device is present in the system currently.  The usage count of the - * device will be incremented if a device is found.  Make sure to call - * usb_put_dev() when the caller is finished with the device. - * - * If a device with the specified vendor and product id is not found, - * NULL is returned. - */ -struct usb_device *usb_find_device(u16 vendor_id, u16 product_id) -{ -	struct list_head *buslist; -	struct usb_bus *bus; -	struct usb_device *dev = NULL; - -	mutex_lock(&usb_bus_list_lock); -	for (buslist = usb_bus_list.next; -	     buslist != &usb_bus_list; -	     buslist = buslist->next) { -		bus = container_of(buslist, struct usb_bus, bus_list); -		if (!bus->root_hub) -			continue; -		usb_lock_device(bus->root_hub); -		dev = match_device(bus->root_hub, vendor_id, product_id); -		usb_unlock_device(bus->root_hub); -		if (dev) -			goto exit; -	} -exit: -	mutex_unlock(&usb_bus_list_lock); -	return dev; -} -  /**   * usb_get_current_frame_number - return current bus frame number   * @dev: the device whose bus is being queried @@ -775,7 +705,7 @@ EXPORT_SYMBOL_GPL(usb_free_coherent);   * @urb: urb whose transfer_buffer/setup_packet will be mapped   *   * Return value is either null (indicating no buffer could be mapped), or - * the parameter.  URB_NO_TRANSFER_DMA_MAP and URB_NO_SETUP_DMA_MAP are + * the parameter.  URB_NO_TRANSFER_DMA_MAP is   * added to urb->transfer_flags if the operation succeeds.  If the device   * is connected to this system through a non-DMA controller, this operation   * always succeeds. @@ -803,17 +733,11 @@ struct urb *usb_buffer_map(struct urb *urb)  			urb->transfer_buffer, urb->transfer_buffer_length,  			usb_pipein(urb->pipe)  				? DMA_FROM_DEVICE : DMA_TO_DEVICE); -		if (usb_pipecontrol(urb->pipe)) -			urb->setup_dma = dma_map_single(controller, -					urb->setup_packet, -					sizeof(struct usb_ctrlrequest), -					DMA_TO_DEVICE);  	/* FIXME generic api broken like pci, can't report errors */  	/* if (urb->transfer_dma == DMA_ADDR_INVALID) return 0; */  	} else  		urb->transfer_dma = ~0; -	urb->transfer_flags |= (URB_NO_TRANSFER_DMA_MAP -				| URB_NO_SETUP_DMA_MAP); +	urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;  	return urb;  }  EXPORT_SYMBOL_GPL(usb_buffer_map); @@ -881,18 +805,13 @@ void usb_buffer_unmap(struct urb *urb)  			urb->transfer_dma, urb->transfer_buffer_length,  			usb_pipein(urb->pipe)  				? DMA_FROM_DEVICE : DMA_TO_DEVICE); -		if (usb_pipecontrol(urb->pipe)) -			dma_unmap_single(controller, -					urb->setup_dma, -					sizeof(struct usb_ctrlrequest), -					DMA_TO_DEVICE);  	} -	urb->transfer_flags &= ~(URB_NO_TRANSFER_DMA_MAP -				| URB_NO_SETUP_DMA_MAP); +	urb->transfer_flags &= ~URB_NO_TRANSFER_DMA_MAP;  }  EXPORT_SYMBOL_GPL(usb_buffer_unmap);  #endif  /*  0  */ +#if 0  /**   * usb_buffer_map_sg - create scatterlist DMA mapping(s) for an endpoint   * @dev: device to which the scatterlist will be mapped @@ -936,6 +855,7 @@ int usb_buffer_map_sg(const struct usb_device *dev, int is_in,  			is_in ? DMA_FROM_DEVICE : DMA_TO_DEVICE) ? : -ENOMEM;  }  EXPORT_SYMBOL_GPL(usb_buffer_map_sg); +#endif  /* XXX DISABLED, no users currently.  If you wish to re-enable this   * XXX please determine whether the sync is to transfer ownership of @@ -972,6 +892,7 @@ void usb_buffer_dmasync_sg(const struct usb_device *dev, int is_in,  EXPORT_SYMBOL_GPL(usb_buffer_dmasync_sg);  #endif +#if 0  /**   * usb_buffer_unmap_sg - free DMA mapping(s) for a scatterlist   * @dev: device to which the scatterlist will be mapped @@ -997,6 +918,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in,  			is_in ? DMA_FROM_DEVICE : DMA_TO_DEVICE);  }  EXPORT_SYMBOL_GPL(usb_buffer_unmap_sg); +#endif  /* To disable USB, kernel command line is 'nousb' not 'usbcore.nousb' */  #ifdef MODULE  |