[PATCH 028/220] USB: xhci: Notify the xHC when a device is reset.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg Kroah-Hartman
Date: Tuesday, March 2, 2010 - 4:35 pm

From: Sarah Sharp <sarah.a.sharp@linux.intel.com>

When a USB device is reset, the xHCI hardware must know, in order to match
the device state and disable all endpoints except control endpoint 0.
Issue a Reset Device command after a USB device is successfully reset.
Wait on the command to finish, and then cache or free the disabled
endpoint rings.

There are four different USB device states that the xHCI hardware tracks:
 - disabled/enabled - device connection has just been detected,
 - default - the device has been reset and has an address of 0,
 - addressed - the device has a non-zero address but no configuration has
   been set,
 - configured - a set configuration succeeded.

The USB core may issue a port reset when a device is in any state, but the
Reset Device command will fail for a 0.96 xHC if the device is not in the
addressed or configured state.  Don't consider this failure as an error,
but don't free any endpoint rings if this command fails.

A storage driver may request that the USB device be reset during error
handling, so use GPF_NOIO instead of GPF_KERNEL while allocating memory
for the Reset Device command.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/usb/host/xhci-dbg.c  |   19 ++++++
 drivers/usb/host/xhci-hcd.c  |  125 ++++++++++++++++++++++++++++++++++++++++++
 drivers/usb/host/xhci-ring.c |   19 ++++++
 drivers/usb/host/xhci.h      |    3 +
 4 files changed, 166 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/host/xhci-dbg.c b/drivers/usb/host/xhci-dbg.c
index 33128d5..b2915ae 100644
--- a/drivers/usb/host/xhci-dbg.c
+++ b/drivers/usb/host/xhci-dbg.c
@@ -406,6 +406,25 @@ static void dbg_rsvd64(struct xhci_hcd *xhci, u64 *ctx, dma_addr_t dma)
 	}
 }
 
