Skip to content

Commit 6454a83

Browse files
andy-shevvijay-suman
authored andcommitted
usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
[ Upstream commit 461f24bff86808ee5fbfe74751a825f8a7ab24e0 ] 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: Sasha Levin <[email protected]> (cherry picked from commit 059d35a7393c9c422d286c2b139d5cc8fc3ba121) Signed-off-by: Vijayendra Suman <[email protected]>
1 parent f89f103 commit 6454a83

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
@@ -132,11 +132,21 @@ static const struct property_entry dwc3_pci_intel_byt_properties[] = {
132132
{}
133133
};
134134

135+
/*
136+
* Intel Merrifield SoC uses these endpoints for tracing and they cannot
137+
* be re-allocated if being used because the side band flow control signals
138+
* are hard wired to certain endpoints:
139+
* - 1 High BW Bulk IN (IN#1) (RTIT)
140+
* - 1 1KB BW Bulk IN (IN#8) + 1 1KB BW Bulk OUT (Run Control) (OUT#8)
141+
*/
142+
static const u8 dwc3_pci_mrfld_reserved_endpoints[] = { 3, 16, 17 };
143+
135144
static const struct property_entry dwc3_pci_mrfld_properties[] = {
136145
PROPERTY_ENTRY_STRING("dr_mode", "otg"),
137146
PROPERTY_ENTRY_STRING("linux,extcon-name", "mrfld_bcove_pwrsrc"),
138147
PROPERTY_ENTRY_BOOL("snps,dis_u3_susphy_quirk"),
139148
PROPERTY_ENTRY_BOOL("snps,dis_u2_susphy_quirk"),
149+
PROPERTY_ENTRY_U8_ARRAY("snps,reserved-endpoints", dwc3_pci_mrfld_reserved_endpoints),
140150
PROPERTY_ENTRY_BOOL("snps,usb2-gadget-lpm-disable"),
141151
PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
142152
{}

0 commit comments

Comments
 (0)