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

Commit 224563b6 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'for-usb-next-2013-08-15' of...

Merge tag 'for-usb-next-2013-08-15' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next

Sarah writes:

xhci: Platform updates, 64-bit DMA, and trace events for 3.12.

Hi Greg,

This pull request includes one new feature for the xhci-plat driver (device
tree support).  Felipe was fine with the patch last I checked, but hadn't
provided an official Acked-by line.

This pull request also includes 13 patches from my FOSS Outreach Program for
Women (OPW) intern, Xenia.  She fixed a bug in the xHCI driver so that the
driver can allocate 64-bit consistent DMA, converted the driver to use dynamic
debugging, and added a bunch of new trace events for the xHCI driver.  The
python plugin for trace-cmd should be up on git hub shortly, although the trace
events are usable without it.

I'm very happy with the progress that Xenia has made, and I look forward to her
future contributions to the Linux kernel.

Sarah Sharp
parents 9821aa9d c10cf118
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
USB xHCI controllers

Required properties:
  - compatible: should be "xhci-platform".
  - reg: should contain address and length of the standard XHCI
    register set for the device.
  - interrupts: one XHCI interrupt should be described here.

Example:
	usb@f0931000 {
		compatible = "xhci-platform";
		reg = <0xf0931000 0x8c8>;
		interrupts = <0x0 0x4e 0x0>;
	};
+0 −9
Original line number Diff line number Diff line
@@ -29,15 +29,6 @@ if USB_XHCI_HCD
config USB_XHCI_PLATFORM
	tristate

config USB_XHCI_HCD_DEBUGGING
	bool "Debugging for the xHCI host controller"
	---help---
	  Say 'Y' to turn on debugging for the xHCI host controller driver.
	  This will spew debugging output, even in interrupt context.
	  This should only be used for debugging xHCI driver bugs.

	  If unsure, say N.

endif # USB_XHCI_HCD

config USB_EHCI_HCD
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@

ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG

# tell define_trace.h where to find the xhci trace header
CFLAGS_xhci-trace.o := -I$(src)

isp1760-y := isp1760-hcd.o isp1760-if.o

fhci-y := fhci-hcd.o fhci-hub.o fhci-q.o
@@ -13,6 +16,7 @@ fhci-$(CONFIG_FHCI_DEBUG) += fhci-dbg.o

xhci-hcd-y := xhci.o xhci-mem.o
xhci-hcd-y += xhci-ring.o xhci-hub.o xhci-dbg.o
xhci-hcd-y += xhci-trace.o
xhci-hcd-$(CONFIG_PCI)	+= xhci-pci.o

ifneq ($(CONFIG_USB_XHCI_PLATFORM), )
+14 −0
Original line number Diff line number Diff line
@@ -580,3 +580,17 @@ void xhci_dbg_ctx(struct xhci_hcd *xhci,
	xhci_dbg_slot_ctx(xhci, ctx);
	xhci_dbg_ep_ctx(xhci, ctx, last_ep);
}

void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *),
			const char *fmt, ...)
{
	struct va_format vaf;
	va_list args;

	va_start(args, fmt);
	vaf.fmt = fmt;
	vaf.va = &args;
	xhci_dbg(xhci, "%pV\n", &vaf);
	trace(&vaf);
	va_end(args);
}
+5 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <asm/unaligned.h>

#include "xhci.h"
#include "xhci-trace.h"

#define	PORT_WAKE_BITS	(PORT_WKOC_E | PORT_WKDISC_E | PORT_WKCONN_E)
#define	PORT_RWC_BITS	(PORT_CSC | PORT_PEC | PORT_WRC | PORT_OCC | \
@@ -535,8 +536,10 @@ void xhci_del_comp_mod_timer(struct xhci_hcd *xhci, u32 status, u16 wIndex)
		xhci->port_status_u0 |= 1 << wIndex;
		if (xhci->port_status_u0 == all_ports_seen_u0) {
			del_timer_sync(&xhci->comp_mode_recovery_timer);
			xhci_dbg(xhci, "All USB3 ports have entered U0 already!\n");
			xhci_dbg(xhci, "Compliance Mode Recovery Timer Deleted.\n");
			xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
				"All USB3 ports have entered U0 already!");
			xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
				"Compliance Mode Recovery Timer Deleted.");
		}
	}
}
Loading