+inline char *xhci_get_slot_state(struct xhci_hcd *xhci,
+		struct xhci_container_ctx *ctx)
+{
+	struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx);
+
+	switch (GET_SLOT_STATE(slot_ctx->dev_state)) {
+	case 0:
+		return "enabled/disabled";
+	case 1:
+		return "default";
+	case 2:
+		return "addressed";
+	case 3:
+		return "configured";
+	default:
+		return "reserved";
+	}
+}
+
 void xhci_dbg_slot_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx)
 {
 	/* Fields are 32 bits wide, DMA addresses are in bytes */
diff --git a/drivers/usb/host/xhci-hcd.c b/drivers/usb/host/xhci-hcd.c
index 17f1caf..c8573f8 100644
--- a/drivers/usb/host/xhci-hcd.c
+++ b/drivers/usb/host/xhci-hcd.c
@@ -1443,6 +1443,131 @@ void xhci_endpoint_reset(struct usb_hcd *hcd,
 }
 
 /*
+ * This submits a Reset Device Command, which will set the device state to 0,
+ * set the device address to 0, and disable all the endpoints except the default
+ * control endpoint.  The USB core should come back and call
+ * xhci_address_device(), and then re-set up the configuration.  If this is
+ * called because of a usb_reset_and_verify_device(), then the old alternate
+ * settings will be re-installed through the normal bandwidth allocation
+ * functions.
+ *
+ * Wait for the Reset Device command to finish.  Remove all structures
+ * associated with the endpoints that were disabled.  Clear the input device
+ * structure?  Cache the rings?  Reset the control endpoint 0 max packet size?
+ */
+int xhci_reset_device(struct usb_hcd *hcd, struct usb_device *udev)
+{
+	int ret, i;
+	unsigned long flags;
+	struct xhci_hcd *xhci;
+	unsigned int slot_id;
+	struct xhci_virt_device *virt_dev;
+	struct xhci_command *reset_device_cmd;
+	int timeleft;
+	int last_freed_endpoint;
+
+	ret = xhci_check_args(hcd, udev, NULL, 0, __func__);
+	if (ret <= 0)
+		return ret;
+	xhci = hcd_to_xhci(hcd);
+	slot_id = udev->slot_id;
+	virt_dev = xhci->devs[slot_id];
+	if (!virt_dev) {
+		xhci_dbg(xhci, "%s called with invalid slot ID %u\n",
+				__func__, slot_id);
+		return -EINVAL;
+	}
+
+	xhci_dbg(xhci, "Resetting device with slot ID %u\n", slot_id);
+	/* Allocate the command structure that holds the struct completion.
+	 * Assume we're in process context, since the normal device reset
+	 * process has to wait for the device anyway.  Storage devices are
+	 * reset as part of error handling, so use GFP_NOIO instead of
+	 * GFP_KERNEL.
+	 */
+	reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO);
+	if (!reset_device_cmd) {
+		xhci_dbg(xhci, "Couldn't allocate command structure.\n");
+		return -ENOMEM;
+	}
+
+	/* Attempt to submit the Reset Device command to the command ring */
+	spin_lock_irqsave(&xhci->lock, flags);
+	reset_device_cmd->command_trb = xhci->cmd_ring->enqueue;
+	list_add_tail(&reset_device_cmd->cmd_list, &virt_dev->cmd_list);
+	ret = xhci_queue_reset_device(xhci, slot_id);
+	if (ret) {
+		xhci_dbg(xhci, "FIXME: allocate a command ring segment\n");
+		list_del(&reset_device_cmd->cmd_list);
+		spin_unlock_irqrestore(&xhci->lock, flags);
+		goto command_cleanup;
+	}
+	xhci_ring_cmd_db(xhci);
+	spin_unlock_irqrestore(&xhci->lock, flags);
+
+	/* Wait for the Reset Device command to finish */
+	timeleft = wait_for_completion_interruptible_timeout(
+			reset_device_cmd->completion,
+			USB_CTRL_SET_TIMEOUT);
+	if (timeleft <= 0) {
+		xhci_warn(xhci, "%s while waiting for reset device command\n",
+				timeleft == 0 ? "Timeout" : "Signal");
+		spin_lock_irqsave(&xhci->lock, flags);
+		/* The timeout might have raced with the event ring handler, so
+		 * only delete from the list if the item isn't poisoned.
+		 */
+		if (reset_device_cmd->cmd_list.next != LIST_POISON1)
+			list_del(&reset_device_cmd->cmd_list);
+		spin_unlock_irqrestore(&xhci->lock, flags);
+		ret = -ETIME;
+		goto command_cleanup;
+	}
+
+	/* The Reset Device command can't fail, according to the 0.95/0.96 spec,
+	 * unless we tried to reset a slot ID that wasn't enabled,
+	 * or the device wasn't in the addressed or configured state.
+	 */
+	ret = reset_device_cmd->status;
+	switch (ret) {
+	case COMP_EBADSLT: /* 0.95 completion code for bad slot ID */
+	case COMP_CTX_STATE: /* 0.96 completion code for same thing */
+		xhci_info(xhci, "Can't reset device (slot ID %u) in %s state\n",
+				slot_id,
+				xhci_get_slot_state(xhci, virt_dev->out_ctx));
+		xhci_info(xhci, "Not freeing device rings.\n");
+		/* Don't treat this as an error.  May change my mind later. */
+		ret = 0;
+		goto command_cleanup;
+	case COMP_SUCCESS:
+		xhci_dbg(xhci, "Successful reset device command.\n");
+		break;
+	default:
+		if (xhci_is_vendor_info_code(xhci, ret))
+			break;
+		xhci_warn(xhci, "Unknown completion code %u for "
+				"reset device command.\n", ret);
+		ret = -EINVAL;
+		goto command_cleanup;
+	}
+
+	/* Everything but endpoint 0 is disabled, so free or cache the rings. */
+	last_freed_endpoint = 1;
+	for (i = 1; i < 31; ++i) {
+		if (!virt_dev->eps[i].ring)
+			continue;
+		xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i);
+		last_freed_endpoint = i;
+	}
+	xhci_dbg(xhci, "Output context after successful reset device cmd:\n");
+	xhci_dbg_ctx(xhci, virt_dev->out_ctx, last_freed_endpoint);
+	ret = 0;
+
+command_cleanup:
+	xhci_free_command(xhci, reset_device_cmd);
+	return ret;
+}
+
+/*
  * At this point, the struct usb_device is about to go away, the device has
  * disconnected, and all traffic has been stopped and the endpoints have been
  * disabled.  Free any HC data structures associated with that device.
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index f43e073..6ba841b 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -953,6 +953,17 @@ bandwidth_change:
 	case TRB_TYPE(TRB_RESET_EP):
 		handle_reset_ep_completion(xhci, event, xhci->cmd_ring->dequeue);
 		break;
+	case TRB_TYPE(TRB_RESET_DEV):
+		xhci_dbg(xhci, "Completed reset device command.\n");
+		slot_id = TRB_TO_SLOT_ID(
+				xhci->cmd_ring->dequeue->generic.field[3]);
+		virt_dev = xhci->devs[slot_id];
+		if (virt_dev)
+			handle_cmd_in_cmd_wait_list(xhci, virt_dev, event);
+		else
+			xhci_warn(xhci, "Reset device command completion "
+					"for disabled slot %u\n", slot_id);
+		break;
 	default:
 		/* Skip over unknown commands on the event ring */
 		xhci->error_bitmask |= 1 << 6;
