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

Commit 7b2aa037 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: fix oops on disconnect in cdc-acm
  USB: storage: include Prolific Technology USB drive in unusual_devs list
  USB: ftdi_sio: add product_id for Marvell OpenRD Base, Client
  USB: ftdi_sio: add vendor and product id for Bayer glucose meter serial converter cable
  USB: EHCI: fix counting of transaction error retries
  USB: EHCI: fix two new bugs related to Clear-TT-Buffer
  USB: usbfs: fix -ENOENT error code to be -ENODEV
  USB: musb: fix the nop registration for OMAP3EVM
  USB: devio: Properly do access_ok() checks
  USB: pl2303: New vendor and product id
parents 710ad849 cf7fdd57
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1107,7 +1107,7 @@ CONFIG_USB_ZERO=m
CONFIG_USB_OTG_UTILS=y
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_ISP1301_OMAP is not set
CONFIG_TWL4030_USB=y
# CONFIG_TWL4030_USB is not set
# CONFIG_NOP_USB_XCEIV is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
+5 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include <linux/spi/spi.h>
#include <linux/spi/ads7846.h>
#include <linux/i2c/twl4030.h>
#include <linux/usb/otg.h>

#include <mach/hardware.h>
#include <asm/mach-types.h>
@@ -307,6 +308,10 @@ static void __init omap3_evm_init(void)
				ARRAY_SIZE(omap3evm_spi_board_info));

	omap_serial_init();
#ifdef CONFIG_NOP_USB_XCEIV
	/* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
	usb_nop_xceiv_register();
#endif
	usb_musb_init();
	ads7846_dev_init();
}
+0 −21
Original line number Diff line number Diff line
@@ -155,20 +155,6 @@ static struct platform_device musb_device = {
	.resource	= musb_resources,
};

#ifdef CONFIG_NOP_USB_XCEIV
static u64 nop_xceiv_dmamask = DMA_BIT_MASK(32);

static struct platform_device nop_xceiv_device = {
	.name		= "nop_usb_xceiv",
	.id		= -1,
	.dev = {
		.dma_mask		= &nop_xceiv_dmamask,
		.coherent_dma_mask	= DMA_BIT_MASK(32),
		.platform_data		= NULL,
	},
};
#endif

void __init usb_musb_init(void)
{
	if (cpu_is_omap243x())
@@ -183,13 +169,6 @@ void __init usb_musb_init(void)
	 */
	musb_plat.clock = "ick";

#ifdef CONFIG_NOP_USB_XCEIV
	if (platform_device_register(&nop_xceiv_device) < 0) {
		printk(KERN_ERR "Unable to register NOP-XCEIV device\n");
		return;
	}
#endif

	if (platform_device_register(&musb_device) < 0) {
		printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
		return;
+5 −5
Original line number Diff line number Diff line
@@ -387,7 +387,6 @@ static void acm_rx_tasklet(unsigned long _acm)
	struct acm_ru *rcv;
	unsigned long flags;
	unsigned char throttled;
	struct usb_host_endpoint *ep;

	dbg("Entering acm_rx_tasklet");

@@ -463,14 +462,12 @@ static void acm_rx_tasklet(unsigned long _acm)

		rcv->buffer = buf;

		ep = (usb_pipein(acm->rx_endpoint) ? acm->dev->ep_in : acm->dev->ep_out)
				[usb_pipeendpoint(acm->rx_endpoint)];
		if (usb_endpoint_xfer_int(&ep->desc))
		if (acm->is_int_ep)
			usb_fill_int_urb(rcv->urb, acm->dev,
					 acm->rx_endpoint,
					 buf->base,
					 acm->readsize,
					 acm_read_bulk, rcv, ep->desc.bInterval);
					 acm_read_bulk, rcv, acm->bInterval);
		else
			usb_fill_bulk_urb(rcv->urb, acm->dev,
					  acm->rx_endpoint,
@@ -1183,6 +1180,9 @@ static int acm_probe(struct usb_interface *intf,
	spin_lock_init(&acm->read_lock);
	mutex_init(&acm->mutex);
	acm->rx_endpoint = usb_rcvbulkpipe(usb_dev, epread->bEndpointAddress);
	acm->is_int_ep = usb_endpoint_xfer_int(epread);
	if (acm->is_int_ep)
		acm->bInterval = epread->bInterval;
	tty_port_init(&acm->port);
	acm->port.ops = &acm_port_ops;

+2 −0
Original line number Diff line number Diff line
@@ -126,6 +126,8 @@ struct acm {
	unsigned int ctrl_caps;				/* control capabilities from the class specific header */
	unsigned int susp_count;			/* number of suspended interfaces */
	int combined_interfaces:1;			/* control and data collapsed */
	int is_int_ep:1;				/* interrupt endpoints contrary to spec used */
	u8 bInterval;
	struct acm_wb *delayed_wb;			/* write queued for a device about to be woken */
};

Loading