Skip to content

Commit 461f24b

Browse files
andy-shevgregkh
authored andcommitted
usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
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]>
1 parent 5425191 commit 461f24b

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_byt_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)