@@ -2189,6 +2200,14 @@ int xhci_queue_address_device(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr,
 			false);
 }
 
+/* Queue a reset device command TRB */
+int xhci_queue_reset_device(struct xhci_hcd *xhci, u32 slot_id)
+{
+	return queue_command(xhci, 0, 0, 0,
+			TRB_TYPE(TRB_RESET_DEV) | SLOT_ID_FOR_TRB(slot_id),
+			false);
+}
+
 /* Queue a configure endpoint command TRB */
 int xhci_queue_configure_endpoint(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr,
 		u32 slot_id, bool command_must_succeed)
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 20122ec..feb0101 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1210,6 +1210,8 @@ void xhci_dbg_erst(struct xhci_hcd *xhci, struct xhci_erst *erst);
 void xhci_dbg_cmd_ptrs(struct xhci_hcd *xhci);
 void xhci_dbg_ring_ptrs(struct xhci_hcd *xhci, struct xhci_ring *ring);
 void xhci_dbg_ctx(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep);
+inline char *xhci_get_slot_state(struct xhci_hcd *xhci,
+		struct xhci_container_ctx *ctx);
 
 /* xHCI memory management */
 void xhci_mem_cleanup(struct xhci_hcd *xhci);
@@ -1298,6 +1300,7 @@ int xhci_queue_evaluate_context(struct xhci_hcd *xhci, dma_addr_t in_ctx_ptr,
 		u32 slot_id);
 int xhci_queue_reset_ep(struct xhci_hcd *xhci, int slot_id,
 		unsigned int ep_index);
+int xhci_queue_reset_device(struct xhci_hcd *xhci, u32 slot_id);
 void xhci_find_new_dequeue_state(struct xhci_hcd *xhci,
 		unsigned int slot_id, unsigned int ep_index,
 		struct xhci_td *cur_td, struct xhci_dequeue_state *state);
