Skip to content

Commit f3a2dd3

Browse files
author
Desnes Nunes
committed
usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
JIRA: https://issues.redhat.com/browse/RHEL-78839 Conflicts: * Context difference due to order of dwc3_pci_intel_byt_properties and dwc3_pci_intel_phy_charger_detect_properties structs on dwc3-pci.c commit 461f24b Author: Andy Shevchenko <[email protected]> Date: Wed, 12 Feb 2025 21:28:04 +0200 Intel Merrifield SoC uses these endpoints for tracing and they cannot be re-allocated if being used because the side band flow control signals are hard wired to certain endpoints: • 1 High BW Bulk IN (IN#1) (RTIT) • 1 1KB BW Bulk IN (IN#8) + 1 1KB BW Bulk OUT (Run Control) (OUT#8) In device mode, since RTIT (EP#1) and EXI/RunControl (EP#8) uses External Buffer Control (EBC) mode, these endpoints are to be mapped to EBC mode (to be done by EXI target driver). Additionally TRB for RTIT and EXI are maintained in STM (System Trace Module) unit and the EXI target driver will as well configure the TRB location for EP #1 IN and EP#8 (IN and OUT). Since STM/PTI and EXI hardware blocks manage these endpoints and interface to OTG3 controller through EBC interface, there is no need to enable any events (such as XferComplete etc) for these end points. Signed-off-by: Andy Shevchenko <[email protected]> Tested-by: Ferry Toth <[email protected]> Acked-by: Thinh Nguyen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Desnes Nunes <[email protected]>
1 parent fa1f4c5 commit f3a2dd3

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

drivers/usb/dwc3/dwc3-pci.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,21 @@ static const struct property_entry dwc3_pci_intel_phy_charger_detect_properties[
148148
{}
149149
};
150150

151+
/*
152+
* Intel Merrifield SoC uses these endpoints for tracing and they cannot
153+
* be re-allocated if being used because the side band flow control signals
154+
* are hard wired to certain endpoints:
155+
* - 1 High BW Bulk IN (IN#1) (RTIT)
156+
* - 1 1KB BW Bulk IN (IN#8) + 1 1KB BW Bulk OUT (Run Control) (OUT#8)
157+
*/
158+
static const u8 dwc3_pci_mrfld_reserved_endpoints[] = { 3, 16, 17 };
159+
151160
static const struct property_entry dwc3_pci_mrfld_properties[] = {
152161
PROPERTY_ENTRY_STRING("dr_mode", "otg"),
153162
PROPERTY_ENTRY_STRING("linux,extcon-name", "mrfld_bcove_pwrsrc"),
154163
PROPERTY_ENTRY_BOOL("snps,dis_u3_susphy_quirk"),
155164
PROPERTY_ENTRY_BOOL("snps,dis_u2_susphy_quirk"),
165+
PROPERTY_ENTRY_U8_ARRAY("snps,reserved-endpoints", dwc3_pci_mrfld_reserved_endpoints),
156166
PROPERTY_ENTRY_BOOL("snps,usb2-gadget-lpm-disable"),
157167
PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
158168
{}

0 commit comments

Comments
 (0)