From: Anders Roxell <anders.roxell@linaro.org>
To: u-boot@lists.u-boot-project.org
Cc: marek.vasut@mailbox.org, trini@konsulko.com,
ilias.apalodimas@linaro.org, michal.simek@amd.com, lukma@denx.de,
alchark@flipper.net, jerome.forissier@arm.com,
Jens Wiklander <jens.wiklander@linaro.org>,
Anders Roxell <anders.roxell@linaro.org>,
Mattijs Korpershoek <mkorpershoek@kernel.org>
Subject: [PATCH v7 32/63] usb: dwc3: import from kernel v5.7
Date: Mon, 24 Aug 2026 17:27:03 +0200 [thread overview]
Message-ID: <20260824152734.159794-33-anders.roxell@linaro.org> (raw)
In-Reply-To: <20260824152734.159794-1-anders.roxell@linaro.org>
From: Jens Wiklander <jens.wiklander@linaro.org>
Sync Linux kernel dwc3 changes from v5.6 to v5.7.
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 v5.6..v5.7
Commits imported:
00e21763f2c8 dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
49e0590e3a60 usb: dwc3: gadget: Fix request completion check
d0550cd20e52 usb: dwc3: gadget: Do link recovery for SS and SSP
d94ea5319813 usb: dwc3: gadget: Properly set maxpacket limit
586f4335700f usb: dwc3: Fix GTXFIFOSIZ.TXFDEP macro name
0227cc84c444 usb: dwc3: core: don't do suspend for device mode if already suspended
4a1d042af420 usb: dwc3: Rework resets initialization to be more flexible
0d3a97083e0c usb: dwc3: Rework clock initialization to be more flexible
98ed256a4dba usb: dwc3: Add support for role-switch-default-mode binding
8a0a13799744 usb: dwc3: Registering a role switch in the DRD code.
7ba6b09fda5e usb: dwc3: core: add support for disabling SS instances in park mode
2dedea035ae8 usb: dwc3: gadget: Wrap around when skip TRBs
a114c4ca64bd usb: dwc3: gadget: Don't clear flags before transfer ended
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 | 29 ++++++-------
drivers/usb/dwc3/core.h | 18 ++++++++-
drivers/usb/dwc3/gadget.c | 85 ++++++++++++++++++++++-----------------
3 files changed, 78 insertions(+), 54 deletions(-)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 1d85c42b9c67..edc17155cb2b 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -289,12 +289,6 @@ done:
return 0;
}
-static const struct clk_bulk_data dwc3_core_clks[] = {
- { .id = "ref" },
- { .id = "bus_early" },
- { .id = "suspend" },
-};
-
/*
* dwc3_frame_length_adjustment - Adjusts frame length if required
* @dwc3: Pointer to our controller context structure
@@ -1029,6 +1023,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
if (dwc->dis_tx_ipgap_linecheck_quirk)
reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;
+ if (dwc->parkmode_disable_ss_quirk)
+ reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
+
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
}
@@ -1342,6 +1339,8 @@ static void dwc3_get_properties(struct dwc3 *dwc)
"snps,dis-del-phy-power-chg-quirk");
dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
"snps,dis-tx-ipgap-linecheck-quirk");
+ dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev,
+ "snps,parkmode-disable-ss-quirk");
dwc->tx_de_emphasis_quirk = device_property_read_bool(dev,
"snps,tx_de_emphasis_quirk");
@@ -1441,11 +1440,6 @@ static int dwc3_probe(struct platform_device *pdev)
if (!dwc)
return -ENOMEM;
- dwc->clks = devm_kmemdup(dev, dwc3_core_clks, sizeof(dwc3_core_clks),
- GFP_KERNEL);
- if (!dwc->clks)
- return -ENOMEM;
-
dwc->dev = dev;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -1476,22 +1470,23 @@ static int dwc3_probe(struct platform_device *pdev)
dwc3_get_properties(dwc);
- dwc->reset = devm_reset_control_get_optional_shared(dev, NULL);
+ dwc->reset = devm_reset_control_array_get(dev, true, true);
if (IS_ERR(dwc->reset))
return PTR_ERR(dwc->reset);
if (dev->of_node) {
- dwc->num_clks = ARRAY_SIZE(dwc3_core_clks);
-
- ret = devm_clk_bulk_get(dev, dwc->num_clks, dwc->clks);
+ ret = devm_clk_bulk_get_all(dev, &dwc->clks);
if (ret == -EPROBE_DEFER)
return ret;
/*
* Clocks are optional, but new DT platforms should support all
* clocks as required by the DT-binding.
*/
- if (ret)
+ if (ret < 0)
dwc->num_clks = 0;
+ else
+ dwc->num_clks = ret;
+
}
ret = reset_control_deassert(dwc->reset);
@@ -1637,6 +1632,8 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg)
switch (dwc->current_dr_role) {
case DWC3_GCTL_PRTCAP_DEVICE:
+ if (pm_runtime_suspended(dwc->dev))
+ break;
spin_lock_irqsave(&dwc->lock, flags);
dwc3_gadget_suspend(dwc);
spin_unlock_irqrestore(&dwc->lock, flags);
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 77c4a9abe365..4c171a8e215f 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -25,6 +25,7 @@
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
#include <linux/usb/otg.h>
+#include <linux/usb/role.h>
#include <linux/ulpi/interface.h>
#include <linux/phy/phy.h>
@@ -249,6 +250,7 @@
#define DWC3_GUCTL_HSTINAUTORETRY BIT(14)
/* Global User Control 1 Register */
+#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
@@ -305,10 +307,14 @@
/* Global TX Fifo Size Register */
#define DWC31_GTXFIFOSIZ_TXFRAMNUM BIT(15) /* DWC_usb31 only */
-#define DWC31_GTXFIFOSIZ_TXFDEF(n) ((n) & 0x7fff) /* DWC_usb31 only */
-#define DWC3_GTXFIFOSIZ_TXFDEF(n) ((n) & 0xffff)
+#define DWC31_GTXFIFOSIZ_TXFDEP(n) ((n) & 0x7fff) /* DWC_usb31 only */
+#define DWC3_GTXFIFOSIZ_TXFDEP(n) ((n) & 0xffff)
#define DWC3_GTXFIFOSIZ_TXFSTADDR(n) ((n) & 0xffff0000)
+/* Global RX Fifo Size Register */
+#define DWC31_GRXFIFOSIZ_RXFDEP(n) ((n) & 0x7fff) /* DWC_usb31 only */
+#define DWC3_GRXFIFOSIZ_RXFDEP(n) ((n) & 0xffff)
+
/* Global Event Size Registers */
#define DWC3_GEVNTSIZ_INTMASK BIT(31)
#define DWC3_GEVNTSIZ_SIZE(n) ((n) & 0xffff)
@@ -953,6 +959,9 @@ struct dwc3_scratchpad_array {
* @hsphy_mode: UTMI phy mode, one of following:
* - USBPHY_INTERFACE_MODE_UTMI
* - USBPHY_INTERFACE_MODE_UTMIW
+ * @role_sw: usb_role_switch handle
+ * @role_switch_default_mode: default operation mode of controller while
+ * usb role is USB_ROLE_NONE.
* @usb2_phy: pointer to USB2 PHY
* @usb3_phy: pointer to USB3 PHY
* @usb2_generic_phy: pointer to USB2 PHY
@@ -1024,6 +1033,8 @@ struct dwc3_scratchpad_array {
* change quirk.
* @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate
* check during HS transmit.
+ * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
+ * instances in park mode.
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
* @tx_de_emphasis: Tx de-emphasis value
* 0 - -6dB de-emphasis
@@ -1086,6 +1097,8 @@ struct dwc3 {
struct extcon_dev *edev;
struct notifier_block edev_nb;
enum usb_phy_interface hsphy_mode;
+ struct usb_role_switch *role_sw;
+ enum usb_dr_mode role_switch_default_mode;
u32 fladj;
u32 irq_gadget;
@@ -1215,6 +1228,7 @@ struct dwc3 {
unsigned dis_u2_freeclk_exists_quirk:1;
unsigned dis_del_phy_power_chg_quirk:1;
unsigned dis_tx_ipgap_linecheck_quirk:1;
+ unsigned parkmode_disable_ss_quirk:1;
unsigned tx_de_emphasis_quirk:1;
unsigned tx_de_emphasis:2;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 1e00bf2d65a2..585cb3deea7a 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1521,7 +1521,7 @@ static void dwc3_gadget_ep_skip_trbs(struct dwc3_ep *dep, struct dwc3_request *r
for (i = 0; i < req->num_trbs; i++) {
struct dwc3_trb *trb;
- trb = req->trb + i;
+ trb = &dep->trb_pool[dep->trb_dequeue];
trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
dwc3_ep_inc_deq(dep);
}
@@ -1728,7 +1728,6 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc)
u32 reg;
u8 link_state;
- u8 speed;
/*
* According to the Databook Remote wakeup request should
@@ -1738,16 +1737,13 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc)
*/
reg = dwc3_readl(dwc->regs, DWC3_DSTS);
- speed = reg & DWC3_DSTS_CONNECTSPD;
- if ((speed == DWC3_DSTS_SUPERSPEED) ||
- (speed == DWC3_DSTS_SUPERSPEED_PLUS))
- return 0;
-
link_state = DWC3_DSTS_USBLNKST(reg);
switch (link_state) {
+ case DWC3_LINK_STATE_RESET:
case DWC3_LINK_STATE_RX_DET: /* in HS, means Early Suspend */
case DWC3_LINK_STATE_U3: /* in HS, means SUSPEND */
+ case DWC3_LINK_STATE_RESUME:
break;
default:
return -EINVAL;
@@ -2227,7 +2223,6 @@ static int dwc3_gadget_init_in_endpoint(struct dwc3_ep *dep)
{
struct dwc3 *dwc = dep->dwc;
int mdwidth;
- int kbytes;
int size;
mdwidth = DWC3_MDWIDTH(dwc->hwparams.hwparams0);
@@ -2236,24 +2231,24 @@ static int dwc3_gadget_init_in_endpoint(struct dwc3_ep *dep)
size = dwc3_readl(dwc->regs, DWC3_GTXFIFOSIZ(dep->number >> 1));
if (dwc3_is_usb31(dwc))
- size = DWC31_GTXFIFOSIZ_TXFDEF(size);
+ size = DWC31_GTXFIFOSIZ_TXFDEP(size);
else
- size = DWC3_GTXFIFOSIZ_TXFDEF(size);
+ size = DWC3_GTXFIFOSIZ_TXFDEP(size);
/* FIFO Depth is in MDWDITH bytes. Multiply */
size *= mdwidth;
- kbytes = size / 1024;
- if (kbytes == 0)
- kbytes = 1;
-
/*
- * FIFO sizes account an extra MDWIDTH * (kbytes + 1) bytes for
- * internal overhead. We don't really know how these are used,
- * but documentation say it exists.
+ * To meet performance requirement, a minimum TxFIFO size of 3x
+ * MaxPacketSize is recommended for endpoints that support burst and a
+ * minimum TxFIFO size of 2x MaxPacketSize for endpoints that don't
+ * support burst. Use those numbers and we can calculate the max packet
+ * limit as below.
*/
- size -= mdwidth * (kbytes + 1);
- size /= kbytes;
+ if (dwc->maximum_speed >= USB_SPEED_SUPER)
+ size /= 3;
+ else
+ size /= 2;
usb_ep_set_maxpacket_limit(&dep->endpoint, size);
@@ -2271,8 +2266,39 @@ static int dwc3_gadget_init_in_endpoint(struct dwc3_ep *dep)
static int dwc3_gadget_init_out_endpoint(struct dwc3_ep *dep)
{
struct dwc3 *dwc = dep->dwc;
+ int mdwidth;
+ int size;
+
+ mdwidth = DWC3_MDWIDTH(dwc->hwparams.hwparams0);
- usb_ep_set_maxpacket_limit(&dep->endpoint, 1024);
+ /* MDWIDTH is represented in bits, convert to bytes */
+ mdwidth /= 8;
+
+ /* All OUT endpoints share a single RxFIFO space */
+ size = dwc3_readl(dwc->regs, DWC3_GRXFIFOSIZ(0));
+ if (dwc3_is_usb31(dwc))
+ size = DWC31_GRXFIFOSIZ_RXFDEP(size);
+ else
+ size = DWC3_GRXFIFOSIZ_RXFDEP(size);
+
+ /* FIFO depth is in MDWDITH bytes */
+ size *= mdwidth;
+
+ /*
+ * To meet performance requirement, a minimum recommended RxFIFO size
+ * is defined as follow:
+ * RxFIFO size >= (3 x MaxPacketSize) +
+ * (3 x 8 bytes setup packets size) + (16 bytes clock crossing margin)
+ *
+ * Then calculate the max packet limit as below.
+ */
+ size -= (3 * 8) + 16;
+ if (size < 0)
+ size = 0;
+ else
+ size /= 3;
+
+ usb_ep_set_maxpacket_limit(&dep->endpoint, size);
dep->endpoint.max_streams = 15;
dep->endpoint.ops = &dwc3_gadget_ep_ops;
list_add_tail(&dep->endpoint.ep_list,
@@ -2457,9 +2483,6 @@ static int dwc3_gadget_ep_reclaim_trb_sg(struct dwc3_ep *dep,
for_each_sg(sg, s, pending, i) {
trb = &dep->trb_pool[dep->trb_dequeue];
- if (trb->ctrl & DWC3_TRB_CTRL_HWO)
- break;
-
req->sg = sg_next(s);
req->num_pending_sgs--;
@@ -2484,14 +2507,7 @@ static int dwc3_gadget_ep_reclaim_trb_linear(struct dwc3_ep *dep,
static bool dwc3_gadget_ep_request_completed(struct dwc3_request *req)
{
- /*
- * For OUT direction, host may send less than the setup
- * length. Return true for all OUT requests.
- */
- if (!req->direction)
- return true;
-
- return req->request.actual == req->request.length;
+ return req->num_pending_sgs == 0;
}
static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
@@ -2515,8 +2531,7 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
req->request.actual = req->request.length - req->remaining;
- if (!dwc3_gadget_ep_request_completed(req) ||
- req->num_pending_sgs) {
+ if (!dwc3_gadget_ep_request_completed(req)) {
__dwc3_gadget_kick_transfer(dep);
goto out;
}
@@ -2570,10 +2585,8 @@ static void dwc3_gadget_endpoint_transfer_in_progress(struct dwc3_ep *dep,
dwc3_gadget_ep_cleanup_completed_requests(dep, event, status);
- if (stop) {
+ if (stop)
dwc3_stop_active_transfer(dep, true, true);
- dep->flags = DWC3_EP_ENABLED;
- }
/*
* WORKAROUND: This is the 2nd half of U1/U2 -> U0 workaround.
--
2.53.0
next prev parent reply other threads:[~2026-08-24 16:45 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 15:26 [PATCH v7 00/63] usb: dwc3: part 1, reset and import from Linux v6.16 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 01/63] usb: host: re-import xhci-ext-caps.h from kernel v6.16 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 02/63] usb: dwc3: restore to original v3.19-rc1 kernel import Anders Roxell
2026-08-24 15:26 ` [PATCH v7 03/63] usb: dwc3: import from kernel v3.19 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 04/63] usb: dwc3: import from kernel v4.0 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 05/63] usb: dwc3: import from kernel v4.1 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 06/63] usb: dwc3: import from kernel v4.2 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 07/63] usb: dwc3: import from kernel v4.3 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 08/63] usb: dwc3: import from kernel v4.4 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 09/63] usb: dwc3: import from kernel v4.5 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 10/63] usb: dwc3: import from kernel v4.6 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 11/63] usb: dwc3: import from kernel v4.7 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 12/63] usb: dwc3: import from kernel v4.8 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 13/63] usb: dwc3: import from kernel v4.9 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 14/63] usb: dwc3: import from kernel v4.10 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 15/63] usb: dwc3: import from kernel v4.11 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 16/63] usb: dwc3: import from kernel v4.12 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 17/63] usb: dwc3: import from kernel v4.13 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 18/63] usb: dwc3: import from kernel v4.14 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 19/63] usb: dwc3: import from kernel v4.15 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 20/63] usb: dwc3: import from kernel v4.16 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 21/63] usb: dwc3: import from kernel v4.17 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 22/63] usb: dwc3: import from kernel v4.18 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 23/63] usb: dwc3: import from kernel v4.19 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 24/63] usb: dwc3: import from kernel v4.20 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 25/63] usb: dwc3: import from kernel v5.0 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 26/63] usb: dwc3: import from kernel v5.1 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 27/63] usb: dwc3: import from kernel v5.2 Anders Roxell
2026-08-24 15:26 ` [PATCH v7 28/63] usb: dwc3: import from kernel v5.3 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 29/63] usb: dwc3: import from kernel v5.4 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 30/63] usb: dwc3: import from kernel v5.5 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 31/63] usb: dwc3: import from kernel v5.6 Anders Roxell
2026-08-24 15:27 ` Anders Roxell [this message]
2026-08-24 15:27 ` [PATCH v7 33/63] usb: dwc3: import from kernel v5.8 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 34/63] usb: dwc3: import from kernel v5.9 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 35/63] usb: dwc3: import from kernel v5.10 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 36/63] usb: dwc3: import from kernel v5.11 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 37/63] usb: dwc3: import from kernel v5.12 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 38/63] usb: dwc3: import from kernel v5.13 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 39/63] usb: dwc3: import from kernel v5.14 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 40/63] usb: dwc3: import from kernel v5.15 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 41/63] usb: dwc3: import from kernel v5.16 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 42/63] usb: dwc3: import from kernel v5.17 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 43/63] usb: dwc3: import from kernel v5.18 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 44/63] usb: dwc3: import from kernel v5.19 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 45/63] usb: dwc3: import from kernel v6.0 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 46/63] usb: dwc3: import from kernel v6.1 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 47/63] usb: dwc3: import from kernel v6.2 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 48/63] usb: dwc3: import from kernel v6.3 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 49/63] usb: dwc3: import from kernel v6.4 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 50/63] usb: dwc3: import from kernel v6.5 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 51/63] usb: dwc3: import from kernel v6.6 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 52/63] usb: dwc3: import from kernel v6.7 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 53/63] usb: dwc3: import from kernel v6.8 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 54/63] usb: dwc3: import from kernel v6.9 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 55/63] usb: dwc3: import from kernel v6.10 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 56/63] usb: dwc3: import from kernel v6.11 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 57/63] usb: dwc3: import from kernel v6.12 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 58/63] usb: dwc3: import from kernel v6.13 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 59/63] usb: dwc3: import from kernel v6.14 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 60/63] usb: dwc3: import from kernel v6.15 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 61/63] usb: dwc3: import from kernel v6.16 Anders Roxell
2026-08-24 15:27 ` [PATCH v7 62/63] usb: gadget: re-import epautoconf.c " Anders Roxell
2026-08-24 15:27 ` [PATCH v7 63/63] usb: udc: re-import udc-core.c " Anders Roxell
2026-09-11 10:39 ` [PATCH v7 00/63] usb: dwc3: part 1, reset and import from Linux v6.16 Love Kumar
2026-09-17 12:37 ` Anshul Dalal
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=20260824152734.159794-33-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@mailbox.org \
--cc=michal.simek@amd.com \
--cc=mkorpershoek@kernel.org \
--cc=trini@konsulko.com \
--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.