hi, Bryan O'Donoghue <pure.logic@xxxxxxxxxxxxxxxxx> writes: >>> - DWC_USB3_NUM indicates the number of Device mode single directional >>> endpoints, including OUT and IN endpoint 0. >>> >>> - DWC_USB3_NUM_IN_EPS indicates the maximum number of Device mode IN >>> endpoints active at any time, including control endpoint 0. >>> >>> It's possible to configure RTL such that DWC_USB3_NUM_EPS is equal to >>> DWC_USB3_NUM_IN_EPS. >>> >>> dwc3-core calculates the number of OUT endpoints as DWC_USB3_NUM minus >>> DWC_USB3_NUM_IN_EPS. If RTL has been configured with DWC_USB3_NUM_IN_EPS >>> equal to DWC_USB3_NUM then dwc3-core will calculate the number of OUT >>> endpoints as zero. >>> >>> For example a from dwc3_core_num_eps() shows: >>> [ 1.565000] /usb0@f01d0000: found 8 IN and 0 OUT endpoints >>> >>> This patch refactors the endpoint calculation down to one variable >>> dwc->num_eps taking care to maintain the current mapping of endpoints for >>> fixed FPGA configurations as described in Table 4-7 of version 2.60a of the >>> DWC USB3 databook. >>> >>> The endpoint mapping will then be EP-OUT, EP-IN etc, up to DWC_USB3_NUM. >>> If DWC_USB3_NUM is odd then OUT will take the extra endpoint. >>> >>> Suggested-by: Felipe Balbi <balbi@xxxxxxxxxx> >>> Signed-off-by: Bryan O'Donoghue <pure.logic@xxxxxxxxxxxxxxxxx> >> >> This patch breaks gadget mode on dra7-evm that uses dwc3 core v2.02a. > > I had to do the patch work on 4.1 and then forward port to 4.11 since > the SoC I was working on wasn't booting on 4.11 and (predictably I > guess) missed some untestable paths on 4.1 > > I have two SoCs to try this out on with 4.11+ now, so I'll send an > update shortly I have updated patch in my queue already ;-) -- balbi
Attachment:
signature.asc
Description: PGP signature