-- 
1.7.0.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[GIT PATCH] USB patches for 2.6.33-git, Greg KH, (Tue Mar 2, 4:09 pm)
[PATCH 001/220] USB: MXC: Add i.MX21 specific USB host con ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 002/220] USB: MXC: use DMA_BIT_MASK macro rather th ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 003/220] USB: MXC: add platform resources for i.MX2 ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 004/220] USB: cxacru: return an empty value for mod ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 005/220] USB: cxacru: check data length is not negative, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 006/220] USB: cxacru: check device isn't being remo ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 007/220] USB: cxacru: document how to interact with ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 008/220] USB: cxacru: firmware writes on OHCI are s ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 009/220] USB: cxacru: add write-only sysfs attribut ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 010/220] USB: cxacru: remove cxacru-cf.bin loader, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 011/220] USB: cxacru: increment driver version, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 012/220] USB: ftdi_sio: fix error message on close, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 013/220] USB: ftdi_sio: remove obsolete comment, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 014/220] USB: serial: fix typo in debug message, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 015/220] USB: ftdi_sio: fix initialisation of laten ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 016/220] USB: ftdi_sio: remove support for 5 and 6 ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 017/220] USB: fix occasional ULPI timeouts with ehc ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 018/220] USB: pxa27x_udc: avoid compiler warnings a ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 019/220] USB: serial mct_usb232: move DMA buffers t ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 020/220] cdc_acm: add reset_resume method, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 021/220] USB: check the endpoint type against the p ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 022/220] USB: xhci: Fix error path when configuring ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 023/220] USB: xhci: Refactor code to free or cache ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 024/220] USB: xhci: Allow allocation of commands wi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 025/220] USB: xhci: Refactor test for vendor-specif ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 026/220] USB: xhci: Refactor code to clear port cha ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 027/220] USB: xhci: Allow roothub ports to be disabled., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 028/220] USB: xhci: Notify the xHC when a device is ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 029/220] USB: Add call to notify xHC of a device reset., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 030/220] USB: ehci: add call of free_cached_itd_lis ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 031/220] USB: ehci: fix audio record functionality ..., Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 032/220] USB: ehci-fsl: Fix sparse warnings, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 033/220] USB: ehci-fsl: Add power management support, Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 034/220] USB: pxa27x_udc.c: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 035/220] USB: atmel_usba_udc.c: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 036/220] USB: at91_udc.c: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 037/220] USB: ehci-orion.c: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:35 pm)
[PATCH 038/220] USB: ehci-atmel.c: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 039/220] USB: ehci-au1xxx.c: use platform_get_resou ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 040/220] USB: cdc-acm: Update to new autopm API, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 041/220] USB: xhci: No GFP_KERNEL in block error ha ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 042/220] USB: wusb: check CHID is all zeros before ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 043/220] USB: otg: add notifier support, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 044/220] USB: otg: twl4030: add support for notifier, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 045/220] USB: storage: Never reset devices that wil ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 046/220] USB: Export QUIRK_RESET_MORPHS through sysfs, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 047/220] USB: cypress_m8: stop using USB debug driv ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 048/220] USB: cypress_m8: unify confusing new baudr ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 049/220] USB: cypress_m8: allow unstable baud rates, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 050/220] USB: isp1362: Use kzalloc for allocating o ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 051/220] USB: host: SL811: fix unaligned accesses, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 052/220] USB: host: SL811: allow the hcd on Blackfi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 053/220] USB: gadget: use ep5 for bulk-in and ep6 f ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 054/220] USB: gadget: add INT support for Blackfin musb, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 055/220] USB: musb: use resource_size(), Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 056/220] USB: musb: move two printk to dev_err, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 057/220] USB: musb: move to sysfs_groups, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 058/220] USB: musb: remove some of the never define ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 059/220] usbmon: add bus number to text API, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 060/220] USB: cdc_acm: Add support for pbLua consol ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 062/220] USB: retain USB device power/wakeup settin ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 063/220] USB: rename USB_SPEED_VARIABLE to USB_SPEE ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 064/220] USB: ftdi_sio: use error code from usb sta ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 065/220] USB: ftdi_sio: fix latency-timeout endiane ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 066/220] USB: ftdi_sio: fix DMA buffers on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 067/220] USB: ftdi_sio: clean up modem status handling, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 068/220] USB: ftdi_sio: remove unnecessary initiali ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 069/220] USB: usblp: Remove checks no longer needed ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 070/220] USB: Correct CONFIG variable typo., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 071/220] usb: otg: twl4030: move to request_threade ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 072/220] USB: musb: Add new fifo table for a OMAP3 ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 073/220] usb: musb: hsdma: add wrapper for reading ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 074/220] usb: musb: workaround MUSB DMA_INTR someti ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 075/220] usb: musb: workaround toggle bug when doin ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 076/220] usb: musb: Fix cppi_channel_abort() functi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 077/220] usb: musb: clean up commit 'workaround Bla ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 078/220] usb: musb: handle irqs in the order dictat ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 079/220] usb: musb: save dynfifo in musb struct, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 080/220] usb: musb: Add 'extvbus' in musb_hdrc_plat ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 081/220] usb: host: ehci: fix missing kfree in remo ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 082/220] usb: host: ehci: adding regulator framewor ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 083/220] USB: ch341: replace printk warnings with d ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 084/220] USB: ch341: fix DMA buffer on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 085/220] USB: ch341: use le16_to_cpup to be explici ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 086/220] USB: cypress_m8: fix DMA buffer on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 087/220] USB: cypress_m8: fix endianess bug, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 088/220] USB: io_ti: fix DMA buffers on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 089/220] USB: keyspan_pda: fix DMA buffers on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 090/220] USB: kl5kusb105: fix DMA buffers on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 091/220] USB: mos7720: fix DMA buffers on stack and ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 092/220] USB: mos7840: fix DMA buffers on stack and ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 093/220] USB: oti6858: fix DMA buffer on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 094/220] USB: visor: fix DMA buffers on stack, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 095/220] USB: kobil_sct: clean up kobil_set_termios, Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 096/220] USB: serial: fix DMA buffers on stack for ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 097/220] USB: ch341: use get_unaligned_le16 in brea ..., Greg Kroah-Hartman, (Tue Mar 2, 4:36 pm)
[PATCH 098/220] USB: cypress_m8: use put_unaligned_le32() ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 099/220] USB: FHCI: Correct the size argument to kz ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 100/220] USB: c67x00: use resource_size()., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 101/220] USB: xhci: Fix compile issues with xhci_ge ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 102/220] USB: gadget: introduce g_nokia gadget driver, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 103/220] arm: defconfig: rx51: enable phonet and g_ ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 104/220] USB: unusual_devs: Add support for multipl ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 105/220] USB: Use bInterfaceNumber in bandwidth all ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 106/220] USB: rearrange code in usb_probe_interface, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 107/220] USB: change locking for device-level autos ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 108/220] USB: consolidate remote wakeup routines, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 109/220] USB: use the device lock for persist_enabled, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 110/220] USB: implement usb_enable_autosuspend, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 111/220] USB: change handling of negative autosuspe ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 112/220] USB: rearrange functions in driver.c, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 113/220] USB: convert to the runtime PM framework, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 114/220] USB: fix crash in uhci_scan_schedule, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 115/220] USB: Move hcd free_dev call into usb_disco ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 116/220] USB: musb: don't dereference NULL tusb_dma ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 117/220] USB skeleton: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 118/220] USB class: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 119/220] USB serial: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 120/220] USB image: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 121/220] USB misc: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 122/220] USB hub: make USB device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 123/220] USB host: make Open Firmware device id con ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 124/220] USB gadget: make Open Firmware device id c ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 125/220] USB goku_udc: make PCI device id constant, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 126/220] USB: serial: option.c: Add chipset informa ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 127/220] USB: serial: option.c: Add blacklisting in ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 128/220] USB: serial: option.c: Add 4G W14 stick to ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 129/220] USB: atm: Use FIELD_SIZEOF, trivial cleanup., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 130/220] USB: Remove BKL from poll(), Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 131/220] USB: Remove BKL from usbdev_open(), Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 132/220] USB: Remove BKL from lseek implementations, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 133/220] USB: Push BKL on open down into the drivers, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 134/220] USB: Reduce scope of BKL in usb ioctl handling, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 135/220] USB: isight-firmware: declare MODULE_FIRMWARE, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 136/220] usb: BKL removal: usblp, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 137/220] USB: BKL removal: usb-skeleton, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 138/220] USB: BKL removal: usbtmc, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 139/220] USB: BKL removal: cdc-wdm, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 140/220] USB: BKL removal: mdc800, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 141/220] USB: BKL removal: rio500, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 142/220] USB: BKL removal: idmouse, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 143/220] USB: BKL removal: adutux, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 144/220] USB: BKL removal: ftdi-elan, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 145/220] USB: BKL removal: ldusb, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 146/220] USB: BKL removal: legousbtower, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 147/220] USB: BKL removal: vstusb, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 148/220] USB: BKL removal: frontier, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 149/220] USB: BKL removal from ioctl path of usbfs, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 150/220] USB: remove the berry_charge driver, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 151/220] USB: gadget: Add DEVTYPE support for Ether ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 152/220] USB: serial: Eliminate useless code, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 153/220] USB: ftdi_sio: correct spelling in header ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 154/220] USB: ftdi_sio: correct spelling in impleme ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 155/220] USB: trivial: missing newline in usb core ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 156/220] USB: s3c-hsotg: Staticise non-exported fun ..., Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 157/220] USB: usbfs_snoop: add data logging back in, Greg Kroah-Hartman, (Tue Mar 2, 4:37 pm)
[PATCH 158/220] USB: remove obsolete config in kernel sour ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 159/220] usb: musb: Add context save and restore su ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 160/220] USB: musb: get rid of omap_readl/writel, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 161/220] USB: musb: we already tested for dyn_fifo, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 162/220] USB: musb: deprecate what we don't use, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 163/220] USB: musb: tusb6010: use resource_size, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 164/220] USB: musb: unmap base if we can't probe, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 165/220] USB: musb: only print info message if prob ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 166/220] USB: s3c-hsotg: replace deprecated dma_syn ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 167/220] USB: io_edgeport: eliminate get_string(), Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 168/220] USB: serial: add support for serial port o ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 169/220] USB: pxa27x_udc: Fix deadlocks on request ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 170/220] USB: musb: set version of Blackfin version, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 171/220] USB: musb: disable double buffering for ol ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 172/220] USB: mass_storage: eject LUNs on thread exit, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 173/220] USB: g_mass_storage: superfluous and missi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 174/220] usb: gadgetfs: Convert semaphore to mutex, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 175/220] USB: ftdi_sio: Replace BKL with a mutex, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 176/220] USB: add new ftdi_sio device ids, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 177/220] USB: isp1760: Flush the D-cache for the pi ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 178/220] USB: musb: test always evaluates to false, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 179/220] USB: g_mass_storage: min(...) warning fixed, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 180/220] USB: cdc-acm: fix possible deadlock with m ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 181/220] USB: f_mass_storage: fix crash on bind() error, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 182/220] USB: Remove unsupported usb gadget drivers, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 183/220] USB: atmel uaba: Adding invert vbus_pin, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 184/220] USB: serial: Add support for ViVOtech ViVO ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 185/220] USB: ehci-dbgp: split PID register updates ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 186/220] USB: serial: Remove unnecessary \n's from ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 187/220] USB: Convert concatenated __FILE__ to %s, ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 188/220] USB: Extend and neaten dbg macros, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 189/220] USB: cp210x: Add 81E8 (Zephyr Bioharness), Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 190/220] tty: Fix various bogus WARN checks in the ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 191/220] USB: remove debugging message for uevent c ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 192/220] USB: xhci: Fix finding extended capabiliti ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 193/220] USB: serial: sierra driver adding reset_re ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 194/220] USB: serial: sierra driver indat_callback fix, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 195/220] USB: omap: ehci: kill 2 compile warnings, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 196/220] USB: ehci: omap: use default interrupt thr ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 197/220] USB: ehci: omap: Update TODO list in comments, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 198/220] USB: OHCI: DA8xx/OMAP-L1x glue layer, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 199/220] usb-storage: use max_hw_sectors instead of ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 200/220] USB: fix the idProduct value for USB-3.0 r ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 201/220] USB: vstusb.c: removal of driver for Verni ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 202/220] USB: storage: fix misplaced parenthesis, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 203/220] USB: tty: sort out the request_room handli ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 204/220] USB: tty: kill request_room for USB ACM class, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 206/220] USB: tty: Add a function to insert a strin ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 207/220] USB: tty: Prune uses of tty_request_room i ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 209/220] USB: serial: ftdi: add CONTEC vendor and p ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 210/220] USB: storage: onetouch: unnecessary GFP_ATOMIC, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 211/220] USB: sisusbvga: no unnecessary GFP_ATOMIC, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 212/220] USB: usbmon: mask seconds properly in text API, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 213/220] USB: fix I2C API usage in ohci-pnx4008., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 214/220] USB: option: add Longcheer/Longsung vendor ID, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 215/220] USB: pl2303: initial TIOCGSERIAL support, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 216/220] USB: qcaux: driver for auxiliary serial po ..., Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 217/220] USB: ftdi_sio: remove unused tx_bytes counter, Greg Kroah-Hartman, (Tue Mar 2, 4:38 pm)
[PATCH 218/220] USB: ftdi_sio: remove obsolete check in un ..., Greg Kroah-Hartman, (Tue Mar 2, 4:39 pm)
[PATCH 219/220] USB: pl2303: remove unnecessary reset of u ..., Greg Kroah-Hartman, (Tue Mar 2, 4:39 pm)
[PATCH 220/220] USB: backlight, appledisplay: fix incomple ..., Greg Kroah-Hartman, (Tue Mar 2, 4:39 pm)
Re: [PATCH 177/220] USB: isp1760: Flush the D-cache for th ..., Sebastian Andrzej Si ..., (Thu Mar 4, 3:21 am)