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

Commit 08150c53 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (43 commits)
  Revert "USB: isp1760-hcd: move imask clear after pending work is done"
  xHCI: Implement AMD PLL quirk
  xhci: Tell USB core both roothubs lost power.
  usbcore: Bug fix: system can't suspend with USB3.0 device connected to USB3.0 hub
  USB: Fix unplug of device with active streams
  USB: xhci - also free streams when resetting devices
  xhci: Fix NULL pointer deref in handle_port_status()
  USB: xhci - fix math in xhci_get_endpoint_interval()
  USB: xhci: simplify logic of skipping missed isoc TDs
  USB: xhci - remove excessive 'inline' markings
  USB: xhci: unsigned char never equals -1
  USB: xhci - fix unsafe macro definitions
  USB: fix formatting of SuperSpeed endpoints in /proc/bus/usb/devices
  USB: isp1760-hcd: move imask clear after pending work is done
  USB: fsl_qe_udc: send ZLP when zero flag and length % maxpacket == 0
  usb: qcserial add missing errorpath kfrees
  usb: qcserial avoid pointing to freed memory
  usb: Fix qcserial memory leak on rmmod
  USB: ftdi_sio: add ids for Hameg HO720 and HO730
  USB: option: Added support for Samsung GT-B3730/GT-B3710 LTE USB modem.
  ...
parents fdfc552a 753d8534
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ config MICROBLAZE
	select HAVE_FUNCTION_GRAPH_TRACER
	select HAVE_DYNAMIC_FTRACE
	select HAVE_FTRACE_MCOUNT_RECORD
	select USB_ARCH_HAS_EHCI
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select HAVE_OPROFILE
	select HAVE_ARCH_KGDB
+1 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ config USB_ARCH_HAS_EHCI
	default y if ARCH_VT8500
	default y if PLAT_SPEAR
	default y if ARCH_MSM
	default y if MICROBLAZE
	default PCI

# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
+6 −4
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end,
		break;
	case USB_ENDPOINT_XFER_INT:
		type = "Int.";
		if (speed == USB_SPEED_HIGH)
		if (speed == USB_SPEED_HIGH || speed == USB_SPEED_SUPER)
			interval = 1 << (desc->bInterval - 1);
		else
			interval = desc->bInterval;
@@ -229,7 +229,8 @@ static char *usb_dump_endpoint_descriptor(int speed, char *start, char *end,
	default:	/* "can't happen" */
		return start;
	}
	interval *= (speed == USB_SPEED_HIGH) ? 125 : 1000;
	interval *= (speed == USB_SPEED_HIGH ||
		     speed == USB_SPEED_SUPER) ? 125 : 1000;
	if (interval % 1000)
		unit = 'u';
	else {
@@ -542,8 +543,9 @@ static ssize_t usb_device_dump(char __user **buffer, size_t *nbytes,
	if (level == 0) {
		int	max;

		/* high speed reserves 80%, full/low reserves 90% */
		if (usbdev->speed == USB_SPEED_HIGH)
		/* super/high speed reserves 80%, full/low reserves 90% */
		if (usbdev->speed == USB_SPEED_HIGH ||
		    usbdev->speed == USB_SPEED_SUPER)
			max = 800;
		else
			max = FRAME_TIME_MAX_USECS_ALLOC;
+1 −1
Original line number Diff line number Diff line
@@ -1908,7 +1908,7 @@ void usb_free_streams(struct usb_interface *interface,

	/* Streams only apply to bulk endpoints. */
	for (i = 0; i < num_eps; i++)
		if (!usb_endpoint_xfer_bulk(&eps[i]->desc))
		if (!eps[i] || !usb_endpoint_xfer_bulk(&eps[i]->desc))
			return;

	hcd->driver->free_streams(hcd, dev, eps, num_eps, mem_flags);
+11 −1
Original line number Diff line number Diff line
@@ -2285,7 +2285,17 @@ int usb_port_suspend(struct usb_device *udev, pm_message_t msg)
	}

	/* see 7.1.7.6 */
	status = set_port_feature(hub->hdev, port1, USB_PORT_FEAT_SUSPEND);
	/* Clear PORT_POWER if it's a USB3.0 device connected to USB 3.0
	 * external hub.
	 * FIXME: this is a temporary workaround to make the system able
	 * to suspend/resume.
	 */
	if ((hub->hdev->parent != NULL) && hub_is_superspeed(hub->hdev))
		status = clear_port_feature(hub->hdev, port1,
						USB_PORT_FEAT_POWER);
	else
		status = set_port_feature(hub->hdev, port1,
						USB_PORT_FEAT_SUSPEND);
	if (status) {
		dev_dbg(hub->intfdev, "can't suspend port %d, status %d\n",
				port1, status);
Loading