Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70d002bc authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge commit master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 of HEAD

* HEAD: (44 commits)
  [PATCH] USB: move usb-serial.h to include/linux/usb/
  [PATCH] USB: Anydata: Fixes wrong URB callback.
  [PATCH] USB: gadget section fixups
  [PATCH] USB: another unusual device
  [PATCH] USB: Add one VID/PID to ftdi_sio
  [PATCH] USB: unusual_devs entry for Sony DSC-H5
  [PATCH] USB: unusual_devs entry for Nokia E61
  [PATCH] USB: unusual_devs entry for Nokia N91
  [PATCH] USB: add ZyXEL vendor/product ID to rtl8150 driver
  [PATCH] USB: Option driver: new product ID
  [PATCH] USB: add support for WiseGroup., Ltd SmartJoy Dual PLUS Adapter
  [PATCH] USB: ipw.c driver fix
  [PATCH] USB: remove devfs information from Kconfig
  [PATCH] USB: remove empty destructor from drivers/usb/mon/mon_text.c
  [PATCH] USB: ipaq.c timing parameters
  [PATCH] USB: ipaq.c bugfixes
  [PATCH] USB: ehci: fix bogus alteration of a local variable
  [PATCH] USB: add driver for non-composite Sierra Wireless devices
  [PATCH] USB: fix pointer dereference in drivers/usb/misc/usblcd
  [PATCH] USB: Kill compiler warning in quirk_usb_handoff_ohci
  ...
parents 7f0852f9 a969888c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -399,10 +399,10 @@ REINER SCT cyberJack pinpad/e-com USB chipcard reader

Prolific PL2303 Driver

  This driver support any device that has the PL2303 chip from Prolific
  This driver supports any device that has the PL2303 chip from Prolific
  in it.  This includes a number of single port USB to serial
  converters and USB GPS devices.  Devices from Aten (the UC-232) and
  IO-Data work with this driver.
  IO-Data work with this driver, as does the DCU-11 mobile-phone cable.

  For any questions or problems with this driver, please contact Greg
  Kroah-Hartman at greg@kroah.com
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ config USB_ARCH_HAS_OHCI
	default y if ARCH_LH7A404
	default y if ARCH_S3C2410
	default y if PXA27x
	default y if ARCH_EP93XX
	default y if ARCH_AT91RM9200
	# PPC:
	default y if STB03xxx
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ obj-$(CONFIG_USB_MICROTEK) += image/
obj-$(CONFIG_USB_SERIAL)	+= serial/

obj-$(CONFIG_USB_AUERSWALD)	+= misc/
obj-$(CONFIG_USB_CY7C63)	+= misc/
obj-$(CONFIG_USB_CYPRESS_CY7C63)+= misc/
obj-$(CONFIG_USB_CYTHERM)	+= misc/
obj-$(CONFIG_USB_EMI26)		+= misc/
obj-$(CONFIG_USB_EMI62)		+= misc/
+26 −23
Original line number Diff line number Diff line
@@ -291,13 +291,13 @@ static void acm_read_bulk(struct urb *urb, struct pt_regs *regs)
	struct acm_ru *rcv = urb->context;
	struct acm *acm = rcv->instance;
	int status = urb->status;
	dbg("Entering acm_read_bulk with status %d\n", urb->status);
	dbg("Entering acm_read_bulk with status %d", urb->status);

	if (!ACM_READY(acm))
		return;

	if (status)
		dev_dbg(&acm->data->dev, "bulk rx status %d\n", status);
		dev_dbg(&acm->data->dev, "bulk rx status %d", status);

	buf = rcv->buffer;
	buf->size = urb->actual_length;
@@ -343,7 +343,7 @@ static void acm_rx_tasklet(unsigned long _acm)
	list_del(&buf->list);
	spin_unlock(&acm->read_lock);

	dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d\n", buf, buf->size);
	dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d", buf, buf->size);

	tty_buffer_request_room(tty, buf->size);
	if (!acm->throttle)
@@ -394,7 +394,7 @@ static void acm_rx_tasklet(unsigned long _acm)
		rcv->urb->transfer_dma = buf->dma;
		rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;

		dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p\n", rcv->urb, rcv, buf);
		dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p", rcv->urb, rcv, buf);

		/* This shouldn't kill the driver as unsuccessful URBs are returned to the
		   free-urbs-pool and resubmited ASAP */
