From: Anders Roxell <anders.roxell@linaro.org>
To: u-boot@lists.denx.de, marex@denx.de
Cc: mkorpershoek@kernel.org, ilias.apalodimas@linaro.org,
trini@konsulko.com, michal.simek@amd.com, alchark@flipper.net,
jerome.forissier@arm.com,
Jens Wiklander <jens.wiklander@linaro.org>,
Anders Roxell <anders.roxell@linaro.org>,
Marek Vasut <marek.vasut+usb@mailbox.org>,
Lukasz Majewski <lukma@denx.de>,
u-boot@lists.u-boot-project.org
Subject: [PATCH v6 56/87] usb: dwc3: import from kernel v6.11
Date: Fri, 21 Aug 2026 10:47:32 +0200 [thread overview]
Message-ID: <20260821084829.2070426-57-anders.roxell@linaro.org> (raw)
In-Reply-To: <20260821084829.2070426-1-anders.roxell@linaro.org>
From: Jens Wiklander <jens.wiklander@linaro.org>
Sync Linux kernel dwc3 changes from v6.10 to v6.11.
The following files are preserved across the import:
Makefile Kconfig dwc3-meson-g12a.c dwc3-meson-gxl.c dwc3-omap.c
dwc3-uniphier.c dwc3-generic.h dwc3-generic.c dwc3-generic-sti.c
dwc3-layerscape.c ti_usb_phy.c
Skipping unused files:
debugfs.c drd.c dwc3-exynos.c dwc3-haps.c dwc3-imx8mp.c dwc3-keystone.c
dwc3-octeon.c dwc3-of-simple.c dwc3-pci.c dwc3-qcom.c dwc3-qcom-legacy.c
dwc3-rtk.c dwc3-st.c dwc3-xilinx.c host.c trace.c trace.h ulpi.c
Note that this is a raw import and doesn't build.
A fixup commit at the end of the series fixes that.
List of commits: git log --oneline v6.10..v6.11
Commits imported:
9149c9b0c7e0 usb: dwc3: core: update LC timer as per USB Spec V3.2
00dcf2fa449f usb: dwc3: Avoid waking up gadget during startxfer
72fca8371f20 usb: dwc3: ep0: Don't reset resource alloc flag (including ep0)
14e497183df2 usb: dwc3: core: Prevent USB core invalid event buffer address access
d504bfa6cfd1 usb: dwc3: enable CCI support for AMD-xilinx DWC3 controller
179264157bba usb: dwc3: core: Check all ports when set phy suspend
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
---
drivers/usb/dwc3/core.c | 89 +++++++++++++++++++++++++++++++++------
drivers/usb/dwc3/core.h | 10 +++++
drivers/usb/dwc3/ep0.c | 3 +-
drivers/usb/dwc3/gadget.c | 41 ++++++++----------
4 files changed, 106 insertions(+), 37 deletions(-)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index cb82557678dd..9eb085f359ce 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -108,22 +108,27 @@ static int dwc3_get_dr_mode(struct dwc3 *dwc)
void dwc3_enable_susphy(struct dwc3 *dwc, bool enable)
{
u32 reg;
+ int i;
- reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
- if (enable && !dwc->dis_u3_susphy_quirk)
- reg |= DWC3_GUSB3PIPECTL_SUSPHY;
- else
- reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
+ for (i = 0; i < dwc->num_usb3_ports; i++) {
+ reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(i));
+ if (enable && !dwc->dis_u3_susphy_quirk)
+ reg |= DWC3_GUSB3PIPECTL_SUSPHY;
+ else
+ reg &= ~DWC3_GUSB3PIPECTL_SUSPHY;
- dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
+ dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(i), reg);
+ }
- reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0));
- if (enable && !dwc->dis_u2_susphy_quirk)
- reg |= DWC3_GUSB2PHYCFG_SUSPHY;
- else
- reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
+ for (i = 0; i < dwc->num_usb2_ports; i++) {
+ reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(i));
+ if (enable && !dwc->dis_u2_susphy_quirk)
+ reg |= DWC3_GUSB2PHYCFG_SUSPHY;
+ else
+ reg &= ~DWC3_GUSB2PHYCFG_SUSPHY;
- dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
+ dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(i), reg);
+ }
}
void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode)
@@ -559,9 +564,17 @@ int dwc3_event_buffers_setup(struct dwc3 *dwc)
void dwc3_event_buffers_cleanup(struct dwc3 *dwc)
{
struct dwc3_event_buffer *evt;
+ u32 reg;
if (!dwc->ev_buf)
return;
+ /*
+ * Exynos platforms may not be able to access event buffer if the
+ * controller failed to halt on dwc3_core_exit().
+ */
+ reg = dwc3_readl(dwc->regs, DWC3_DSTS);
+ if (!(reg & DWC3_DSTS_DEVCTRLHLT))
+ return;
evt = dwc->ev_buf;
@@ -599,6 +612,18 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc)
parms->hwparams9 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS9);
}
+static void dwc3_config_soc_bus(struct dwc3 *dwc)
+{
+ if (dwc->gsbuscfg0_reqinfo != DWC3_GSBUSCFG0_REQINFO_UNSPECIFIED) {
+ u32 reg;
+
+ reg = dwc3_readl(dwc->regs, DWC3_GSBUSCFG0);
+ reg &= ~DWC3_GSBUSCFG0_REQINFO(~0);
+ reg |= DWC3_GSBUSCFG0_REQINFO(dwc->gsbuscfg0_reqinfo);
+ dwc3_writel(dwc->regs, DWC3_GSBUSCFG0, reg);
+ }
+}
+
static int dwc3_core_ulpi_init(struct dwc3 *dwc)
{
int intf;
@@ -1338,6 +1363,8 @@ static int dwc3_core_init(struct dwc3 *dwc)
dwc3_set_incr_burst_type(dwc);
+ dwc3_config_soc_bus(dwc);
+
ret = dwc3_phy_power_on(dwc);
if (ret)
goto err_exit_phy;
@@ -1359,6 +1386,21 @@ static int dwc3_core_init(struct dwc3 *dwc)
dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
}
+ /*
+ * STAR 9001285599: This issue affects DWC_usb3 version 3.20a
+ * only. If the PM TIMER ECM is enabled through GUCTL2[19], the
+ * link compliance test (TD7.21) may fail. If the ECN is not
+ * enabled (GUCTL2[19] = 0), the controller will use the old timer
+ * value (5us), which is still acceptable for the link compliance
+ * test. Therefore, do not enable PM TIMER ECM in 3.20a by
+ * setting GUCTL2[19] by default; instead, use GUCTL2[19] = 0.
+ */
+ if (DWC3_VER_IS(DWC3, 320A)) {
+ reg = dwc3_readl(dwc->regs, DWC3_GUCTL2);
+ reg &= ~DWC3_GUCTL2_LC_TIMER;
+ dwc3_writel(dwc->regs, DWC3_GUCTL2, reg);
+ }
+
/*
* When configured in HOST mode, after issuing U3/L2 exit controller
* fails to send proper CRC checksum in CRC5 feild. Because of this
@@ -1576,6 +1618,27 @@ static void dwc3_core_exit_mode(struct dwc3 *dwc)
dwc3_set_prtcap(dwc, DWC3_GCTL_PRTCAP_DEVICE);
}
+static void dwc3_get_software_properties(struct dwc3 *dwc)
+{
+ struct device *tmpdev;
+ u16 gsbuscfg0_reqinfo;
+ int ret;
+
+ dwc->gsbuscfg0_reqinfo = DWC3_GSBUSCFG0_REQINFO_UNSPECIFIED;
+
+ /*
+ * Iterate over all parent nodes for finding swnode properties
+ * and non-DT (non-ABI) properties.
+ */
+ for (tmpdev = dwc->dev; tmpdev; tmpdev = tmpdev->parent) {
+ ret = device_property_read_u16(tmpdev,
+ "snps,gsbuscfg0-reqinfo",
+ &gsbuscfg0_reqinfo);
+ if (!ret)
+ dwc->gsbuscfg0_reqinfo = gsbuscfg0_reqinfo;
+ }
+}
+
static void dwc3_get_properties(struct dwc3 *dwc)
{
struct device *dev = dwc->dev;
@@ -2090,6 +2153,8 @@ static int dwc3_probe(struct platform_device *pdev)
dwc3_get_properties(dwc);
+ dwc3_get_software_properties(dwc);
+
dwc->reset = devm_reset_control_array_get_optional_shared(dev);
if (IS_ERR(dwc->reset)) {
ret = PTR_ERR(dwc->reset);
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 3781c736c1a1..c71240e8f7c7 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -194,6 +194,10 @@
#define DWC3_GSBUSCFG0_INCRBRSTENA (1 << 0) /* undefined length enable */
#define DWC3_GSBUSCFG0_INCRBRST_MASK 0xff
+/* Global SoC Bus Configuration Register: AHB-prot/AXI-cache/OCP-ReqInfo */
+#define DWC3_GSBUSCFG0_REQINFO(n) (((n) & 0xffff) << 16)
+#define DWC3_GSBUSCFG0_REQINFO_UNSPECIFIED 0xffffffff
+
/* Global Debug LSP MUX Select */
#define DWC3_GDBGLSPMUX_ENDBC BIT(15) /* Host only */
#define DWC3_GDBGLSPMUX_HOSTSELECT(n) ((n) & 0x3fff)
@@ -417,6 +421,7 @@
/* Global User Control Register 2 */
#define DWC3_GUCTL2_RST_ACTBITLATER BIT(14)
+#define DWC3_GUCTL2_LC_TIMER BIT(19)
/* Global User Control Register 3 */
#define DWC3_GUCTL3_SPLITDISABLE BIT(14)
@@ -1153,6 +1158,9 @@ struct dwc3_scratchpad_array {
* @num_ep_resized: carries the current number endpoints which have had its tx
* fifo resized.
* @debug_root: root debugfs directory for this device to put its files in.
+ * @gsbuscfg0_reqinfo: store GSBUSCFG0.DATRDREQINFO, DESRDREQINFO,
+ * DATWRREQINFO, and DESWRREQINFO value passed from
+ * glue driver.
*/
struct dwc3 {
struct work_struct drd_work;
@@ -1262,6 +1270,7 @@ struct dwc3 {
#define DWC3_REVISION_290A 0x5533290a
#define DWC3_REVISION_300A 0x5533300a
#define DWC3_REVISION_310A 0x5533310a
+#define DWC3_REVISION_320A 0x5533320a
#define DWC3_REVISION_330A 0x5533330a
#define DWC31_REVISION_ANY 0x0
@@ -1380,6 +1389,7 @@ struct dwc3 {
int last_fifo_depth;
int num_ep_resized;
struct dentry *debug_root;
+ u32 gsbuscfg0_reqinfo;
};
#define INCRX_BURST_MODE 0
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index d96ffbe52039..c9533a99e47c 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -232,7 +232,8 @@ void dwc3_ep0_stall_and_restart(struct dwc3 *dwc)
/* stall is always issued on EP0 */
dep = dwc->eps[0];
__dwc3_gadget_ep_set_halt(dep, 1, false);
- dep->flags = DWC3_EP_ENABLED;
+ dep->flags &= DWC3_EP_RESOURCE_ALLOCATED;
+ dep->flags |= DWC3_EP_ENABLED;
dwc->delayed_status = false;
if (!list_empty(&dep->pending_list)) {
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 89fc690fdf34..291bc549935b 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -287,6 +287,23 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc, bool async);
*
* Caller should handle locking. This function will issue @cmd with given
* @params to @dep and wait for its completion.
+ *
+ * According to the programming guide, if the link state is in L1/L2/U3,
+ * then sending the Start Transfer command may not complete. The
+ * programming guide suggested to bring the link state back to ON/U0 by
+ * performing remote wakeup prior to sending the command. However, don't
+ * initiate remote wakeup when the user/function does not send wakeup
+ * request via wakeup ops. Send the command when it's allowed.
+ *
+ * Notes:
+ * For L1 link state, issuing a command requires the clearing of
+ * GUSB2PHYCFG.SUSPENDUSB2, which turns on the signal required to complete
+ * the given command (usually within 50us). This should happen within the
+ * command timeout set by driver. No additional step is needed.
+ *
+ * For L2 or U3 link state, the gadget is in USB suspend. Care should be
+ * taken when sending Start Transfer command to ensure that it's done after
+ * USB resume.
*/
int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
struct dwc3_gadget_ep_cmd_params *params)
@@ -327,30 +344,6 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned int cmd,
dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg);
}
- if (DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_STARTTRANSFER) {
- int link_state;
-
- /*
- * Initiate remote wakeup if the link state is in U3 when
- * operating in SS/SSP or L1/L2 when operating in HS/FS. If the
- * link state is in U1/U2, no remote wakeup is needed. The Start
- * Transfer command will initiate the link recovery.
- */
- link_state = dwc3_gadget_get_link_state(dwc);
- switch (link_state) {
- case DWC3_LINK_STATE_U2:
- if (dwc->gadget->speed >= USB_SPEED_SUPER)
- break;
-
- fallthrough;
- case DWC3_LINK_STATE_U3:
- ret = __dwc3_gadget_wakeup(dwc, false);
- dev_WARN_ONCE(dwc->dev, ret, "wakeup failed --> %d\n",
- ret);
- break;
- }
- }
-
/*
* For some commands such as Update Transfer command, DEPCMDPARn
* registers are reserved. Since the driver often sends Update Transfer
--
2.53.0
next prev parent reply other threads:[~2026-08-21 13:17 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260821084829.2070426-1-anders.roxell@linaro.org>
2026-08-21 8:46 ` [PATCH v6 01/87] usb: host: re-import xhci-ext-caps.h from kernel v6.16 Anders Roxell
2026-08-21 19:44 ` Tom Rini
2026-08-22 4:22 ` Marek Vasut
2026-08-23 18:44 ` Anders Roxell
2026-08-23 18:59 ` Tom Rini
2026-08-23 19:08 ` Anders Roxell
2026-08-23 20:57 ` Tom Rini
2026-08-21 8:46 ` [PATCH v6 02/87] usb: dwc3: restore to original v3.19-rc1 kernel import Anders Roxell
2026-08-21 8:46 ` [PATCH v6 03/87] usb: dwc3: import from kernel v3.19 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 04/87] usb: dwc3: import from kernel v4.0 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 05/87] usb: dwc3: import from kernel v4.1 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 06/87] usb: dwc3: import from kernel v4.2 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 07/87] usb: dwc3: import from kernel v4.3 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 08/87] usb: dwc3: import from kernel v4.4 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 09/87] usb: dwc3: import from kernel v4.5 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 10/87] usb: dwc3: import from kernel v4.6 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 11/87] usb: dwc3: import from kernel v4.7 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 12/87] usb: dwc3: import from kernel v4.8 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 13/87] usb: dwc3: import from kernel v4.9 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 14/87] usb: dwc3: import from kernel v4.10 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 15/87] usb: dwc3: import from kernel v4.11 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 16/87] usb: dwc3: import from kernel v4.12 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 17/87] usb: dwc3: import from kernel v4.13 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 18/87] usb: dwc3: import from kernel v4.14 Anders Roxell
2026-08-24 8:54 ` Mattijs Korpershoek
2026-08-21 8:46 ` [PATCH v6 19/87] usb: dwc3: import from kernel v4.15 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 20/87] usb: dwc3: import from kernel v4.16 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 21/87] usb: dwc3: import from kernel v4.17 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 22/87] usb: dwc3: import from kernel v4.18 Anders Roxell
2026-08-21 8:46 ` [PATCH v6 23/87] usb: dwc3: import from kernel v4.19 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 24/87] usb: dwc3: import from kernel v4.20 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 25/87] usb: dwc3: import from kernel v5.0 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 26/87] usb: dwc3: import from kernel v5.1 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 27/87] usb: dwc3: import from kernel v5.2 Anders Roxell
2026-08-24 8:57 ` Mattijs Korpershoek
2026-08-21 8:47 ` [PATCH v6 28/87] usb: dwc3: import from kernel v5.3 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 29/87] usb: dwc3: import from kernel v5.4 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 30/87] usb: dwc3: import from kernel v5.5 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 31/87] usb: dwc3: import from kernel v5.6 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 32/87] usb: dwc3: import from kernel v5.7 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 33/87] usb: dwc3: import from kernel v5.8 Anders Roxell
2026-08-24 8:59 ` Mattijs Korpershoek
2026-08-21 8:47 ` [PATCH v6 34/87] usb: dwc3: import from kernel v5.9 Anders Roxell
2026-08-24 9:00 ` Mattijs Korpershoek
2026-08-21 8:47 ` [PATCH v6 35/87] usb: dwc3: import from kernel v5.10 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 36/87] usb: dwc3: import from kernel v5.11 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 37/87] usb: dwc3: import from kernel v5.12 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 38/87] usb: dwc3: import from kernel v5.13 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 39/87] usb: dwc3: import from kernel v5.14 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 40/87] usb: dwc3: import from kernel v5.15 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 41/87] usb: dwc3: import from kernel v5.16 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 42/87] usb: dwc3: import from kernel v5.17 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 43/87] usb: dwc3: import from kernel v5.18 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 44/87] usb: dwc3: import from kernel v5.19 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 45/87] usb: dwc3: import from kernel v6.0 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 46/87] usb: dwc3: import from kernel v6.1 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 47/87] usb: dwc3: import from kernel v6.2 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 48/87] usb: dwc3: import from kernel v6.3 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 49/87] usb: dwc3: import from kernel v6.4 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 50/87] usb: dwc3: import from kernel v6.5 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 51/87] usb: dwc3: import from kernel v6.6 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 52/87] usb: dwc3: import from kernel v6.7 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 53/87] usb: dwc3: import from kernel v6.8 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 54/87] usb: dwc3: import from kernel v6.9 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 55/87] usb: dwc3: import from kernel v6.10 Anders Roxell
2026-08-21 8:47 ` Anders Roxell [this message]
2026-08-21 8:47 ` [PATCH v6 57/87] usb: dwc3: import from kernel v6.12 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 58/87] usb: dwc3: import from kernel v6.13 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 59/87] usb: dwc3: import from kernel v6.14 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 60/87] usb: dwc3: import from kernel v6.15 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 61/87] usb: dwc3: import from kernel v6.16 Anders Roxell
2026-08-21 8:47 ` [PATCH v6 62/87] usb: gadget: re-import epautoconf.c " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 63/87] usb: udc: re-import udc-core.c " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 64/87] dm: add helpers needed by the resynced DWC3 code Anders Roxell
2026-08-21 8:47 ` [PATCH v6 65/87] usb: phy: add the usb_phy " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 66/87] usb: gadget: adapt the gadget API after the resync Anders Roxell
2026-08-21 8:47 ` [PATCH v6 67/87] usb: gadget: udc: make udc-core build in u-boot Anders Roxell
2026-08-21 8:47 ` [PATCH v6 68/87] usb: dwc3: make the core driver " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 69/87] usb: dwc3: bring back the samsung usb phy driver Anders Roxell
2026-08-21 8:47 ` [PATCH v6 70/87] usb: dwc3: make gadget and ep0 build in u-boot Anders Roxell
2026-08-21 8:47 ` [PATCH v6 71/87] usb: gadget: udc: enable async callbacks on bind Anders Roxell
2026-08-21 8:47 ` [PATCH v6 72/87] usb: dwc3: ep0: flush and invalidate cache around ep0 transfers Anders Roxell
2026-08-21 8:47 ` [PATCH v6 73/87] usb: dwc3: make the am62 glue build in u-boot Anders Roxell
2026-08-21 8:47 ` [PATCH v6 74/87] usb: gadget: ci_udc: move to the udc-core registration Anders Roxell
2026-08-21 8:47 ` [PATCH v6 75/87] usb: gadget: ci_udc: set endpoint capabilities Anders Roxell
2026-08-21 8:47 ` [PATCH v6 76/87] usb: gadget: dwc2_udc_otg: fix up after the resync Anders Roxell
2026-08-21 8:47 ` [PATCH v6 77/87] usb: gadget: fix up the function drivers " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 78/87] usb: gadget: fix up the last UDC " Anders Roxell
2026-08-21 8:47 ` [PATCH v6 79/87] usb: gadget: atmel_usba_udc: set endpoint capabilities Anders Roxell
2026-08-21 8:47 ` [PATCH v6 80/87] usb: gadget: at91_udc: register with udc-core Anders Roxell
2026-08-21 8:47 ` [PATCH v6 81/87] usb: gadget: at91_udc: set endpoint capabilities Anders Roxell
2026-08-21 8:47 ` [PATCH v6 82/87] usb: musb-new: fix up after the resync Anders Roxell
2026-08-21 8:47 ` [PATCH v6 83/87] usb: musb-new: set endpoint capabilities Anders Roxell
2026-08-21 8:48 ` [PATCH v6 84/87] usb: mtu3: fix up after the resync Anders Roxell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260821084829.2070426-57-anders.roxell@linaro.org \
--to=anders.roxell@linaro.org \
--cc=alchark@flipper.net \
--cc=ilias.apalodimas@linaro.org \
--cc=jens.wiklander@linaro.org \
--cc=jerome.forissier@arm.com \
--cc=lukma@denx.de \
--cc=marek.vasut+usb@mailbox.org \
--cc=marex@denx.de \
--cc=michal.simek@amd.com \
--cc=mkorpershoek@kernel.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
--cc=u-boot@lists.u-boot-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.