| Age | Commit message (Collapse) | Author |
|
Current implementation always sets odd/even bit for ISO transactions.
This is a good strategy only if interval is 1.
For ISO endpoint interval in (micro)frames is computed as
2^(interval-1), which means that odd/frame number should stay
same for interval values > 1.
With this change only when interval is 1 odd/even bit is modified.
|
|
dcd_edpt_close() no longer modifies FIFO distribution.
Code that that was commented out is removed along with
variables that are no longer used.
FIFO distribution among endpoints is handled upfront
and does not need to be modified in open and close endpoint
functions.
|
|
Recommended FIFO allocation schema includes 2 maximum endpoint sizes.
Comment suggested that this is the case while it would work according
to this description only in checked endpoints were ascending sizes.
Also two same size endpoints would be counted as one.
That is fixed by way sz is filled.
Calculation used too much modulo operation while single division was enough
to account for odd FIFO sizes.
Extra space that is evenly distributed between Bulk and control endpoints
was incorrectly calculated it could prevent allocation of ISO endpoint FIFO
when bulk endpoints existed with smaller endpoint numbers.
Minimum endpoint FIFO size is 16 32bit words, FIFO space requirement is
now observed.
|
|
|
|
|
|
Add dcd_edpt_close() to synopsys
|
|
skip ci build for example that need more ROM/RAM could fit into SAMD11
|
|
|
|
Setup a test example - UNTESTED!
Missing: Start transmitting audio data in set_interface.
|
|
Conflicts:
src/device/usbd.c
src/device/usbd.h
src/portable/st/synopsys/dcd_synopsys.c
|
|
|
|
Endpoint close was implemented only in one driver so far.
This function is needed for interfaces with several alternate settings.
The way FIFO is allocated in dcd_edpt_open() allows to correctly close
only one IN endpoint (the one that was opened last).
|
|
Wrong FIFO was flushed in dcd_edpt_stall().
(epnum - 1) should only be used when accessing DIEPTXF registers.
For DIEPCTL and GRSTCTL epnum is correct index.
|
|
Fix synopsys odd/even frame bit for IN ISO endpoints
|
|
For ISO endpoint driver has to specify when data
is to be transmitted (odd or even frame).
Currently code was not updating this bit resulting in
data being sent every other frame.
If interval was 1ms full data packed was sent every 2ms, and
ZLP was sent in between.
|
|
|
|
Move pull-up enabling to dcd_init() instead of usbd
|
|
|
|
fix msp430 gcc 9.2.0 warning
|
|
|
|
correct isr context for nrf DCD_EVENT_UNPLUGGED
|
|
also rename debug lookup to prevent conflict
|
|
Constraint was incorrect for ISO endpoint as stated in TODO.
|
|
|
|
|
|
ESP32-S2: Handle the fact that available EP IN FIFOs are less than the number of available EP INs
|
|
|
|
|
|
Tested with EP0 size 8/16/32/64.
|
|
|
|
reproduced with Adafruit_TinyUSB_ArduinoCore port commit 11d669b4d2a40eb2fc5e51b2a9707a6de9d42363 and SAMD BSP 1.6.1
|
|
|
|
|
|
|
|
ESP32-S2: Detect EP IN Xfer Timeout
|
|
update readme, boards.md to add link to new stm boards
|
|
Add stm hs
|
|
Add "REDUCE_SPEED=1" to the compile options.
|
|
|
|
|
|
In some rare ocasions (bad cable, noise, etc.) data transfer might timeout and hang the endpoint, unless the interrupt flag is cleared.
This pull request targets to solve that case.
|
|
- although it is define in CFLAGS, it is worth to correct to be
consistent with other build
- extract set_speed()
|
|
- f769disco default port is highspeed port1
- remove PORT0 on stlink since the board only populated HS connector
|
|
|
|
|
|
While the ST code has a 2 ms stabilization delay for the USBC PHY PLL,
running without this delay showed no problem for at leat 10 USB un/replug
cycles. Observe for problems!
|
|
|
|
help to run with low speed mcu
|
|
|
|
|