@@ -413,7 +413,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
{
	struct acm *acm = (struct acm *)urb->context;

	dbg("Entering acm_write_bulk with status %d\n", urb->status);
	dbg("Entering acm_write_bulk with status %d", urb->status);

	acm_write_done(acm);
	acm_write_start(acm);
@@ -424,7 +424,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
static void acm_softint(void *private)
{
	struct acm *acm = private;
	dbg("Entering acm_softint.\n");
	dbg("Entering acm_softint.");
	
	if (!ACM_READY(acm))
		return;
@@ -440,7 +440,7 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
	struct acm *acm;
	int rv = -EINVAL;
	int i;
	dbg("Entering acm_tty_open.\n");
	dbg("Entering acm_tty_open.");

	mutex_lock(&open_mutex);

@@ -541,7 +541,7 @@ static int acm_tty_write(struct tty_struct *tty, const unsigned char *buf, int c
	int wbn;
	struct acm_wb *wb;

	dbg("Entering acm_tty_write to write %d bytes,\n", count);
	dbg("Entering acm_tty_write to write %d bytes,", count);

	if (!ACM_READY(acm))
		return -EINVAL;
@@ -793,7 +793,7 @@ static int acm_probe (struct usb_interface *intf,

	if (!buflen) {
		if (intf->cur_altsetting->endpoint->extralen && intf->cur_altsetting->endpoint->extra) {
			dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint\n");
			dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint");
			buflen = intf->cur_altsetting->endpoint->extralen;
			buffer = intf->cur_altsetting->endpoint->extra;
		} else {
@@ -842,24 +842,24 @@ static int acm_probe (struct usb_interface *intf,

	if (!union_header) {
		if (call_interface_num > 0) {
			dev_dbg(&intf->dev,"No union descriptor, using call management descriptor\n");
			dev_dbg(&intf->dev,"No union descriptor, using call management descriptor");
			data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
			control_interface = intf;
		} else {
			dev_dbg(&intf->dev,"No union descriptor, giving up\n");
			dev_dbg(&intf->dev,"No union descriptor, giving up");
			return -ENODEV;
		}
	} else {
		control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
		data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0));
		if (!control_interface || !data_interface) {
			dev_dbg(&intf->dev,"no interfaces\n");
			dev_dbg(&intf->dev,"no interfaces");
			return -ENODEV;
		}
	}
	
	if (data_interface_num != call_interface_num)
		dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.\n");
		dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.");

skip_normal_probe:

@@ -867,7 +867,7 @@ static int acm_probe (struct usb_interface *intf,
	if (data_interface->cur_altsetting->desc.bInterfaceClass != CDC_DATA_INTERFACE_TYPE) {
		if (control_interface->cur_altsetting->desc.bInterfaceClass == CDC_DATA_INTERFACE_TYPE) {
			struct usb_interface *t;
			dev_dbg(&intf->dev,"Your device has switched interfaces.\n");
			dev_dbg(&intf->dev,"Your device has switched interfaces.");

			t = control_interface;
			control_interface = data_interface;
@@ -878,7 +878,7 @@ static int acm_probe (struct usb_interface *intf,
	}
	
	if (usb_interface_claimed(data_interface)) { /* valid in this context */
		dev_dbg(&intf->dev,"The data interface isn't available\n");
		dev_dbg(&intf->dev,"The data interface isn't available");
		return -EBUSY;
	}

@@ -895,7 +895,7 @@ static int acm_probe (struct usb_interface *intf,
	if ((epread->bEndpointAddress & USB_DIR_IN) != USB_DIR_IN) {
		/* descriptors are swapped */
		struct usb_endpoint_descriptor *t;
		dev_dbg(&intf->dev,"The data interface has switched endpoints\n");
		dev_dbg(&intf->dev,"The data interface has switched endpoints");
		
		t = epread;
		epread = epwrite;
@@ -910,7 +910,7 @@ static int acm_probe (struct usb_interface *intf,
	}

	if (!(acm = kzalloc(sizeof(struct acm), GFP_KERNEL))) {
		dev_dbg(&intf->dev, "out of memory (acm kzalloc)\n");
		dev_dbg(&intf->dev, "out of memory (acm kzalloc)");
		goto alloc_fail;
	}

@@ -936,26 +936,26 @@ static int acm_probe (struct usb_interface *intf,

	buf = usb_buffer_alloc(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma);
	if (!buf) {
		dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)\n");
		dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)");
		goto alloc_fail2;
	}
	acm->ctrl_buffer = buf;

	if (acm_write_buffers_alloc(acm) < 0) {
		dev_dbg(&intf->dev, "out of memory (write buffer alloc)\n");
		dev_dbg(&intf->dev, "out of memory (write buffer alloc)");
		goto alloc_fail4;
	}

	acm->ctrlurb = usb_alloc_urb(0, GFP_KERNEL);
	if (!acm->ctrlurb) {
		dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)\n");
		dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)");
		goto alloc_fail5;
	}
	for (i = 0; i < num_rx_buf; i++) {
		struct acm_ru *rcv = &(acm->ru[i]);

		if (!(rcv->urb = usb_alloc_urb(0, GFP_KERNEL))) {
			dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)\n");
			dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)");
			goto alloc_fail7;
		}

@@ -966,13 +966,13 @@ static int acm_probe (struct usb_interface *intf,
		struct acm_rb *buf = &(acm->rb[i]);

		if (!(buf->base = usb_buffer_alloc(acm->dev, readsize, GFP_KERNEL, &buf->dma))) {
			dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)\n");
			dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)");
			goto alloc_fail7;
		}
	}
	acm->writeurb = usb_alloc_urb(0, GFP_KERNEL);
	if (!acm->writeurb) {
		dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)\n");
		dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)");
		goto alloc_fail7;
	}

@@ -1086,6 +1086,9 @@ static struct usb_device_id acm_ids[] = {
	{ USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */
	.driver_info = SINGLE_RX_URB, /* firmware bug */
	},
	{ USB_DEVICE(0x0ace, 0x1611), /* ZyDAS 56K USB MODEM - new version */
	.driver_info = SINGLE_RX_URB, /* firmware bug */
	},
	/* control interfaces with various AT-command sets */
	{ USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
		USB_CDC_ACM_PROTO_AT_V25TER) },
+0 −3
Original line number Diff line number Diff line
@@ -31,9 +31,6 @@ config USB_DEVICEFS
	  For the format of the various /proc/bus/usb/ files, please read
	  <file:Documentation/usb/proc_usb_info.txt>.

	  Please note that this code is completely unrelated to devfs, the
	  "/dev file system support".

	  Most users want to say Y here.

config USB_BANDWIDTH
Loading