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

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

Merge tag 'usb-for-v4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next

Felipe writes:

usb: changes for v4.7 merge window

Here's the big USB Gadget pull request. This time
not as large as usual with only 57 non-merge
commits.

The most important part here is, again, all the work
on dwc3. This time around we're treating all
endpoints (except for control endpoint) exactly the
same. They all have the same amount of TRBs on the
ring, they all treat the ring as an actual ring with
a link TRB pointing to the head, etc.

We're also helping the host side burst (on
SuperSpeed GEN1 or GEN2 at least) for as long as
possible until the endpoint returns NRDY.

Other than this big TRB ring rework on dwc3, we also
have a dwc3-omap DMA initialization fix, some extra
debugfs files to aid in some odd debug sessions and
a complete removal of our FIFO resizing logic.

We have a new quirk for some dwc3 P3 quirk in some
implementations.

The rest is basically non-critical fixes and the
usual cleanups.
parents 328fafb9 2a58f9c1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@ Optional properties:
   the second element is expected to be a handle to the USB3/SS PHY
 - phys: from the *Generic PHY* bindings
 - phy-names: from the *Generic PHY* bindings
 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
 - snps,disable_scramble_quirk: true when SW should disable data scrambling.
	Only really useful for FPGA builds.
@@ -38,6 +37,8 @@ Optional properties:
 - snps,dis_u2_susphy_quirk: when set core will disable USB2 suspend phy.
 - snps,dis_enblslpm_quirk: when set clears the enblslpm in GUSB2PHYCFG,
			disabling the suspend signal to the PHY.
 - snps,dis_rxdet_inp3_quirk: when set core will disable receiver detection
			in PHY P3 power state.
 - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
			utmi_l1_suspend_n, false when asserts utmi_sleep_n
 - snps,hird-threshold: HIRD threshold
@@ -47,6 +48,8 @@ Optional properties:
	register for post-silicon frame length adjustment when the
	fladj_30mhz_sdbnd signal is invalid or incorrect.

 - <DEPRECATED> tx-fifo-resize: determines if the FIFO *has* to be reallocated.

This is usually a subnode to DWC3 glue to which it is connected.

dwc3@4a030000 {
@@ -54,5 +57,4 @@ dwc3@4a030000 {
	reg = <0x4a030000 0xcfff>;
	interrupts = <0 92 4>
	usb-phy = <&usb2_phy>, <&usb3,phy>;
	tx-fifo-resize;
};
+0 −1
Original line number Diff line number Diff line
@@ -59,7 +59,6 @@ Example device nodes:
				interrupts = <0 205 0x4>;
				phys = <&hs_phy>, <&ss_phy>;
				phy-names = "usb2-phy", "usb3-phy";
				tx-fifo-resize;
				dr_mode = "host";
			};
		};
+2 −1
Original line number Diff line number Diff line
@@ -250,7 +250,8 @@ config PHY_SUN9I_USB
	tristate "Allwinner sun9i SoC USB PHY driver"
	depends on ARCH_SUNXI && HAS_IOMEM && OF
	depends on RESET_CONTROLLER
	depends on USB_COMMON
	depends on USB_SUPPORT
	select USB_COMMON
	select GENERIC_PHY
	help
	  Enable this to support the transceiver that is part of Allwinner
+1 −2
Original line number Diff line number Diff line
@@ -31,8 +31,6 @@ if USB_SUPPORT

config USB_COMMON
	tristate
	default y
	depends on USB || USB_GADGET

config USB_ARCH_HAS_HCD
	def_bool y
@@ -41,6 +39,7 @@ config USB_ARCH_HAS_HCD
config USB
	tristate "Support for Host-side USB"
	depends on USB_ARCH_HAS_HCD
	select USB_COMMON
	select NLS  # for UTF-8 strings
	---help---
	  Universal Serial Bus (USB) is a specification for a serial bus
+7 −1
Original line number Diff line number Diff line
@@ -2425,6 +2425,9 @@ static irqreturn_t dwc2_hsotg_irq(int irq, void *pw)
	u32 gintsts;
	u32 gintmsk;

	if (!dwc2_is_device_mode(hsotg))
		return IRQ_NONE;

	spin_lock(&hsotg->lock);
irq_retry:
	gintsts = dwc2_readl(hsotg->regs + GINTSTS);
@@ -2631,7 +2634,10 @@ static int dwc2_hsotg_ep_enable(struct usb_ep *ep,
		desc->wMaxPacketSize, desc->bInterval);

	/* not to be called for EP0 */
	WARN_ON(index == 0);
	if (index == 0) {
		dev_err(hsotg->dev, "%s: called for EP 0\n", __func__);
		return -EINVAL;
	}

	dir_in = (desc->bEndpointAddress & USB_ENDPOINT_DIR_MASK) ? 1 : 0;
	if (dir_in != hs_ep->dir_in) {
Loading